[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-bots\u002Fcommands\u002Flist":3,"docs-tabs-bots\u002Fcommands\u002Flist":6},{"content":4,"lastmod":5},"\n## Список команд\n\n`GET \u002Fv1\u002Fbots\u002F:botId\u002Fcommands`\n\nВозвращает все зарегистрированные команды бота.\n\n## ⚠️ Возможная задержка после мутаций\n\nВайбкод не кеширует этот ответ. Однако сам Битрикс24 **держит свой кеш** списка команд и не всегда обновляет его сразу после регистрации, обновления или удаления команды. В течение нескольких секунд (иногда минут) после успешной мутации `GET` может возвращать:\n\n- удалённые команды (их id ещё видны в списке)\n- старые значения `title` \u002F `params` \u002F `common` \u002F `hidden` для только что обновлённой команды\n- отсутствие только что зарегистрированной команды.\n\nПри этом сама команда уже **действует** на стороне Битрикс24 (на неё реагирует событие `ONIMBOTV2COMMANDADD`, бот её обрабатывает) — расхождение видно только в этом `GET`.\n\n### Что делать\n\n- **Не использовать `GET \u002Fcommands` как единственный источник правды сразу после мутации.** Опирайтесь на ответ самой мутации: `POST` возвращает данные с новым id, `PATCH` — обновлённую команду, `DELETE` — признак успеха.\n- **Если нужна синхронизация со списком** (например для сверки интерфейса с реальным состоянием), запросите `GET` повторно через 10–30 секунд.\n- **Если расхождение сохраняется дольше минуты**, это уже не штатная задержка. Приложите к обращению в поддержку `botId`, время мутации и то, что именно ожидалось и что получено.\n\nПринудительно сбросить этот кеш на стороне Битрикс24 нельзя. Если список не обновился — повторите `GET` через несколько секунд.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `botId` (path) | number | да | ID бота |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl 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```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Команды:', data)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42\u002Fcommands', {\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| `data` | array | Массив команд |\n| `data[].id` | number | ID команды |\n| `data[].command` | string | Текст команды |\n| `data[].title` | string | Заголовок (локализованный) |\n| `data[].params` | string | Описание параметров (локализованное) |\n| `data[].common` | boolean | Доступна во всех чатах |\n| `data[].hidden` | boolean | Скрыта из списка |\n| `data[].extranetSupport` | boolean | Доступна экстранет-пользователям |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 7,\n      \"command\": \"help\",\n      \"title\": \"Помощь\",\n      \"params\": \"тема\",\n      \"common\": true,\n      \"hidden\": false,\n      \"extranetSupport\": false\n    },\n    {\n      \"id\": 8,\n      \"command\": \"status\",\n      \"title\": \"Статус\",\n      \"params\": \"\",\n      \"common\": false,\n      \"hidden\": false,\n      \"extranetSupport\": false\n    }\n  ]\n}\n```\n\n## Пример ответа при ошибке\n\n404 — бот не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BOT_NOT_FOUND\",\n    \"message\": \"Bot 999 not found. Register it first via POST \u002Fv1\u002Fbots.\"\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| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `imbot` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Зарегистрировать команду](\u002Fdocs\u002Fbots\u002Fcommands\u002Fregister)\n- [Обновить команду](\u002Fdocs\u002Fbots\u002Fcommands\u002Fupdate)\n- [Бот-платформа](\u002Fdocs\u002Fbots)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","2026-06-24",{}]