## Удалить API-ключ

`DELETE /v1/keys/:id`

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

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|----------|
| `id` (path) | string | да | Идентификатор записи ключа. Список: [`GET /v1/keys`](/docs/management-keys/list) |

## Примеры

Запрос принимает только менеджмент-ключ — см. [Ограничения](/docs/management-keys#ограничения).

### curl — менеджмент-ключ

```bash
curl -X DELETE "https://vibecode.bitrix24.tech/v1/keys/6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc" \
  -H "X-Api-Key: YOUR_MANAGEMENT_KEY"
```

### JavaScript — менеджмент-ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/keys/6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc', {
  method: 'DELETE',
  headers: {
    'X-Api-Key': 'YOUR_MANAGEMENT_KEY',
  },
})

if (res.status === 204) {
  console.log('Ключ удалён')
}
```

## Ответ

При успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом. Признак успеха — код ответа, не содержимое.

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

```http
HTTP/1.1 204 No Content
```

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

404 — ключ не найден:

```json
{
  "success": false,
  "error": {
    "code": "KEY_NOT_FOUND",
    "message": "API key not found"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|----------|
| 404 | `KEY_NOT_FOUND` | Ключа с таким `id` нет, он принадлежит другому пользователю или это менеджмент-ключ |
| 409 | `KEY_HAS_ACTIVE_SERVERS` | Ключом управляются серверы. Перепривяжите их к другому ключу или удалите, затем повторите удаление. В `error.details`: `activeServerCount` — число серверов, `servers` — до 10 серверов с полями `id`, `displayName`, `name`, `status`. Поле `userMessage` — текст для человека |
| 409 | `KEY_HAS_LINKED_AGENT` | Ключом управляется агент или управляемый бот. В `error.details`: `linkedAgentCount`, `linkedBotCount` — управляемые боты и обычные чат-боты вместе, `agents` — до 10 агентов с полями `id`, `name`, `status`, `bots` — до 10 обычных чат-ботов с полями `botId` и `bitrixBotId`, `userMessage` — текст для человека. Для [`DELETE /v1/bots/:botId`](/docs/bots/management/delete) берите числовой `bitrixBotId` из соответствующего элемента `details.bots` |
| 409 | `KEY_BOT_CLEANUP_PENDING` | Обычный чат-бот этого ключа ещё не снят с портала. Ключ и бот остаются, повторите удаление позже |
| 409 | `KEY_ROTATION_RECOVERY_REQUIRED` | Ключ — источник незавершённой замены: [перевыпуск](/docs/management-keys/rotate) закончился ответом `500` или ещё выполняется |
| 409 | `KEY_ROTATION_RECOVERY_REQUIRED` | Ключ — новый ключ незавершённой замены, и на него ещё что-то ссылается. Удаляется только новый ключ без ссылок, порядок — в [Перевыпустить API-ключ](/docs/management-keys/rotate). Если отказ пришёл на таком удалении, обратитесь в поддержку |
| 409 | `KEY_REVOCATION_RECOVERY_PENDING` | Отзыв токенов доступа ключа ещё не завершён. Повторите удаление |
| 409 | `REISSUE_IN_PROGRESS` | Только ключ авторизации (`vibe_app_`): с ключом этого приложения уже идёт другая операция — перевыпуск, изменение или удаление. Повторите запрос после её завершения |
| 409 | `KEY_NOT_ACTIVE` | Ключ авторизации (`vibe_app_`) удалили или изменили после начала запроса |
| 409 | `KEY_NOT_ACTIVE` | Владелец, портал или приложение ключа сменились, пока выполнялось удаление. Перечитайте ключ через [`GET /v1/keys/:id`](/docs/management-keys/get) |
| 409 | `KEY_OPERATION_IN_PROGRESS` | С ключом уже идёт перенос или отзыв. Повторите удаление после его завершения |
| 409 | `PORTAL_ORIGIN_CUTOVER_BUSY` | У портала ключа меняется адрес. Повторите удаление позже |
| 502 | `BITRIX_UNAVAILABLE` | Не удалось удалить учётные данные ключа в Битрикс24. Ключ не удалён |
| 502 | `BITRIX_UNAVAILABLE` | Выпуск ключа не был завершён, и удаление его вебхука в Битрикс24 не подтверждено. Ключ не удалён и продолжает занимать место в лимите ключей. Повторите удаление |
| 503 | `PORTAL_ORIGIN_CUTOVER_UNAVAILABLE` | Не удалось проверить, меняется ли адрес портала ключа. Повторите удаление позже |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | Менеджмент-ключ, которым отправлен запрос, работает в режиме `READONLY` |
| 403 | `MANAGEMENT_SCOPE_REQUIRED` | У менеджмент-ключа нет скоупа `vibe:mgmt:keys` |
| 401 | `WRONG_KEY_TYPE` | Запрос отправлен ключом портала — личным `vibe_api_` или ключом авторизации `vibe_app_`. Эндпоинт принимает только менеджмент-ключ |
| 401 | `KEY_INACTIVE` | Менеджмент-ключ отозван или заблокирован |
| 401 | `KEY_EXPIRED` | Срок действия менеджмент-ключа закончился |
| 401 | `INVALID_API_KEY` | Ключ с переданным значением не найден |
| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |

Отказы `OWNER_DELETED`, `OWNER_BLOCKED` и `ACCOUNT_PENDING_ERASURE` зависят от аккаунта владельца ключа — см. [Состояние аккаунта владельца](/docs/management-keys#состояние-аккаунта-владельца).

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

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

**Ключ с обычным чат-ботом сначала отзывается.** Если ключом пользуется обычный чат-бот, удаление переводит ключ в `REVOKED` и снимает бота с портала, а запись ключа удаляет только после подтверждения. Ответ `409 KEY_BOT_CLEANUP_PENDING` значит, что ключ уже отозван и в работу сам не вернётся.

**Удаление работает и на замороженном аккаунте.** Заморозка баланса не блокирует удаление ключа, в отличие от [создания](/docs/management-keys/create), [изменения](/docs/management-keys/update) и [перевыпуска](/docs/management-keys/rotate).

**Заблокированный ключ удаляется.** Ключ в статусе `BLOCKED` удаляется так же, как остальные. Если на нём есть серверы, удаление ответит `409 KEY_HAS_ACTIVE_SERVERS` — замените такой ключ [перевыпуском](/docs/management-keys/rotate), он переносит серверы на новый ключ.

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

- [Список API-ключей портала](/docs/management-keys/list)
- [Получить API-ключ](/docs/management-keys/get)
- [Изменить API-ключ](/docs/management-keys/update)
- [Перевыпустить API-ключ](/docs/management-keys/rotate)
- [Удалить бота](/docs/bots/management/delete)
- [Менеджмент-ключи](/docs/management-keys)
