For AI agents: markdown of this page — /docs-content-en/telephony/outbound/auto-call.md documentation index — /llms.txt
Start an auto-call with speech synthesis
POST /v1/calls/auto-call
Dials toNumber and, after the call is answered, plays back synthesized text (textToPronounce). No operator is involved. Used for automated notifications, reminders, and robocall campaigns.
Request fields (body)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ParameterfromLine |
Typestring | Requiredyes | Default— | DescriptionOutbound call line ID. List of lines — GET /v1/voximplant-lines |
ParametertoNumber |
Typestring | Requiredyes | Default— | DescriptionPhone number in international format |
ParametertextToPronounce |
Typestring | Requiredyes | Default— | DescriptionText for speech synthesis |
Parametervoice |
Typestring | Requiredno | Defaultvoice for the account language | DescriptionVoice ID. List of available voices — GET /v1/calls/voices |
Examples
curl — personal key
curl -X POST https://vibecode.bitrix24.com/v1/calls/auto-call \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fromLine": "YOUR_LINE_ID",
"toNumber": "+12025550123",
"textToPronounce": "Hello! Your order is ready for pickup."
}'
curl — OAuth application
curl -X POST https://vibecode.bitrix24.com/v1/calls/auto-call \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fromLine": "YOUR_LINE_ID",
"toNumber": "+12025550124",
"textToPronounce": "Hello! Your order is ready for pickup."
}'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/calls/auto-call', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
fromLine: 'YOUR_LINE_ID',
toNumber: '+12025550125',
textToPronounce: 'Hello! Your order is ready for pickup.',
}),
})
const { success, data } = await res.json()
const callId = data.callId
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/calls/auto-call', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
fromLine: 'YOUR_LINE_ID',
toNumber: '+12025550126',
textToPronounce: 'Hello! Your order is ready for pickup.',
}),
})
const { success, data } = await res.json()
const callId = data.callId
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typeobject | DescriptionResult of starting the call |
Fielddata.result |
Typeboolean | Descriptiontrue when the call is initiated successfully |
Fielddata.callId |
Typestring | DescriptionIdentifier of the initiated call with the infocall. prefix |
Response example
HTTP 200 — call initiated:
{
"success": true,
"data": {
"result": true,
"callId": "infocall.a3f2c1e4b8d06f7a9e2c5d1b4f8a3e06.1777974900"
}
}
Error response example
400 — required parameters not provided:
{
"success": false,
"error": {
"code": "MISSING_PARAMS",
"message": "Required: fromLine (string — ID from GET /v1/voximplant-lines), toNumber (string), textToPronounce (string)"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeMISSING_PARAMS |
DescriptionfromLine, toNumber, or textToPronounce not provided |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionX-Api-Key header not provided |
| HTTP401 | CodeINVALID_API_KEY |
DescriptionThe key is not recognized — no such key exists on the platform |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe key has no configured Bitrix24 tokens |
| HTTP401 | CodeKEY_INACTIVE |
DescriptionAPI key is inactive or revoked |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key lacks the telephony scope |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 returned an error (message in error.message) |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRequest limit exceeded |
| HTTP502 | CodeBITRIX_UNAVAILABLE |
DescriptionBitrix24 is unavailable |
Full list of common API errors — Errors.
Known specifics
Default voice. If voice is not specified, Bitrix24 uses the voice matching the Bitrix24 account language. For Russian-language accounts — ruinternalfemale. Full list of available voices — GET /v1/calls/voices.
Monthly limit exceeded. When the auto-call quota is exhausted, Bitrix24 returns BITRIX_ERROR with the message "Infocall limit for this month is exceeded". The quota resets at the start of the next billing period.
Base line is not supported. Using the Bitrix24 account's base line instead of a dedicated line returns BITRIX_ERROR: "Making infocall using LINK_BASE_NUMBER is not allowed".
Record in statistics. After the call ends, it appears in the statistics with CALL_TYPE: "5".