[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-telephony\u002Flines\u002Flist":3,"docs-tabs-telephony\u002Flines\u002Flist":6},{"content":4,"lastmod":5},"\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","2026-07-02",{"create.md":7,"update.md":8,"delete.md":9,"voximplant.md":10},"\n## Добавить линию\n\n`POST \u002Fv1\u002Ftelephony-lines`\n\nРегистрирует новую внешнюю линию приложения на портале. После создания линия доступна в [`GET \u002Fv1\u002Ftelephony-lines`](.\u002Flist.md) и может использоваться как `fromLine` в исходящих звонках. Поля передаются плоско в корне JSON — без обёртки `fields`.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `number` | string | да | Уникальный идентификатор линии на портале |\n| `name` | string | нет | Отображаемое название линии |\n| `crmAutoCreate` | boolean | нет | Автосоздание CRM-сущности при исходящем звонке через линию: `true` — создавать, `false` — не создавать. По умолчанию `true` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"number\": \"sip-line-1\",\n    \"name\": \"Основная линия\",\n    \"crmAutoCreate\": false\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"number\": \"sip-line-1\",\n    \"name\": \"Основная линия\",\n    \"crmAutoCreate\": false\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    number: 'sip-line-1',\n    name: 'Основная линия',\n    crmAutoCreate: false,\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Внутренний ID записи:', data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    number: 'sip-line-1',\n    name: 'Основная линия',\n    crmAutoCreate: false,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.id` | number | Внутренний идентификатор записи в Битрикс24. Для последующих операций не используется — обновление и удаление ведутся по `number` |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 17\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — поле `number` не передано:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"NUMBER should not be empty\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку — текст в `error.message`. Причины: не передан `number`, дублирующий идентификатор |\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**`serverName` объявлено в `GET \u002Fv1\u002Ftelephony-lines\u002Ffields`, но не функционирует.** Поле принимается при создании (ответ `201`), но не сохраняется, не возвращается в чтении и не обновляется (`PATCH` с одним `serverName` отвечает `422 «There are no fields to update»`). Не используйте — переданное значение теряется.\n\n**Поле `crmAutoCreate` — camelCase boolean.** Передавайте `true`\u002F`false`; если поле опущено, линия создаётся со значением по умолчанию `true`. Ранее принималось только UPPER_SNAKE-имя `CRM_AUTO_CREATE` строкой `\"Y\"`\u002F`\"N\"`, а `crmAutoCreate` молча отбрасывался — с 07.2026 канонично camelCase boolean (сырой UPPER-вариант ещё принимается на запись для совместимости).\n\n**`data.id` — внутренний идентификатор, не используется для других операций.** Обновление и удаление линии выполняются по `number` из тела запроса, а не по `data.id` из ответа. Сохраните переданное `number` — именно оно подставляется в URL `PATCH \u002Fv1\u002Ftelephony-lines\u002F:number` и `DELETE \u002Fv1\u002Ftelephony-lines\u002F:number`. Значения с `+`, пробелами или `\u002F` допустимы — при подстановке в URL их нужно кодировать: `+79161234567` → `%2B79161234567`.\n\n## Смотрите также\n\n- [Список линий приложения](.\u002Flist.md) — `GET \u002Fv1\u002Ftelephony-lines`\n- [Обновить линию](.\u002Fupdate.md) — `PATCH \u002Fv1\u002Ftelephony-lines\u002F:number`\n- [Удалить линию](.\u002Fdelete.md) — `DELETE \u002Fv1\u002Ftelephony-lines\u002F:number`\n- [Исходящие звонки](\u002Fdocs\u002Ftelephony\u002Foutbound) — использование `number` как `fromLine`\n","\n## Обновить линию\n\n`PATCH \u002Fv1\u002Ftelephony-lines\u002F:number`\n\nОбновляет параметры существующей внешней линии приложения. Идентификатор `number` задаётся при создании и не меняется. Поля передаются плоско в корне JSON — без обёртки `fields`.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `number` (path) | string | да | Идентификатор линии, заданный при создании. Если содержит спецсимволы — URL-кодировать |\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `name` | string | нет | Новое отображаемое название линии |\n| `crmAutoCreate` | boolean | нет | Автосоздание CRM-сущности при исходящем звонке: `true` \u002F `false` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002Fsip-line-1\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"Основная линия (обновлено)\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002Fsip-line-1\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"Основная линия (обновлено)\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst number = 'sip-line-1'\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002F${encodeURIComponent(number)}`,\n  {\n    method: 'PATCH',\n    headers: {\n      'X-Api-Key': 'YOUR_API_KEY',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({\n      name: 'Основная линия (обновлено)',\n    }),\n  }\n)\n\nconst { success, data } = await res.json()\nconsole.log('Идентификатор линии:', data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst number = 'sip-line-1'\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002F${encodeURIComponent(number)}`,\n  {\n    method: 'PATCH',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({\n      name: 'Основная линия (обновлено)',\n    }),\n  }\n)\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.id` | string | Идентификатор обновлённой линии (значение `number` из URL) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"sip-line-1\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — линия не найдена или ошибка Битрикс24:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"NUMBER should not be empty\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку — текст в `error.message` |\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**Нужно хотя бы одно обновляемое поле.** Распознаются только `name` и `crmAutoCreate`. Тело без них (пустое или только с нераспознанными полями) отвечает `422 «There are no fields to update»`.\n\n**`serverName` не обновляется.** Поле есть в `GET \u002Fv1\u002Ftelephony-lines\u002Ffields`, но `PATCH` с одним `serverName` отвечает `422 «There are no fields to update»` — оно не распознаётся как обновляемое. Значение не сохраняется и не возвращается в чтении.\n\n**`data.id` — это `number` из URL, не целое число.** В отличие от ответа `POST \u002Fv1\u002Ftelephony-lines`, где `data.id` является внутренним числовым идентификатором записи, ответ обновления возвращает строку — значение `number` из пути запроса.\n\n**Изменить `number` через обновление нельзя.** Идентификатор фиксируется при создании. Чтобы сменить `number` — удалите линию и создайте новую с нужным значением.\n\n## Смотрите также\n\n- [Список линий приложения](.\u002Flist.md) — `GET \u002Fv1\u002Ftelephony-lines`\n- [Добавить линию](.\u002Fcreate.md) — `POST \u002Fv1\u002Ftelephony-lines`\n- [Удалить линию](.\u002Fdelete.md) — `DELETE \u002Fv1\u002Ftelephony-lines\u002F:number`\n","\n## Удалить линию\n\n`DELETE \u002Fv1\u002Ftelephony-lines\u002F:number`\n\nУдаляет внешнюю линию приложения по идентификатору `number`. Восстановить удалённую линию через API нельзя — создайте новую с тем же `number` при необходимости.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `number` (path) | string | да | Идентификатор линии, заданный при создании. Если содержит спецсимволы — URL-кодировать |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002Fsip-line-1\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002Fsip-line-1\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst number = 'sip-line-1'\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002F${encodeURIComponent(number)}`,\n  {\n    method: 'DELETE',\n    headers: {\n      'X-Api-Key': 'YOUR_API_KEY',\n    },\n  }\n)\n\nif (res.status === 204) {\n  console.log('Линия удалена')\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst number = 'sip-line-1'\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftelephony-lines\u002F${encodeURIComponent(number)}`,\n  {\n    method: 'DELETE',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\n\nif (res.status === 204) {\n  console.log('Линия удалена')\n}\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом — успех проверяется по коду ответа.\n\n## Пример ответа\n\n```http\nHTTP\u002F1.1 204 No Content\n```\n\n## Пример ответа при ошибке\n\n422 — ошибка Битрикс24:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"External line not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку — текст в `error.message`. Возникает в том числе при попытке удалить несуществующую линию |\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- [Список линий приложения](.\u002Flist.md) — найти `number` нужной линии перед удалением\n- [Добавить линию](.\u002Fcreate.md) — создать новую линию с тем же `number`\n- [Обновить линию](.\u002Fupdate.md) — `PATCH \u002Fv1\u002Ftelephony-lines\u002F:number`\n","\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"]