Лимиты ставятся на ключ, а не на аккаунт: цикл, сорвавшийся на стенде, не должен останавливать продакшен.
| Что | Единица | Что происходит при исчерпании |
|---|---|---|
| RPM | запросов в минуту | 429, окно скользящее — слот освобождается через минуту после своего запроса |
| RPD | запросов в сутки | 429, окно тоже скользящее — сутки от самого запроса |
| Параллельные запросы | одновременных запросов по ключу | 429, пока не завершится один из начатых |
| Потолок расхода в сутки | деньги за день UTC | 402 до полуночи UTC или до поднятия потолка |
| Потолок расхода в месяц | деньги за календарный месяц | 402 до первого числа или до поднятия потолка |
Отдельно от лимитов ключу можно задать список моделей — точные идентификаторы или маску вида openai/*. Модель вне списка отвечает 403 model_not_allowed, а GET /v1/models таким ключом показывает уже урезанный каталог: выбирать из списка модель, на которую тот же ключ ответит отказом, незачем.
Все три необязательны: ключ без лимитов работает, пока хватает баланса аккаунта. Ставятся и меняются они в кабинете и действуют со следующего запроса.
Приходят в каждом ответе, включая ошибочные.
X-RateLimit-Limit-Minute: 600
X-RateLimit-Remaining-Minute: 517
X-RateLimit-Reset-Minute: 41 # секунд до освобождения слота
X-RateLimit-Limit-Day: 120000
X-RateLimit-Remaining-Day: 98314
X-RateLimit-Reset-Day: 38102
Retry-After: 41 # только при 429Читать их дешевле, чем ловить 429: при остатке ниже десяти процентов имеет смысл притормозить самому, а не упираться в стену.
GET /v1/key отдаёт лимиты ключа, израсходованное за сутки и за месяц, число запросов в работе прямо сейчас и остаток счёта. Запрос не тратит слот лимита: спрашивать свой потолок нельзя было бы, если бы сам вопрос его и расходовал.
curl https://api.zerno.one/v1/key -H "Authorization: Bearer $ZERNO_API_KEY"Порог баланса задаётся в кабинете: когда остаток опускается ниже него, на почту счёта уходит письмо, а на указанный https-адрес — POST с событием gateway.low_balance. Повторно не чаще раза в сутки, пополнение выше порога сбрасывает отметку.