Rate limity

Agent API je limitované per API kľúč podľa vášho plánu — nie jedným plošným stropom. Per‑minútový limit sa vynucuje v 60‑s okne a aktuálny strop pre váš kľúč nájdete v hlavičkách X-RateLimit-* každej odpovede.

Limity podľa plánu

PlánPožiadaviek / minVolaní / mesiac
Pro20500
Ultra402 500
Ultra+10010 000

Per‑minútový limit je tvrdý (prekročenie = 429). Mesačná kvóta je mäkká — po jej prekročení volania pokračujú a nad rámec sa doúčtujú ako overage. Pri približne 80 % a 100 % mesačnej kvóty vám pošleme upozornenie. Potrebujete vyššie limity? Prejdite na vyšší plán (alebo si vyžiadajte per‑kľúčové navýšenie u podpory).

Hodnota „Maximum 100 požiadaviek za minútu" v OpenAPI popise je iba najvyšší strop naprieč plánmi (Ultra+), nie plošný limit pre všetky kľúče. Reálny strop závisí od plánu organizácie kľúča podľa tabuľky vyššie. Kľúč bez priradeného plánu (napr. bez org kontextu) má reštriktívny default 20 req/min.

Hlavičky

HlavičkaPopis
X-RateLimit-LimitMaximálny počet požiadaviek v okne.
X-RateLimit-RemainingZostávajúci počet v aktuálnom okne.
X-RateLimit-ResetUnix čas (s), kedy sa okno resetuje.
Retry-AfterPri 429: počet sekúnd, koľko počkať.

Riešenie 429

Pri prekročení limitu API vráti 429 RATE_LIMITED. Rešpektujte Retry-After a použite exponenciálny backoff s jitterom. Neopakujte v tesnej slučke.

async function callWithRetry(fn, max = 5) {
  for (let attempt = 0; attempt < max; attempt++) {
    const res = await fn();
    if (res.status !== 429) return res;
    const retryAfter = Number(res.headers.get("Retry-After") ?? 1);
    const backoff = retryAfter * 1000 + Math.random() * 250;
    await new Promise((r) => setTimeout(r, backoff));
  }
  throw new Error("Rate limit: vyčerpané pokusy");
}
Pre dávkové operácie rozložte požiadavky v čase a využite stránkovanie (page / per_page) namiesto častého pollingu.