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

`POST /v1/bots/:botId/reauth`

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

## Параметры

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

## Примеры

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

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

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

```bash
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 and could not be refreshed automatically — the refresh token is itself dead. Re-authorize the API key via the OAuth flow (POST /v1/oauth/authorize on an OAuth-app key, or recreate the personal key)."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_BOT_ID` | `botId` не является числом |
| 404 | `BOT_NOT_FOUND` | Бот не найден |
| 403 | `BOT_ACCESS_DENIED` | Бот принадлежит другому API-ключу. Вернуть управление — [Восстановление доступа к боту](/docs/bots/ownership-recovery) |
| 410 | `REAUTH_REQUIRED` | Доступ недействителен и не восстанавливается автоматически — ключ нужно авторизовать заново |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `imbot` |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |

Полный список общих ошибок API — [Ошибки](/docs/errors).

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

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

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

**Ответ `410`.** Когда токен обновления тоже недействителен, автоматическое восстановление невозможно — ключ нужно авторизовать заново через OAuth или пересоздать личный ключ.

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

- [Диагностика проблем](/docs/bots/troubleshooting)
- [Восстановление доступа к боту](/docs/bots/ownership-recovery)
- [Перепривязка подписки на события](/docs/bots/management/resubscribe)
- [Бот-платформа](/docs/bots)
