
## Справочник голосов

`GET /v1/calls/voices`

Возвращает словарь доступных голосов для синтеза речи. Идентификаторы из ответа передаются как параметр `voice` в [`POST /v1/calls/auto-call`](../outbound/auto-call.md).

## Примеры

### curl — личный ключ

```bash
curl https://vibecode.bitrix24.tech/v1/calls/voices \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl https://vibecode.bitrix24.tech/v1/calls/voices \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/calls/voices', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { success, data } = await res.json()
const voices = Object.entries(data)
// [['ruinternalfemale', 'Русский (женский) (Default)'], ...]
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/calls/voices', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | object | Словарь голосов: ключ — идентификатор голоса, значение — название для отображения с указанием источника синтеза в скобках |
| `data.<voiceId>` | string | Название голоса. В скобках — источник синтеза: `Amazon` или `Default`. Передавайте `voiceId` как параметр `voice` в автозвонке |

## Пример ответа

```json
{
  "success": true,
  "data": {
    "auenglishfemale": "Австралийский английский (женский) (Amazon)",
    "brportuguesefemale": "Бразильский португальский (женский) (Amazon)",
    "ruinternalfemale": "Русский (женский) (Default)",
    "ruinternalmale": "Русский (мужской) (Default)",
    "ukenglishfemale": "Английский (женский) (Amazon)",
    "ukenglishmale": "Английский (мужской) (Amazon)",
    "usenglishfemale": "Американский английский (женский) (Default)",
    "usenglishmale": "Американский английский (мужской) (Default)",
    "eurfrenchfemale": "Французский (женский) (Amazon)",
    "eurfrenchmale": "Французский (мужской) (Amazon)",
    "eurgermanfemale": "Немецкий (женский) (Default)",
    "eurgermanmale": "Немецкий (мужской) (Default)",
    "jpjapanesefemale": "Японский (женский) (Default)",
    "chchinesefemale": "Китайский (женский) (Default)"
  }
}
```

## Пример ответа при ошибке

403 — нет скоупа `telephony`:

```json
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'telephony' scope"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |
| 401 | `INVALID_API_KEY` | Неверный API-ключ |
| 401 | `TOKEN_MISSING` | Ключ не имеет настроенных токенов Битрикс24 |
| 401 | `KEY_INACTIVE` | API-ключ неактивен или отозван |
| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `telephony` |
| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку (текст в `error.message`) |
| 429 | `RATE_LIMITED` | Превышен лимит запросов |
| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

**`data` — объект-словарь, не массив.** Для перебора всех голосов используйте `Object.entries(data)`. Получить конкретный голос по идентификатору: `data['ruinternalfemale']`.

**Голос по умолчанию.** При вызове автозвонка без параметра `voice` Битрикс24 выбирает голос по умолчанию исходя из языка портала. Для русскоязычного портала — `ruinternalfemale`.

**Набор голосов зависит от тарифа.** Доступные голоса и их идентификаторы могут различаться в зависимости от тарифного плана портала.

## Смотрите также

- [Автозвонок с синтезом речи](../outbound/auto-call.md)
- [Автозвонок с аудиофайлом](../outbound/auto-call-audio.md)
- [Статистика звонков](./statistics.md)
- [Телефония — обзор](/docs/telephony)
