[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-telephony\u002Flines\u002Fvoximplant":3,"docs-tabs-telephony\u002Flines\u002Fvoximplant":6},{"content":4,"lastmod":5},"\n## Линии Voximplant\n\n`GET \u002Fv1\u002Fvoximplant-lines`\n\nВозвращает список линий, арендованных у Voximplant или подключённых по SIP, которые видит портал. Операции создания, обновления и удаления для этих линий недоступны — только чтение. Идентификаторы из этого списка можно передавать как `fromLine` в исходящих звонках.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fvoximplant-lines\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fvoximplant-lines\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fvoximplant-lines', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log(`Доступно ${data.length} линий`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fvoximplant-lines', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив линий |\n| `data[].id` | string | Идентификатор линии. Префикс `reg` — арендованный у Voximplant номер, `sip` — подключённый SIP-канал |\n| `data[].name` | string | Отображаемое название |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\"id\": \"reg133788\", \"name\": \"test\"},\n    {\"id\": \"reg150907\", \"name\": \"+79179087621\"},\n    {\"id\": \"sip7\", \"name\": \"Office PBX 1\"},\n    {\"id\": \"reg151083\", \"name\": \"Облачная АТС (9)\"},\n    {\"id\": \"sip11\", \"name\": \"Офисная АТС (11)\"},\n    {\"id\": \"reg151085\", \"name\": \"SIP line 2\"}\n  ]\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'telephony' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `TOKEN_MISSING` | Ключ не имеет настроенных токенов |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен или отозван |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `telephony` |\n| 403 | `BITRIX_ACCESS_DENIED` | Скоуп есть, но у владельца ключа нет прав администратора телефонии (управление линиями) в Битрикс24 |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Два типа линий по префиксу `id`.** Идентификаторы `reg\u003CN>` соответствуют номерам, арендованным у Voximplant; `sip\u003CN>` — каналам, подключённым по SIP. Оба типа принимаются в качестве `fromLine` в исходящих звонках.\n\n**Источник для исходящих звонков.** В параметр `fromLine` методов [callback](..\u002Foutbound\u002Fcallback.md), [auto-call](..\u002Foutbound\u002Fauto-call.md) и [auto-call-audio](..\u002Foutbound\u002Fauto-call-audio.md) можно передавать как `id` из этого списка, так и `number` линии приложения из [`GET \u002Fv1\u002Ftelephony-lines`](.\u002Flist.md). Выбор зависит от того, через какой тип линии выполняется звонок.\n\n**Нужны права администратора телефонии.** Скоупа `telephony` у ключа недостаточно: список линий отдаётся только если у владельца ключа (для `vibe_app_` — у авторизованного пользователя) есть право управления линиями телефонии в Битрикс24. Без него запрос возвращает `403 BITRIX_ACCESS_DENIED`. Право управления линиями телефонии выдаёт администратор портала в настройках телефонии Битрикс24. Та же модель прав распространяется на статистику звонков — без прав администратора телефонии выборка приходит пустой. Это ограничение Битрикс24, а не Вайбкод.\n\n## Смотрите также\n\n- [Список линий приложения](.\u002Flist.md) — `GET \u002Fv1\u002Ftelephony-lines`\n- [Callback](..\u002Foutbound\u002Fcallback.md) — `POST \u002Fv1\u002Fcalls\u002Fcallback`\n- [Автодозвон](..\u002Foutbound\u002Fauto-call.md) — `POST \u002Fv1\u002Fcalls\u002Fauto-call`\n- [Автодозвон с аудио](..\u002Foutbound\u002Fauto-call-audio.md) — `POST \u002Fv1\u002Fcalls\u002Fauto-call-audio`\n","2026-07-07",{"list.md":7},"\n## Список линий приложения\n\n`GET \u002Fv1\u002Ftelephony-lines`\n\nВозвращает список внешних линий, добавленных приложением через `POST \u002Fv1\u002Ftelephony-lines`. Список возвращается целиком — фильтрация, сортировка и `offset` не поддерживаются, нужную линию отбирайте на стороне клиента.\n\n## Параметры\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `select` (query) | string | — | Выборка полей в camelCase: `?select=number,name` |\n| `limit` (query) | number | `50` | Количество записей (до 5000) |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log(`Найдено ${meta.total} линий`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив линий |\n| `data[].number` | string | Идентификатор линии, заданный при создании |\n| `data[].name` | string \\| null | Отображаемое название. `null`, если не задано при создании |\n| `data[].crmAutoCreate` | boolean | Автосоздание CRM-сущности при исходящем звонке через эту линию: `true` — создавать, `false` — не создавать |\n| `meta.total` | number | Общее количество линий приложения |\n| `meta.hasMore` | boolean | Есть ли ещё записи за пределами `limit` |\n\n## Пример ответа\n\nHTTP 200, пустая выборка:\n\n```json\n{\"success\":true,\"data\":[],\"meta\":{\"total\":0,\"hasMore\":false}}\n```\n\nHTTP 200, одна линия:\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"number\": \"doc-test-line-001\",\n      \"name\": \"Тестовая линия (аудит)\",\n      \"crmAutoCreate\": true\n    }\n  ],\n  \"meta\": {\n    \"total\": 1,\n    \"hasMore\": false\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'telephony' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `TOKEN_MISSING` | Ключ не имеет настроенных токенов |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен или отозван |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `telephony` |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Только линии этого приложения.** Список содержит линии, созданные через `POST \u002Fv1\u002Ftelephony-lines` в рамках текущего API-ключа. Линии, арендованные у Voximplant или подключённые по SIP, доступны через [`GET \u002Fv1\u002Fvoximplant-lines`](.\u002Fvoximplant.md).\n\n**Фильтрация, сортировка и `offset` не работают.** Параметры `filter`, `order`, `offset` принимаются без ошибки, но игнорируются — возвращается весь список линий. Работают только `limit` (ограничивает количество) и `select` (выбор полей в camelCase). Отбор по номеру или имени делайте на стороне клиента.\n\n**Все поля ответа — в camelCase**, включая `crmAutoCreate` (boolean). Ранее это поле приходило в UPPER_SNAKE_CASE строкой `\"Y\"`\u002F`\"N\"` — с 07.2026 оно нормализовано в camelCase boolean, как и остальные поля.\n\n**`serverName` не возвращается.** Поле объявлено в `GET \u002Fv1\u002Ftelephony-lines\u002Ffields`, но в списке не приходит ни при каких условиях — даже если задавалось при создании ([детали](.\u002Fcreate.md#известные-особенности)).\n\n## Смотрите также\n\n- [Добавить линию](.\u002Fcreate.md) — `POST \u002Fv1\u002Ftelephony-lines`\n- [Обновить линию](.\u002Fupdate.md) — `PATCH \u002Fv1\u002Ftelephony-lines\u002F:number`\n- [Удалить линию](.\u002Fdelete.md) — `DELETE \u002Fv1\u002Ftelephony-lines\u002F:number`\n- [Линии Voximplant](.\u002Fvoximplant.md) — `GET \u002Fv1\u002Fvoximplant-lines`\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Исходящие звонки](\u002Fdocs\u002Ftelephony\u002Foutbound) — линии используются как `fromLine`\n"]