Разделы документации
Ключи и лимиты
Что ограничивает запросы к 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 ничего не списывает и не расходует лимит запросов в минуту:
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 — в журнале изменений.