[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-apps\u002Fplacements\u002Favailable":3,"docs-tabs-apps\u002Fplacements\u002Favailable":6},{"content":4,"lastmod":5},"## Доступные места\n\n`GET \u002Fv1\u002Fplacements\u002Favailable`\n\nВозвращает справочник кодов мест встраивания, разложенный по группам интерфейса Битрикс24. Отсюда берут код нужного места перед привязкой.\n\nПредусловия вызова — [что нужно до привязки](\u002Fdocs\u002Fapps#места-встраивания).\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fplacements\u002Favailable \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fplacements\u002Favailable \\\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\u002Fplacements\u002Favailable', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\nconst { data } = await res.json()\nconsole.log('Группы:', Object.keys(data.groups))\nconsole.log('Вкладки карточек CRM:', data.groups['CRM Detail Tabs'].map(p => p.code))\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fplacements\u002Favailable', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\nconst { data } = await res.json()\nconsole.log('Всего кодов, принимаемых при привязке:', data.total)\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.groups` | object | Группы мест встраивания. Ключ — название группы, значение — массив кодов этой группы |\n| `data.groups[группа][].code` | string | Код места встраивания. Это значение передаётся в `placement` при привязке |\n| `data.groups[группа][].title` | string | Название кода словами |\n| `data.groups[группа][].description` | string | Описание точки интерфейса, в которой откроется приложение |\n| `data.groups[группа][].module` | string | Модуль Битрикс24, к которому относится код: `crm`, `tasks`, `user`, `im`, `contact_center`, `main` |\n| `data.total` | number | Количество кодов, принимаемых при привязке |\n\n## Пример ответа\n\nПоказаны 3 группы из 12, остальные устроены так же.\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"groups\": {\n      \"Menu\": [\n        {\n          \"code\": \"LEFT_MENU\",\n          \"title\": \"Left Menu\",\n          \"description\": \"Item in the portal left menu (the \\\"tab in menu\\\" placement most callers want)\",\n          \"module\": \"main\"\n        }\n      ],\n      \"Chat\": [\n        {\n          \"code\": \"IM_SIDEBAR\",\n          \"title\": \"Im Sidebar\",\n          \"description\": \"Chat sidebar panel embed (requires options.iconName)\",\n          \"module\": \"im\"\n        },\n        {\n          \"code\": \"IM_NAVIGATION\",\n          \"title\": \"Im Navigation\",\n          \"description\": \"Chat navigation tab embed (requires options.iconName)\",\n          \"module\": \"im\"\n        },\n        {\n          \"code\": \"IM_TEXTAREA\",\n          \"title\": \"Im Textarea\",\n          \"description\": \"Chat message-input button embed (requires options.iconName)\",\n          \"module\": \"im\"\n        },\n        {\n          \"code\": \"IM_CONTEXT_MENU\",\n          \"title\": \"Im Context Menu\",\n          \"description\": \"Chat message context-menu item embed (options: context, role, extranet)\",\n          \"module\": \"im\"\n        }\n      ],\n      \"Contact Center\": [\n        {\n          \"code\": \"CONTACT_CENTER\",\n          \"title\": \"Contact Center\",\n          \"description\": \"Tile in the Contact Center section (requires scope contact_center)\",\n          \"module\": \"contact_center\"\n        }\n      ]\n    },\n    \"total\": 55\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n401 — не передан заголовок `X-Api-Key`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_API_KEY\",\n    \"message\": \"API key required. Pass via X-Api-Key header.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный ключ |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **`total` больше, чем сумма длин групп.** В проверенном ответе `total` равен 55, а во всех группах вместе — 44 кода. Это разные наборы: `total` считает более широкий перечень кодов, допустимых к привязке, чем показывают группы.\n- **Коды смарт-процессов в справочник не попадают.** Кроме перечисленных кодов привязка принимает коды вида `CRM_DYNAMIC_\u003CentityTypeId>_DETAIL_TAB` и `CRM_SMART_\u003CentityTypeId>_DETAIL_TAB` с окончаниями `DETAIL_TAB`, `DETAIL_ACTIVITY`, `DETAIL_TOOLBAR`, `LIST_MENU`, `LIST_TOOLBAR`, `ACTIVITY_TIMELINE_MENU`. Числовая часть зависит от аккаунта, поэтому такие коды перечислить заранее нельзя.\n- **Код из справочника ещё не означает, что место откроется на аккаунте.** Аккаунт отдаёт приложению только те места, права на которые у приложения есть, — см. [что нужно до привязки](\u002Fdocs\u002Fapps#места-встраивания).\n\n## Смотрите также\n\n- [Места встраивания](\u002Fdocs\u002Fapps\u002Fplacements)\n- [Привязанные места](\u002Fdocs\u002Fapps\u002Fplacements\u002Flist)\n- [Привязать место](\u002Fdocs\u002Fapps\u002Fplacements\u002Fbind)\n- [Отвязать место](\u002Fdocs\u002Fapps\u002Fplacements\u002Funbind)\n- [Скоупы](\u002Fdocs\u002Fscopes)\n","2026-07-22",{}]