Skip to main content
The Outbound Calls endpoints place AI-powered calls to your contacts: a single call or up to ten at once, each with its own prompt values, and let you review how every call went. This page covers the conventions shared by all five endpoints; each endpoint page in this group documents its parameters and responses.

Phone number format

All phone numbers must be in E.164 international format - a + followed by digits only. Send the exact format; numbers are not reformatted for you.

Identifying your agent

You identify an agent by its phone number (a leading + is optional) - not by an internal database ID.

Personalizing the prompt

Inject dynamic values into your agent’s prompt at call time so each recipient hears a tailored message.
1

Add placeholders to the agent's prompt

Use {{name}} syntax in the prompt:
2

Provide the values when placing the call

The prompt is resolved with your values before the call starts.

Rules

  • Every {{placeholder}} in the prompt must be provided, or the request is rejected with 400.
  • Extra keys not used by the prompt are accepted and ignored.
  • Key names should be lower snake_case (letters, digits, underscores), e.g. customer_name. The system__ and secret__ prefixes are reserved.
  • Values must be strings - send numbers and booleans as strings ("3", "true").
  • Up to 25 keys; each value up to 500 characters.
  • In bulk, use either per-destination or a shared top-level prompt_variables, not both.

Correlating calls with your own records

Send your own identifier in metadata.external_call_id and it is echoed back at the top level of the placement response, and carried through to the post-call callback:
The response’s call_id is the primary public identifier for a call. It is also available in post-call actions as {{post_call.call_id}}.

Checking results

Every call - single or bulk - belongs to a batch. Use List batches and Get a batch to see whether each call connected. Outcomes also appear in your dashboard, in your outbound call history or in Conversations, together with the full transcript. Filter by the agent you placed the calls with to find them.

Errors

Outbound errors use this shape:
Messages are always in English. Limit-related errors add a machine-readable error_type, and rate limits add a detail pointing you to where you can request more capacity.
A bulk request returns 201 even when some or all destinations fail. A non-201 means the whole request was rejected and nothing was dialed - check each entry’s success and status in results.

Quickstart

One call:
Personalized bulk calls:

Removed endpoints

POST /api/v1/outbound/calls/place is no longer available and responds 410 Gone. It existed for the retired SMS-consent flow. Use Place a call or Place calls in bulk instead.