---
title: Управление ключами
description: Как создать и отозвать API-ключ в консоли разработчика, что получает новый ключ, где взять секрет подписи вебхуков и сколько ключей можно держать.
icon: KeySquare
---

API-ключи создаются и отзываются в [консоли разработчика](/ru/developer), вкладка **API-ключи**. Полный ключ и секрет подписи вебхуков показываются **один раз** при создании — сохраните их сразу. Как передавать ключ в запросах, описано на странице [«Аутентификация»](/ru/docs/getting-started/authentication).

## Создание ключа

<Steps>
<Step>
### Откройте консоль

Перейдите в [консоль разработчика](/ru/developer), вкладка **API-ключи**, и нажмите **Создать ключ**. Ключ выдаётся только при свежем входе: если вы вошли давно, консоль попросит подтвердить вход заново (пароль, при включённой двухфакторной защите — код).
</Step>

<Step>
### Задайте имя и среду

Имя — до 100 символов, оно помогает отличать ключи в списке и в логах. Среда — боевая (`clipia_live_…`) или тестовая (`clipia_test_…`, см. [«Тестовый режим»](/ru/docs/getting-started/sandbox)).
</Step>

<Step>
### Задайте срок и бюджет

Срок действия — **бессрочно** по умолчанию или 30, 90, 180, 365 дней. Бюджет — необязательный потолок трат ключа в кредитах: за последние сутки, 7 или 30 суток или за всё время жизни ключа. Подробнее — в [«Срок действия и бюджет»](#срок-действия-и-бюджет).
</Step>

<Step>
### Сохраните ключ и секрет

Скопируйте полный ключ и **секрет подписи вебхуков**. Секрет свой у каждого ключа, им подписываются вебхуки задач, отправленных этим ключом. Повторно ни ключ, ни секрет не показываются.
</Step>
</Steps>

Создание и ротация ключа требуют недавнего входа: если сессия старая, консоль попросит подтвердить вход и повторит действие сама. О созданном ключе и о ключе, отозванном в консоли, владелец аккаунта получает письмо — см. [«Письма владельцу»](#письма-владельцу).

<Callout type="warn" title="Потеряли ключ или секрет">
Восстановить их нельзя. Нажмите **Ротировать** у ключа: вы получите новый ключ и секрет, а старый проработает ещё 24 часа — см. [«Ротация ключа»](#ротация-ключа).
</Callout>

## Что получает ключ

| Свойство | Значение |
|----------|----------|
| Права | `generate` и `read`, выбрать нельзя — см. [«Права ключа»](/ru/docs/getting-started/authentication#scopes) |
| Лимит запросов | 120 в минуту на ключ, см. [«Лимиты»](/ru/docs/api-reference/rate-limits) |
| Параллельность | по умолчанию не ограничена |
| Срок действия | бессрочно по умолчанию; 30, 90, 180 или 365 дней на выбор |
| Бюджет | без потолка по умолчанию; кредиты за последние сутки, 7 или 30 суток или за всё время |
| Баланс | общий для всех ключей аккаунта |

На аккаунте может быть до 20 активных ключей; истёкшие и те, что истекут в ближайшие сутки, например заменённые ротацией, не считаются. При превышении создание вернёт `400` с сообщением `api_key_limit_reached`.

## Срок действия и бюджет

**Срок действия** задаётся при создании и не продлевается: по истечении запросы с ключом получают `401 invalid_api_key`, а в списке ключ помечен как **истёк**. Чтобы не прерывать интеграцию, ротируйте ключ заранее, не позже чем за сутки до конца срока, — новый получит такой же срок, отсчитанный от момента ротации.

**Бюджет** — потолок кредитов, которые ключ может потратить: за последние сутки, 7 или 30 суток (окно скользящее) или за всё время жизни ключа. Его задаёт владелец в консоли при создании ключа. Расход считается по журналу списаний и незавершённым работам этого ключа — генерациям, LLM-чату и MCP; возвращённые кредиты в него не входят.

Запуск генерации отклоняется с `402` и кодом `insufficient_quota`, если с ним расход превысит бюджет; запрос к чату — когда расход уже достиг бюджета. Одновременные запросы могут немного превысить бюджет. Чтение результата, статуса и каталога бюджет не блокирует. Отказ запуска выглядит так:

```json
{
  "error": {
    "type": "billing_error",
    "code": "insufficient_quota",
    "message": "This request does not fit the remaining API key budget for the current period."
  }
}
```

В [чате](/ru/docs/llm-gateway/chat-completions) тот же код приходит в конверте OpenAI с `type: insufficient_quota`. Траты, вышедшие из окна, бюджет освобождают; бюджет «за всё время» сам не освобождается. Бюджет ограничивает один ключ и не меняет общий баланс аккаунта: он не защищает от трат по другим ключам. У нового ключа после ротации счётчик начинается с нуля.

## Ротация ключа

Нажмите **Ротировать** у активного ключа. Консоль создаст новый ключ с теми же названием, средой, правами, лимитами и бюджетом и покажет его полный ключ и секрет подписи вебхуков — один раз, как при создании. Старый ключ продолжает работать ещё **24 часа**, затем истекает сам — отзывать его не нужно. Ключ, который истекает в ближайшие сутки, в том числе уже ротированный, ротировать нельзя: запрос вернёт `409` с кодом `api_key_rotation_unavailable`, создайте новый ключ.

Порядок без простоя: ротировать → обновить ключ и секрет в интеграции и обработчике вебхуков → убедиться, что запросы идут с нового ключа. У каждого ключа свой секрет, и вебхуки задач, отправленных старым ключом, подписаны старым. Держите в обработчике оба секрета, пока такие доставки не закончатся: повторы идут примерно 24 часа после завершения задачи.

## Письма владельцу

На email аккаунта приходят сервисные письма о событиях доступа: **создан API-ключ** (с названием и последними четырьмя символами; при ротации — какой ключ заменён), **ключ отозван** (при сбросе пароля отдельного письма об отзыве нет) и **подключено приложение** (новое OAuth-подключение, например Claude или ChatGPT). Секреты в письма не попадают. Если событие не ваше — отзовите ключ или отключите приложение в консоли и смените пароль.

## Отзыв ключа

Нажмите **Отозвать** у ключа в списке. Отзыв действует сразу, в худшем случае в течение минуты. После этого запросы с ключом получают `401 invalid_api_key`.

<Callout type="warn" title="Ключ — серверный секрет">
Не размещайте ключ в браузере, мобильных приложениях или публичных репозиториях. Если ключ утёк, сразу отзовите его и создайте новый.
</Callout>

## Использование ключа

Вкладка **Логи** консоли показывает запросы по ключам; для отказа в журнале хранится код ошибки (`invalid_request`, `not_found`), а не её текст. Сводку за 30 дней по текущему ключу возвращает [`GET /v1/account`](/ru/docs/api-reference/account), а для LLM-клиентов — [`GET /v1/key`](/ru/docs/llm-gateway/account).
