
## Удалить бота

`DELETE /v1/bots/:botId`

Удаляет бота из Битрикс24 и из базы Вайбкод. Действие необратимо.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `botId` | number | да | ID бота (path-параметр) |
| `force` (query) | boolean | нет | `true` — удалить запись из базы Вайбкод, даже если Битрикс24 отклонил отмену регистрации. По умолчанию при ошибке Битрикс24 запись сохраняется и возвращается `502 BOT_DELETE_PARTIAL` |

## Примеры

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

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

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

```bash
curl -X DELETE https://vibecode.bitrix24.tech/v1/bots/42 \
  -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', {
  method: 'DELETE',
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log(data) // { deleted: true }
```

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

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

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `data.deleted` | boolean | `true` при успешном удалении |
| `data.alreadyAbsentOnB24` | boolean | Присутствует, когда Битрикс24 уже не знал этого бота: запись удалена из базы Вайбкод, на стороне Битрикс24 чисто |
| `data.forced` | boolean | Присутствует при `?force=true`, когда Битрикс24 отклонил отмену регистрации: запись удалена из базы Вайбкод, бот остался на стороне Битрикс24 |
| `data.b24UnregisterError` | string | Присутствует вместе с `forced`. Текст ошибки Битрикс24, из-за которой отмена регистрации не удалась |

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

```json
{
  "success": true,
  "data": {
    "deleted": true
  }
}
```

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

404 — бот не найден:

```json
{
  "success": false,
  "error": {
    "code": "BOT_NOT_FOUND",
    "message": "Bot 42 not found. Register it first via POST /v1/bots."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_BOT_ID` | `botId` не является числом |
| 404 | `BOT_NOT_FOUND` | Бот не найден |
| 403 | `BOT_ACCESS_DENIED` | Бот принадлежит другому API-ключу |
| 502 | `BOT_DELETE_PARTIAL` | Битрикс24 отклонил отмену регистрации, и снятие бота подтвердить не удалось — запись в базе Вайбкод сохранена. Текст ответа отдельно сообщает, бот точно на месте или проверить не получилось. Текст ошибки — в `error.b24UnregisterError`, шестизначный код обращения в поддержку — в `error.incidentCode`. Вызывать `POST /v1/bots/:botId/reauth` можно только когда `error.details.reauthAllowed=true`; иначе сначала устраните причину отключения либо удалите запись принудительно через `?force=true` |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `imbot` |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |

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

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

**Каскадное удаление:** при удалении бота также удаляются связанные записи AI-агента или управляемого бота, если они были привязаны к этому боту.

**Необратимость:** бот удаляется и из Битрикс24, и из базы Вайбкод. Для повторного использования нужна новая регистрация через `POST /v1/bots`.

**Повторный вызов безопасен:** если Битрикс24 отвечает, что такого бота у него нет, удаление считается успешным — запись в базе Вайбкод удаляется, ответ `200` содержит `alreadyAbsentOnB24: true`. `?force=true` для этого не нужен. Так же обрабатывается случай, когда Битрикс24 отклонил отмену регистрации, но бота у себя всё-таки снял: Вайбкод дополнительно проверяет, есть ли бот на портале, и при его отсутствии тоже отвечает успехом. Если сама проверка не прошла (например, истёк токен), это не считается подтверждением — возвращается `502`.

**Частичное удаление и `?force=true`:** если Битрикс24 отклонил отмену регистрации и снятие бота подтвердить не удалось, возвращается `502 BOT_DELETE_PARTIAL`, запись в базе Вайбкод сохраняется. Повторите после `POST /v1/bots/:botId/reauth` только когда ответ содержит `error.details.reauthAllowed=true`; при `false` этот маршрут вернёт `409 BOT_REAUTH_NOT_ALLOWED`, поэтому сначала устраните причину отключения либо используйте `?force=true`. С `?force=true` запись удаляется из базы Вайбкод даже при ошибке Битрикс24, бот остаётся на стороне Битрикс24 до ручной очистки, а ответ содержит `forced: true` и `b24UnregisterError`. Исключение — если Битрикс24 ответил, что бота у него нет: тогда сироты не возникает, и ответ содержит `alreadyAbsentOnB24: true` вместо `forced`.

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

- [События](/docs/bots/events)
- [Сообщения](/docs/bots/messages)
- [Бот-платформа](/docs/bots)
