Для AI-агентов: markdown этой страницы — /docs-content/bots/management/reauth.md индекс документации — /llms.txt
Повторная авторизация бота
POST /v1/bots/:botId/reauth
Проверяет учётные данные бота и при необходимости обновляет токен доступа. Снимает автоматическое отключение, если доступ снова действителен. Тело запроса не требуется.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
botId |
number | да | ID бота (path-параметр) |
Примеры
curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/bots/42/reauth \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
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 — личный ключ
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-приложение
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, если токен доступа был обновлён в ходе проверки |
Пример ответа
{
"success": true,
"data": {
"validated": true,
"refreshed": false
}
}
Пример ответа при ошибке
410 — учётные данные недействительны и не восстанавливаются автоматически:
{
"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-ключом их вызвать нельзя.