Для AI-агентов: markdown этой страницы — /docs-content/bots/management/update.md индекс документации — /llms.txt

Обновить бота

PATCH /v1/bots/:botId

Обновляет свойства бота. Передавайте только те поля, которые хотите изменить.

Две формы тела запроса — обе корректны. Платформа принимает как плоскую запись (та же, что у POST /v1/bots), так и формат Битрикс24 с обёрткой fields. Если в теле есть непустая обёртка fields, запрос передаётся в Битрикс24 без изменений. Значения [], null, false, 0 и "" обёрткой не считаются — тело читается как плоское. Пустой объект {} обёрткой считается: он отключает разворачивание, и поля верхнего уровня применены не будут. Без обёртки известные поля верхнего уровня автоматически разворачиваются в fields.properties.* / fields.*, а неизвестный ключ при таком разворачивании отбрасывается — Битрикс24 всё равно его игнорировал. Для всех полей, которые применяет Битрикс24, поведение обеих форм идентично.

Единственное исключение — disabled. Это поле платформа применяет сама и в Битрикс24 не передаёт, поэтому читает его только с верхнего уровня тела. Внутри обёртки fields оно полем платформы не является: {"fields": {"disabled": false}} уходит по обычному пути обновления, а на отключённом боте этот путь отвечает 410 BOT_DISABLED. Вызов возврата бота — это плоское тело {"disabled": false}, и только оно.

Поля запроса (body)

Параметр (плоский) Параметр (формат Битрикс24) Тип Описание
name fields.properties.name string Новое имя бота
lastName fields.properties.lastName string Новая фамилия
workPosition fields.properties.workPosition string Новая должность
color fields.properties.color string Новый цвет аватара
gender fields.properties.gender string Пол: M или F
avatar fields.properties.avatar string Аватар бота: PNG или JPEG как base64-строка без префикса data:image/...;base64,, до ~50 КБ. См. «Известные особенности»
eventMode fields.eventMode string Режим событий: fetch или webhook
webhookUrl fields.webhookUrl string URL для push-уведомлений
isHidden fields.isHidden boolean Скрыть из списка контактов
isReactionsEnabled fields.isReactionsEnabled boolean Разрешить реакции
backgroundId fields.backgroundId string Фон чата: azure, mint, steel, slate, teal, cornflower, sky, peach, frost
isSupportOpenline fields.isSupportOpenline boolean Поддержка открытых линий (только для type: "openline")
— fields.botToken string Свой токен бота вместо выданного платформой: от 32 до 40 символов из алфавита [A-Za-z0-9_-]. Значение вне этих границ отклоняется с 400 BOT_TOKEN_INVALID до вызова портала, и токен бота не меняется. Принимается только в форме с fields — плоского имени у поля нет. См. «Известные особенности»
disabled — boolean Возвращает в работу бота, отключённого платформой. Принимается только в плоской форме и только как false — имени в fields у поля нет, потому что его применяет платформа и в Битрикс24 оно не уходит. Это единственное поле, которое работает на отключённом боте: запрос отвечает до проверки BOT_DISABLED — 200 и тело {"success": true, "data": {"id": "<строковый id записи бота>", "disabled": false}} (без bot и без users). disabled: true отклоняется с 400 DISABLE_NOT_ALLOWED. См. «Известные особенности»

Примеры

curl — личный ключ

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/bots/42 \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fields": {
      "properties": { "name": "Новое имя", "color": "MINT" },
      "eventMode": "fetch"
    }
  }'

curl — OAuth-приложение

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/bots/42 \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "fields": {
      "properties": { "name": "Новое имя", "color": "MINT" },
      "eventMode": "fetch"
    }
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/bots/42', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    fields: {
      properties: { name: 'Новое имя', color: 'MINT' },
      eventMode: 'fetch',
    },
  }),
})
const { data } = await res.json()

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/bots/42', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    fields: {
      properties: { name: 'Новое имя', color: 'MINT' },
      eventMode: 'fetch',
    },
  }),
})

Поля ответа

Поле Тип Описание
data.bot object Обновлённый бот. Набор полей совпадает с ответом регистрации
data.bot.id number ID бота на портале Битрикс24
data.bot.code string Системный код бота
data.bot.type string Тип бота: bot, personal или supervisor
data.bot.eventMode string Режим доставки событий: fetch или webhook
data.users array Карточка бота как пользователя портала

Пример ответа

Показаны основные поля. Полный набор полей бота — в ответе регистрации.

JSON
{
  "success": true,
  "data": {
    "bot": {
      "id": 42,
      "code": "my_helper_bot",
      "type": "bot",
      "eventMode": "fetch",
      "isHidden": false,
      "isReactionsEnabled": true,
      "language": "ru"
    },
    "users": []
  }
}

Пример ответа при ошибке

403 — бот принадлежит другому ключу:

JSON
{
  "success": false,
  "error": {
    "code": "BOT_ACCESS_DENIED",
    "message": "This bot belongs to a different API key"
  }
}

Ошибки

HTTP Код Описание
400 INVALID_BOT_ID botId не является числом
400 BOT_TOKEN_INVALID fields.botToken короче 32 или длиннее 40 символов, содержит символы вне [A-Za-z0-9_-] либо передан не строкой. Портал не вызывается, токен бота остаётся прежним
400 DISABLE_NOT_ALLOWED В теле передан disabled: true. Отключение принадлежит системе и запросить его нельзя: чтобы убрать бота, используйте DELETE /v1/bots/:botId
404 BOT_NOT_FOUND Бот не найден
403 BOT_ACCESS_DENIED Бот принадлежит другому API-ключу
403 SCOPE_DENIED API-ключ не имеет скоупа imbot
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения — см. права доступа
410 BOT_DISABLED Бот отключён и не обрабатывает вызовы API. Исключение: плоское тело {"disabled": false} — это путь возврата бота, он обрабатывается до этой проверки и отвечает 200. Любое другое тело на отключённом боте получает эту ошибку, включая форму disabled внутри fields. Как вернуть бота — Бот отключён
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

Полный список общих ошибок API — Ошибки.

Известные особенности

Симметрия с регистрацией. PATCH принимает как плоское тело ({ name, eventMode, ... }), так и формат Битрикс24 с обёрткой fields — так же, как POST /v1/bots. Какое тело платформа считает обёрткой, а какое разворачивает сама, описано в начале страницы.

type нельзя изменить: поле type не принимается при обновлении.

Возврат отключённого бота. {"disabled": false} в плоском теле — единственный вызов API, который снимает отключение без /reauth, и единственный вызов этого эндпоинта, который отключённый бот обрабатывает: он отвечает до проверки BOT_DISABLED и Битрикс24 не вызывает:

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/bots/42 \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"disabled": false}'
JSON
{ "success": true, "data": { "id": "cm3k9x2a10001qz7f8h2b4d6e", "disabled": false } }

id в этом ответе — строковый идентификатор записи бота на платформе, а не botId из пути. В ответе нет ни bot, ни users — из Битрикс24 ничего не читалось. На уже включённом боте вызов ничего не меняет и возвращает то же тело. Форма с fields здесь не работает: {"fields": {"disabled": false}} уходит в Битрикс24 как обычное обновление, поэтому на отключённом боте отвечает 410 BOT_DISABLED, а бот остаётся отключённым. disabled: true не принимается никогда (400 DISABLE_NOT_ALLOWED) — чтобы убрать бота, используйте DELETE /v1/bots/:botId. Какой путь восстановления выбрать, описано в Бот отключён: этот вызов только снимает состояние и счётчик ошибок авторизации, а /reauth ещё и проверяет доступ.

Свой токен бота нужен, только если он уже зафиксирован на стороне вашей интеграции. Платформа выдаёт токен сама при регистрации, и это значение границы проходит по построению. Задавать своё значение имеет смысл лишь тогда, когда интеграция уже завязана на конкретный токен. Этим же значением аутентифицируются события, которые Битрикс24 присылает боту, поэтому берите случайное значение длиной от 32 символов, например 32 шестнадцатеричных символа. Осмысленные строки вроде support-bot-2026 границу не проходят.

Формат аватара. Поле avatar принимает изображение PNG или JPEG в виде base64-строки без префикса data:image/...;base64, — передавайте только сами base64-данные. Строка с префиксом data: приводит к ответу 422. Размер — до ~50 КБ: при превышении запрос завершается успешно (success: true), но аватар не сохраняется и в боте остаётся пустым. Эндпоинт принимает только JSON — загрузка файла через multipart/form-data не поддерживается (ответ 415). Передавайте значение как avatar (плоская форма) либо как fields.properties.avatar (форма с fields) — результат одинаковый.

Смотрите также