К содержимому
Разделы документации

Ключи и лимиты

Что ограничивает запросы к Konductor: статус ключа, баланс, лимиты ключа, участника и компании, запросы в минуту.

Запрос проходит, когда ключ активен, денег хватает на резерв и не исчерпан ни один лимит. Ниже — что ограничивает запросы и что в этом случае получит твой код.

Ключ

Ключи компании выпускают владелец и администратор, участник — свои личные ключи, если владелец или администратор это разрешил в разделе «Команда». У бухгалтера ключей нет.

Ключ целиком показывается один раз, при выпуске. Konductor хранит только его хэш и первые 12 символов, поэтому вернуть ключ не сможет: потерял — выпусти новый, а старый отзови.

Из кода ключ выпускает POST /v1/admin/keys с ключом компании в Authorization: Bearer. В теле — name, по желанию limitKop (копейки, целое число больше нуля) вместе с limitWindow (day, week или month), expiresAt и allowedModels. Ключ без лимита выпускай без limitKop и limitWindow: limitWindow: none не принимается. Секрет придёт один раз в поле secret. Отозвать ключ — POST /v1/admin/keys/{id}/revoke. Поля — в OpenAPI.

Ключ идёт в заголовке Authorization: Bearer $KONDUCTOR_KEY. Для /v1/messages и /v1/key подойдёт и заголовок x-api-key.

СтатусЧто с запросами
АктивенПроходят, если хватает денег и лимитов
На паузе403 key_paused; в тексте ошибки — кто поставил паузу: Konductor из-за нехватки денег на балансе или владелец с администратором в панели. Снять паузу можно, когда баланс компании больше нуля
Заблокирован403 key_blocked
Компания заблокирована или закрыта403 company_blocked у всех ключей компании: напиши в поддержку
Отозван401 invalid_api_key: ключ больше не принимается
Срок истёк401 key_expired. Срок задаёт владелец или администратор при выпуске ключа компании; без срока ключ бессрочный

Новый статус начинает действовать не позже чем через 5 секунд.

Если запрос по факту стоил больше, чем осталось на балансе, разницу Konductor списывает за свой счёт: баланс становится 0, а ключ встаёт на паузу до пополнения. Паузу в панели владелец или администратор ставят и снимают сами, баланс тут ни при чём.

Лимиты

ОграничениеПериодЧто при упореГде поднять
Баланс компании—402 insufficient_balanceПополни баланс
Лимит ключа в рубляхдень, неделя или месяц; без лимита период не нужен402 key_limit_exceededВ карточке ключа
Месячный потолок участника — на все его личные ключимесяц402 member_limit_exceededПопроси владельца или администратора компании
Лимит компании в рубляхмесяц или без периода402 company_limit_exceededНапиши в поддержку
Запросов в минуту — у ключа и у компании, если оператор задалминута429 rate_limit_exceededПодожди столько секунд, сколько в Retry-After; поднять лимит — напиши в поддержку

Периоды считаются по Москве: день — с 00:00, неделя — с понедельника 00:00, месяц — с 1-го числа. Когда период начнётся заново, написано в поле reset_at ответа.

Денежные лимиты проверяются по порядку: ключ, участник, компания. Ответ называет первый исчерпанный в поле limit_scope. Потолок участника 0 — запросы его личными ключами не проходят.

По умолчанию частота не ограничена, и rpm_limit в /v1/key равен null. Лимит у ключа и у компании задаёт оператор по запросу в поддержку.

Запросы в минуту считаются вместе для /v1/chat/completions, /v1/messages, /v1/responses и /v1/models, включая отклонённые с 400 и 402. Минута отсчитывается с её начала, поэтому на стыке двух минут может пройти вдвое больше запросов, чем rpm_limit.

Как считается расход

Перед запросом Konductor резервирует деньги: оценка входа по цене входа плюс max_tokens по цене выхода. После ответа списывается фактическая цена, остаток резерва возвращается.

Расход периода — списания за этот период плюс резервы запросов, которые ещё идут, и резервы запросов с неизвестным исходом. Поэтому лимит может закончиться раньше, чем показывают списания: часть его держат запросы в обработке.

Как узнать остаток

Запрос к /v1/key ничего не списывает и не расходует лимит запросов в минуту:

bash
curl https://llm.kodzavod.ru/v1/key \
  -H "Authorization: Bearer $KONDUCTOR_KEY"

В ответе — статус ключа, его лимит в рублях и период (limit_kop, limit_window), расход и остаток (spent_kop, in_flight_kop, limit_remaining_kop), начало нового периода (reset_at) и лимит запросов в минуту (rpm_limit). В поле member — месячный потолок участника (только у личного ключа). Поле company по умолчанию null: баланс и лимит компании ключу не показываются. Суммы — копейки, строкой.

Тела ответов с отказом — в разделе «Ошибки».

Эта страница в Markdown для ИИ-ассистентов — keys.md. Для генераторов SDK — openapi.json. Изменения API — в журнале изменений.