
## Линии Voximplant

`GET /v1/voximplant-lines`

Возвращает список линий, арендованных у Voximplant или подключённых по SIP, которые видит портал. Операции создания, обновления и удаления для этих линий недоступны — только чтение. Идентификаторы из этого списка можно передавать как `fromLine` в исходящих звонках.

## Примеры

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

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

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

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

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

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

const { success, data } = await res.json()
console.log(`Доступно ${data.length} линий`)
```

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

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

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

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

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | array | Массив линий |
| `data[].id` | string | Идентификатор линии. Префикс `reg` — арендованный у Voximplant номер, `sip` — подключённый SIP-канал |
| `data[].name` | string | Отображаемое название |

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

```json
{
  "success": true,
  "data": [
    {"id": "reg133788", "name": "test"},
    {"id": "reg150907", "name": "+79179087621"},
    {"id": "sip7", "name": "Office PBX 1"},
    {"id": "reg151083", "name": "Облачная АТС (9)"},
    {"id": "sip11", "name": "Офисная АТС (11)"},
    {"id": "reg151085", "name": "SIP line 2"}
  ]
}
```

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

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

```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` | Ключ не имеет настроенных токенов |
| 401 | `KEY_INACTIVE` | API-ключ неактивен или отозван |
| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `telephony` |
| 403 | `BITRIX_ACCESS_DENIED` | Скоуп есть, но у владельца ключа нет прав администратора телефонии (управление линиями) в Битрикс24 |
| 429 | `RATE_LIMITED` | Превышен лимит запросов |
| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |

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

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

**Два типа линий по префиксу `id`.** Идентификаторы `reg<N>` соответствуют номерам, арендованным у Voximplant; `sip<N>` — каналам, подключённым по SIP. Оба типа принимаются в качестве `fromLine` в исходящих звонках.

**Источник для исходящих звонков.** В параметр `fromLine` методов [callback](../outbound/callback.md), [auto-call](../outbound/auto-call.md) и [auto-call-audio](../outbound/auto-call-audio.md) можно передавать как `id` из этого списка, так и `number` линии приложения из [`GET /v1/telephony-lines`](./list.md). Выбор зависит от того, через какой тип линии выполняется звонок.

**Нужны права администратора телефонии.** Скоупа `telephony` у ключа недостаточно: список линий отдаётся только если у владельца ключа (для `vibe_app_` — у авторизованного пользователя) есть право управления линиями телефонии в Битрикс24. Без него запрос возвращает `403 BITRIX_ACCESS_DENIED`. Право управления линиями телефонии выдаёт администратор портала в настройках телефонии Битрикс24. Та же модель прав распространяется на статистику звонков — без прав администратора телефонии выборка приходит пустой. Это ограничение Битрикс24, а не Вайбкод.

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

- [Список линий приложения](./list.md)
- [Callback](../outbound/callback.md)
- [Автодозвон](../outbound/auto-call.md)
- [Автодозвон с аудио](../outbound/auto-call-audio.md)
