For AI agents: markdown of this page — /docs-content-en/telephony/analytics/voices.md documentation index — /llms.txt
Voice reference
GET /v1/calls/voices
Returns a dictionary of available voices for speech synthesis. The identifiers from the response are passed as the voice parameter to POST /v1/calls/auto-call.
Examples
curl — personal key
curl https://vibecode.bitrix24.com/v1/calls/voices \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl https://vibecode.bitrix24.com/v1/calls/voices \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/calls/voices', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { success, data } = await res.json()
const voices = Object.entries(data)
// [['ruinternalfemale', 'Russian (female) (Default)'], ...]
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/calls/voices', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typeobject | DescriptionVoice dictionary: the key is the voice identifier, the value is the display name with the synthesis source in parentheses |
Fielddata.<voiceId> |
Typestring | DescriptionVoice name. The synthesis source is shown in parentheses: Amazon or Default. Pass voiceId as the voice parameter in an automatic call |
Response example
{
"success": true,
"data": {
"auenglishfemale": "Australian English (female) (Amazon)",
"brportuguesefemale": "Brazilian Portuguese (female) (Amazon)",
"ruinternalfemale": "Russian (female) (Default)",
"ruinternalmale": "Russian (male) (Default)",
"ukenglishfemale": "English (female) (Amazon)",
"ukenglishmale": "English (male) (Amazon)",
"usenglishfemale": "American English (female) (Default)",
"usenglishmale": "American English (male) (Default)",
"eurfrenchfemale": "French (female) (Amazon)",
"eurfrenchmale": "French (male) (Amazon)",
"eurgermanfemale": "German (female) (Default)",
"eurgermanmale": "German (male) (Default)",
"jpjapanesefemale": "Japanese (female) (Default)",
"chchinesefemale": "Chinese (female) (Default)"
}
}
Error response example
403 — no telephony scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'telephony' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was 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 |
DescriptionThe API key is inactive or revoked |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key lacks the telephony scope |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 returned an error (text in error.message) |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRequest limit exceeded |
| HTTP502 | CodeBITRIX_UNAVAILABLE |
DescriptionBitrix24 is unavailable |
The full list of common API errors — Errors.
Known specifics
data is a dictionary object, not an array. To iterate over all voices, use Object.entries(data). To get a specific voice by identifier: data['ruinternalfemale'].
Default voice. If the voice parameter is omitted in an automatic call, Bitrix24 selects the default voice based on the Bitrix24 account language. For a Russian-language account it is ruinternalfemale.
The set of voices depends on the plan. The available voices and their identifiers may differ depending on the Bitrix24 account plan.