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

Повторная авторизация бота

POST /v1/bots/:botId/reauth

Проверяет учётные данные бота и при необходимости обновляет токен доступа. Снимает автоматическое отключение, если доступ снова действителен. Тело запроса не требуется.

Параметры

Параметр Тип Обяз. Описание
botId number да ID бота (path-параметр)

Примеры

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/bots/42/reauth \
  -H "X-Api-Key: YOUR_API_KEY"

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

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/bots/42/reauth \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/bots/42/reauth', {
  method: 'POST',
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log(data) // { validated: true, refreshed: false }

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/bots/42/reauth', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

Поля ответа

Поле Тип Описание
data.validated boolean true, если учётные данные бота действительны
data.refreshed boolean true, если токен доступа был обновлён в ходе проверки

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

JSON
{
  "success": true,
  "data": {
    "validated": true,
    "refreshed": false
  }
}

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

410 — учётные данные недействительны и не восстанавливаются автоматически:

JSON
{
  "success": false,
  "error": {
    "code": "REAUTH_REQUIRED",
    "message": "Bot credentials are invalid. This key authorizes through a Bitrix24 inbound webhook, so there is no OAuth flow to re-run — the webhook itself is dead, most often deleted on the Bitrix24 side. Repair it from the VibeCode cabinet: an ordinary personal key is re-minted on the Keys page (the key id and string are preserved, so linked bots keep working), and an agent-owned key is repaired from the agent card, which the platform routes to POST /api/agents/:id/recover-key. This API key cannot perform either action itself — both are session-authenticated cabinet routes.",
    "details": {
      "statusCode": 401,
      "bitrixErrorCode": "INVALID_CREDENTIALS",
      "credentialKind": "webhook"
    }
  }
}

Ошибки

HTTP Код Описание
400 INVALID_BOT_ID botId не является числом
404 BOT_NOT_FOUND Бот не найден
403 BOT_ACCESS_DENIED Бот принадлежит другому API-ключу. Вернуть управление — Восстановление доступа к боту
410 REAUTH_REQUIRED Доступ недействителен и не восстанавливается автоматически. Что делать — зависит от error.details.credentialKind
403 SCOPE_DENIED API-ключ не имеет скоупа imbot
403 WRITE_BLOCKED_READONLY_KEY Ключ в режиме «только чтение»
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

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

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

Когда применять. Бот отключён со статусом BOT_DISABLED по причине AUTH_FAILURES. Проверка подтверждает доступ и снимает отключение — после успешного ответа бот снова принимает события и отправляет сообщения.

Поле refreshed. Принимает true только для ключа авторизации с истёкшим токеном доступа: проверка попутно обновляет токен. Для личного ключа refreshed всегда false.

Ответ 410 и поле credentialKind. Автоматическое восстановление невозможно, но лекарство зависит от того, чем ключ авторизуется в Битрикс24. Класс приходит в error.details.credentialKind:

credentialKind Что это значит Что делать
webhook Ключ ходит через входящий вебхук Битрикс24. Никакого потока авторизации и токена обновления у него нет — мёртв сам вебхук, чаще всего он удалён на стороне Битрикс24 Перевыпустить вебхук в кабинете Вайбкода. У обычного личного ключа это делается на странице ключей: идентификатор и строка ключа сохраняются, поэтому привязанные боты продолжают работать. Ключ агента чинится с карточки агента
oauth У ключа есть поток авторизации, но токен обновления тоже недействителен Авторизовать ключ заново через POST /v1/oauth/authorize либо пересоздать личный ключ

Оба действия выполняются в кабинете и требуют сессии — самим API-ключом их вызвать нельзя.

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