Skip to main content
POST
Place an outbound call. The agent calls to from phone_line_id and talks to whoever answers. The call is saved first, then sent to the call runtime. The response is 202 Accepted with the call, usually status: "dialing".
This rings a real phone and costs money. Only call numbers whose owners agreed to be called. Follow your local call-recording rules when record is on.
Costs: AI credits for speech, LLM and memory, plus the Dialer balance for line minutes on a 60db number (a BYO line bills your carrier). The workspace must have an active plan. Follow the call with Get call, or use the call.completed event.

Request

Headers

string
required
Bearer token with your API key (scope agents)
string
required
application/json

Path

string
required
The agent id (UUID)

Body

string
required
Destination number in E.164 format, for example +919999999999
string
required
The phone line id (UUID) to call from. See List phone lines
object
Per-call settings. Any key from the agent’s call_defaults, plus greeting (up to 500 characters, "" for none). A greeting replaces the agent’s greeting for this call only. transfer_targets replaces the agent’s call-transfer groups for this call ([] turns them off); same rules as Create agent
object
Up to 4 KB of JSON. Returned on the call and sent in its events and tool calls. Use it for your own ids

Response

202 Accepted
from is the line’s caller ID. cost is filled in when the call ends. See Get call for every field.

Errors

Example