Public APICalls & recordings
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.
AuthorizationBearer <token>
API key in the Authorization: Bearer <key> header.
Keys are created in the SMAO dashboard (Settings → API Keys).
In: header
Response Body
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 '{}'{
"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": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}