Rate limits

Как работают лимиты и как с ними жить

KodikRouter применяет несколько уровней лимитов, чтобы защитить провайдеров и вашу биллинг-квоту. По умолчанию tier Starter даёт 500 RPM на ключ.

Уровни лимитов

API-ключ60 secrate_limit_rpm ключаНастраивается при создании ключа
Ключ × модель60 secpolicy per modelИспользуется для дорогих моделей (Opus, o1)
Организация60 secorg policyСуммарный RPM по всем ключам
Кредитыper requestcredit_limit ключаДневной/месячный бюджет в рублях

Заголовки в ответе

Каждый ответ (даже 200 OK) содержит состояние текущего окна:

http
HTTP/1.1 200 OK
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1747832045
X-KodikRouter-Request-Id: sr_req_7k3m9x2p

Обработка 429

При превышении лимита возвращается 429 Too Many Requests с заголовком Retry-After (секунд до сброса). Уважайте его и добавьте джиттер.

typescript
async function callWithBackoff(fn: () => Promise<Response>) {
  for (let attempt = 0; attempt < 5; attempt++) {
    const res = await fn();
    if (res.status !== 429) return res;
    const retryAfter = Number(res.headers.get("retry-after") ?? 1);
    const jitter = Math.random() * 500;
    await new Promise((r) => setTimeout(r, retryAfter * 1000 + jitter));
  }
  throw new Error("rate limited: exhausted retries");
}

Как жить с лимитами

  • Разбивайте нагрузку по нескольким ключам (backend по регионам / клиентам).
  • Кешируйте повторяющиеся prompts на своей стороне.
  • Включайте route: "fallback" — если модель упёрлась в лимит, запрос уйдёт на следующую в цепочке.
  • Мониторьте X-RateLimit-Remaining и расставляйте приоритеты между очередями.
Нужны выше лимиты?
Enterprise-тариф даёт индивидуальные RPM и приоритетную маршрутизацию.Свяжитесь с нами.