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 |
|---|---|---|
success |
boolean | Always true on success |
data |
object | Voice dictionary: the key is the voice identifier, the value is the display name with the synthesis source in parentheses |
data.<voiceId> |
string | Voice name. In parentheses — the synthesis source: 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 |
|---|---|---|
| 401 | MISSING_API_KEY |
The X-Api-Key header was not provided |
| 401 | INVALID_API_KEY |
Invalid API key |
| 401 | TOKEN_MISSING |
The key has no configured Bitrix24 tokens |
| 401 | KEY_INACTIVE |
The API key is inactive or revoked |
| 403 | SCOPE_DENIED |
The key lacks the telephony scope |
| 422 | BITRIX_ERROR |
Bitrix24 returned an error (text in error.message) |
| 429 | RATE_LIMITED |
Request limit exceeded |
| 502 | BITRIX_UNAVAILABLE |
Bitrix24 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. When making an automatic call without the voice parameter, 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.
See also
- Automatic call with speech synthesis — uses a voice identifier from this reference
- Automatic call with an audio file
- Call statistics
- Telephony — overview