Trigger an outbound call
Starts an outbound call. Provide exactly one of assistant_id or
assistant_phone to select the assistant, and exactly one of to or
target_phone for the destination number (to is preferred, target_phone
is an alias retained for backwards compatibility).
This operation uses the per-key outbound_trigger bucket (60 requests
per hour by default) and a separate one-outbound-call-per-assistant
cooldown over a rolling 60-second window. A cooldown rejection is 429
rate_limit_exceeded without Retry-After.
If the normalized destination equals the selected assistant's normalized
own phone number, or exactly matches a caller-blocking entry assigned to
that assistant, no call is created and the operation returns 409
outbound_target_blocked. The own-number restriction is intrinsic.
Caller-blocking lists and Assistant assignments are managed in Dashboard →
Settings → Blocked callers; the Public API does not expose caller-blocking
configuration. Retrying the same destination while it remains blocked
returns the same rejection.
Authorization
bearerAuth API key in the Authorization: Bearer <key> header.
Keys are created in the SMAO dashboard (Settings → API Keys).
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Provide exactly one of assistant_id or assistant_phone, and
exactly one of to or target_phone (target_phone is a legacy alias).
Provide exactly one of assistant_id or assistant_phone, and
exactly one of to or target_phone (target_phone is a legacy alias).
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/calls" \ -H "Content-Type: application/json" \ -d '{ "assistant_id": "65a1234567890abcdef01234", "to": "+12025550123" }'{ "data": { "call_id": "string", "assistant_id": "string", "assistant_phone": "string", "to": "string", "status": "string", "created_at": "2019-08-24T14:15:22Z" }}