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 exactly matches a caller-blocking entry
assigned to the selected assistant, no call is created and the operation
returns 409 outbound_target_blocked. 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.
API key in the Authorization: Bearer <key> header.
Keys are created in the SMAO dashboard (Settings → API Keys).
In: header
The assistant that will make the call.
^[a-f0-9]{24}$Alternative to assistant_id — look up the assistant by its phone number in E.164 format (leading + followed by 6–20 digits).
^\+\d{6,20}$Destination phone number in E.164 format (leading + followed by 6–20 digits).
^\+\d{6,20}$Legacy alias for to. Same E.164 format.
^\+\d{6,20}$Optional free-text context passed to the assistant prompt.
length <= 1000Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.smao.ai/api/v1/calls" \ -H "Content-Type: application/json" \ -d '{ "assistant_id": "65a1234567890abcdef01234", "to": "+12025550123" }'{
"data": {
"call_id": "65f8fa6f1a9d8e0012ab34cd",
"assistant_id": "65a1234567890abcdef01234",
"assistant_phone": "+491701234567",
"to": "+491701234999",
"status": "queued",
"created_at": "2019-08-24T14:15:22Z"
}
}{
"error": {
"code": "validation_failed",
"message": "Validation failed"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API key"
}
}{
"error": {
"code": "subscription_required",
"message": "This feature is not available in your current subscription. Please upgrade to a higher plan"
}
}{
"error": {
"code": "forbidden",
"message": "No permission"
}
}{
"error": {
"code": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "outbound_target_blocked",
"message": "The target phone number is blocked for this assistant"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}