Send a Voice Message

This endpoint is used to initiate a voice delivery with a pre-recorded audio. Before calling it, you must first upload the audio file using the POST /voice/uploads endpoint. The request payload must be in JSON format. A 200 OK response means the request has been successfully received and queued for processing. To place AI-driven calls (an AI agent that holds a live conversation), use the dedicated POST /voice-agent/call endpoint instead — this endpoint does not accept voice agents.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

The title used to identify the voice message.

integer
required

The ID of an audio file uploaded with the same app-id as this request. You can retrieve it using the Get Uploaded Audio Files endpoint. An audio file uploaded by another app, or an ID that does not exist, is rejected with 422 before anything is queued.

phones
array of strings
required
length between 1 and 10000

An array containing the phone numbers (as strings) to which the voice message will be delivered. Brazilian numbers are accepted with or without the country code (5511999999999, +5511999999999 or 11999999999); prefer the form with it. Without it, 10 or 11 digits are a national number and get 55 in front, area code 55 included (55991234567 is sent as 5555991234567). Each number may contain only digits, +, (, ) and -, and must have 10 to 16 digits — unless is_international is true. At most 10,000 numbers per request: a longer list is a 422. A body over 250 KB, around 15,000 numbers, is refused before that, with a 413.

phones*
boolean
Defaults to false

Optional. Set to true when the numbers are outside Brazil. The Brazilian format checks are skipped and each number is dialed as sent, without the +, so include the country code.

integer
1 to 3
Defaults to 3

Number of retry attempts after a failed call. When omitted, the voice service applies the default value of 3 attempts.

integer
5 to 180
Defaults to 15

Interval, in minutes, between each retry attempt. When omitted, the voice service applies the default interval of 15 minutes.

string
^([01][0-9]|2[0-3]):[0-5][0-9]$

Cutoff time for additional retry attempts in HH:MM format (for example, "21:00"). The value must be between 08:00 and 21:45 in the America/Sao_Paulo timezone and be at least 10 minutes in the future relative to the time the request is sent. When omitted, no custom cutoff time is applied beyond the silent window.

uri
length ≤ 512

Optional. URL that receives the status events (campaign.status) of this send instead of the app's webhook URL, in the same model as the Twilio StatusCallback. It is called exactly as written, query string included, so it can carry your own identifiers (for example ?order=123). Replies and button postbacks keep going to the app's webhook URL. Must use http or https, have a public hostname without underscores and be at most 512 characters; private and reserved addresses are refused. No authentication header is sent to it.

Responses

Callback
Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json