Skip to main content
POST
/
api
/
calls
/
ai
/
outbound
Initiate an outbound AI voice call
curl --request POST \
  --url https://your-instance.example.com/api/calls/ai/outbound \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "contactId": "64f0a1b2c3d4e5f6a7b8c9d0",
  "agentId": "64f0a1b2c3d4e5f6a7b8cc00",
  "fromNumber": "+14165550100",
  "callReason": "Follow up on insurance quote"
}
'
{
  "success": true,
  "conversationId": "eleven-conv-abc123",
  "sipCallId": "sip-call-xyz789",
  "message": "AI call initiated",
  "deduplicated": false
}

Documentation Index

Fetch the complete documentation index at: https://docs.tetherai.ca/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Either contactId or phoneNumber must be supplied. phoneNumber will find-or-create a contact.

contactId
string
phoneNumber
string

E.164 phone number (the + prefix will be added if missing).

agentId
string

Prompt._id — ElevenLabs-synced voice agent to use. Defaults to the first voice-enabled agent in the org.

fromNumber
string

Specific Sinch number to call from. Defaults to the first AI-enabled Sinch number in the user's voicePhoneNumbers.

callReason
string

Free-text context passed to the agent as the call_reason dynamic variable.

Response

AI call initiated

success
enum<boolean>
required
Available options:
true
conversationId
string

ElevenLabs conversation ID for the placed call.

sipCallId
string
message
string
deduplicated
boolean

True when the request matched an in-flight idempotency lock and the cached conversationId/sipCallId is returned.