[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-bots\u002Fcommands\u002Fregister":3,"docs-tabs-bots\u002Fcommands\u002Fregister":6},{"content":4,"lastmod":5},"\n## Зарегистрировать команду\n\n`POST \u002Fv1\u002Fbots\u002F:botId\u002Fcommands`\n\nРегистрирует новую slash-команду бота. Вайбкод принимает плоский формат и автоматически оборачивает в `fields` для Битрикс24.\n\n## Поля запроса (body)\n\n| Параметр | Тип | Обяз. | По умолч. | Описание |\n|----------|-----|:-----:|-----------|---------|\n| `command` | string | да | — | Текст команды без `\u002F` (например, `help`) |\n| `title` | string\u002Fobject | нет | — | Заголовок. Строка или мультиязычный объект `{ \"ru\": \"Помощь\", \"en\": \"Help\" }` |\n| `params` | string\u002Fobject | нет | — | Описание параметров. Строка или объект `{ \"ru\": \"тема\", \"en\": \"topic\" }` |\n| `common` | string | нет | `\"N\"` | `\"Y\"` — доступна во всех чатах, `\"N\"` — только в личном диалоге с ботом и чатах с ботом |\n| `hidden` | string | нет | `\"N\"` | `\"Y\"` — скрыть из списка команд |\n| `extranetSupport` | string | нет | `\"N\"` | `\"Y\"` — доступна для экстранет-пользователей |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"command\": \"help\",\n    \"title\": { \"ru\": \"Помощь\", \"en\": \"Help\" },\n    \"params\": { \"ru\": \"тема\", \"en\": \"topic\" },\n    \"common\": \"Y\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"command\": \"help\",\n    \"title\": { \"ru\": \"Помощь\", \"en\": \"Help\" },\n    \"params\": { \"ru\": \"тема\", \"en\": \"topic\" },\n    \"common\": \"Y\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    command: 'help',\n    title: { ru: 'Помощь', en: 'Help' },\n    params: { ru: 'тема', en: 'topic' },\n    common: 'Y',\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Command ID:', data.commandId)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands', {\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    command: 'help',\n    title: { ru: 'Помощь', en: 'Help' },\n    params: { ru: 'тема', en: 'topic' },\n    common: 'Y',\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `command.id` | number | ID зарегистрированной команды |\n| `command.botId` | number | ID бота |\n| `command.command` | string | Текст команды (с `\u002F`) |\n| `command.common` | boolean | Доступна во всех чатах |\n| `command.hidden` | boolean | Скрыта из списка |\n| `command.extranetSupport` | boolean | Доступна экстранет-пользователям |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"command\": {\n      \"id\": 117,\n      \"botId\": 1327,\n      \"command\": \"\u002Fhelp\",\n      \"common\": true,\n      \"hidden\": false,\n      \"extranetSupport\": false\n    }\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n502 — ошибка Битрикс24:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"Command 'help' already registered\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `INVALID_BOT_ID` | `botId` не является числом |\n| 404 | `BOT_NOT_FOUND` | Бот с таким ID не найден |\n| 403 | `BOT_ACCESS_DENIED` | Бот принадлежит другому API-ключу |\n| 502 | `BITRIX_ERROR` | Ошибка Битрикс24 (текст ошибки в `message`) |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `imbot` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Идемпотентность:** повторный вызов с тем же `command` для того же бота возвращает существующую команду без изменений. Для обновления используйте `PATCH`.\n\n**Мультиязычность:** `title` и `params` принимают как строку, так и объект с языковыми ключами (`ru`, `en`, `de` и т.д.).\n\n**Событие:** при вызове команды пользователем срабатывает событие `ONIMBOTV2COMMANDADD`.\n\n## Смотрите также\n\n- [Список команд](\u002Fdocs\u002Fbots\u002Fcommands\u002Flist)\n- [Ответить на команду](\u002Fdocs\u002Fbots\u002Fcommands\u002Fanswer)\n- [События](\u002Fdocs\u002Fbots\u002Fevents)\n- [Бот-платформа](\u002Fdocs\u002Fbots)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","2026-06-24",{}]