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án | Požiadaviek / min | Volaní / mesiac |
|---|---|---|
| Pro | 40 | 1 000 |
| Ultra | 80 | 4 000 |
| Max | 200 | 12 000 |
| API / white‑label partner | 100 | bez 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čka | Popis |
|---|---|
X-RateLimit-Limit | Maximálny počet požiadaviek v okne. |
X-RateLimit-Remaining | Zostávajúci počet v aktuálnom okne. |
X-RateLimit-Reset | Unix čas (s), kedy sa okno resetuje. |
Retry-After | Pri 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.