[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-bots\u002Fmanagement\u002Fupdate":3,"docs-tabs-bots\u002Fmanagement\u002Fupdate":6},{"content":4,"lastmod":5},"\n## Обновить бота\n\n`PATCH \u002Fv1\u002Fbots\u002F:botId`\n\nОбновляет свойства бота. Передавайте только те поля, которые хотите изменить.\n\n> **Две формы тела запроса — обе корректны.** Платформа принимает как **плоскую** запись (та же, что у `POST \u002Fv1\u002Fbots`), так и формат Битрикс24 с обёрткой `fields`. Если в теле есть `fields`, запрос передаётся в Битрикс24 без изменений. Иначе известные поля верхнего уровня автоматически разворачиваются в `fields.properties.*` \u002F `fields.*`. Поведение обеих форм идентично.\n\n## Поля запроса (body)\n\n| Параметр (плоский) | Параметр (формат Битрикс24) | Тип | Описание |\n|---|---|-----|---------|\n| `name` | `fields.properties.name` | string | Новое имя бота |\n| `lastName` | `fields.properties.lastName` | string | Новая фамилия |\n| `workPosition` | `fields.properties.workPosition` | string | Новая должность |\n| `color` | `fields.properties.color` | string | Новый цвет аватара |\n| `gender` | `fields.properties.gender` | string | Пол: `M` или `F` |\n| `avatar` | `fields.properties.avatar` | string | Аватар бота: PNG или JPEG как base64-строка без префикса `data:image\u002F...;base64,`, до ~50 КБ. См. «Известные особенности» |\n| `eventMode` | `fields.eventMode` | string | Режим событий: `fetch` или `webhook` |\n| `webhookUrl` | `fields.webhookUrl` | string | URL для push-уведомлений |\n| `isHidden` | `fields.isHidden` | boolean | Скрыть из списка контактов |\n| `isReactionsEnabled` | `fields.isReactionsEnabled` | boolean | Разрешить реакции |\n| `backgroundId` | `fields.backgroundId` | string | Фон чата: `azure`, `mint`, `steel`, `slate`, `teal`, `cornflower`, `sky`, `peach`, `frost` |\n| `isSupportOpenline` | `fields.isSupportOpenline` | boolean | Поддержка открытых линий (только для `type: \"openline\"`) |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42 \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"fields\": {\n      \"properties\": { \"name\": \"Новое имя\", \"color\": \"MINT\" },\n      \"eventMode\": \"fetch\"\n    }\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42 \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"fields\": {\n      \"properties\": { \"name\": \"Новое имя\", \"color\": \"MINT\" },\n      \"eventMode\": \"fetch\"\n    }\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    fields: {\n      properties: { name: 'Новое имя', color: 'MINT' },\n      eventMode: 'fetch',\n    },\n  }),\n})\nconst { data } = await res.json()\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbots\u002F42', {\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    fields: {\n      properties: { name: 'Новое имя', color: 'MINT' },\n      eventMode: 'fetch',\n    },\n  }),\n})\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data.bot` | object | Обновлённый бот. Набор полей совпадает с ответом [регистрации](\u002Fdocs\u002Fbots\u002Fmanagement\u002Fcreate) |\n| `data.bot.id` | number | ID бота на портале Битрикс24 |\n| `data.bot.code` | string | Системный код бота |\n| `data.bot.type` | string | Тип бота: `bot`, `personal` или `supervisor` |\n| `data.bot.eventMode` | string | Режим доставки событий: `fetch` или `webhook` |\n| `data.users` | array | Карточка бота как пользователя портала |\n\n## Пример ответа\n\nПоказаны основные поля. Полный набор полей бота — в ответе [регистрации](\u002Fdocs\u002Fbots\u002Fmanagement\u002Fcreate).\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"bot\": {\n      \"id\": 42,\n      \"code\": \"my_helper_bot\",\n      \"type\": \"bot\",\n      \"eventMode\": \"fetch\",\n      \"isHidden\": false,\n      \"isReactionsEnabled\": true,\n      \"language\": \"ru\"\n    },\n    \"users\": []\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — бот принадлежит другому ключу:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BOT_ACCESS_DENIED\",\n    \"message\": \"This bot belongs to a different API key\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `INVALID_BOT_ID` | `botId` не является числом |\n| 404 | `BOT_NOT_FOUND` | Бот не найден |\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**Симметрия с регистрацией.** PATCH принимает как плоское тело (`{ name, eventMode, ... }`), так и формат Битрикс24 с обёрткой `fields` — так же, как `POST \u002Fv1\u002Fbots`. Если в теле есть ключ `fields`, платформа передаёт его в Битрикс24 без изменений. Иначе нормализует плоские поля сама.\n\n**`type` нельзя изменить:** поле `type` не принимается при обновлении.\n\n**Формат аватара.** Поле `avatar` принимает изображение PNG или JPEG в виде base64-строки **без** префикса `data:image\u002F...;base64,` — передавайте только сами base64-данные. Строка с префиксом `data:` приводит к ответу 422. Размер — до ~50 КБ: при превышении запрос завершается успешно (`success: true`), но аватар не сохраняется и в боте остаётся пустым. Эндпоинт принимает только JSON — загрузка файла через `multipart\u002Fform-data` не поддерживается (ответ 415). Передавайте значение как `avatar` (плоская форма) либо как `fields.properties.avatar` (форма с `fields`) — результат одинаковый.\n\n## Смотрите также\n\n- [Получить бота](\u002Fdocs\u002Fbots\u002Fmanagement)\n- [Зарегистрировать бота](\u002Fdocs\u002Fbots\u002Fmanagement)\n- [Бот-платформа](\u002Fdocs\u002Fbots)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","2026-07-07",{}]