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
Pro401 000
Ultra804 000
Max20012 000
API / white‑label partner100bez mesačnej kvóty (fair‑use)

Per‑minútový limit je tvrdý (prekročenie = 429). Pri portálových plánoch (Pro/Ultra/Max) je mesačná kvóta mäkká: po jej prekročení volania pokračujú a nad rámec sa doúčtujú ako overage (0,50 € za 1 000 volaní). 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).

Partnerské kľúče (API / white‑label, objemový cenník) nemajú žiadnu mesačne účtovanú kvótu volaní, riadi ich rate limit 100 req/min a fair‑use. Najvyšší strop portálových plánov je 200 req/min (Max); 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.