Rate limits

The Agent API is limited per API key, based on your plan, not a single flat cap. The per-minute limit is enforced in a 60-second window, and the current cap for your key is in the X-RateLimit-* headers of every response.

Plan limits

PlanRequests / minCalls / month
Pro401,000
Ultra804,000
Max20012,000
API / white-label partner100no monthly quota (fair use)

The per-minute limit is hard (exceeding it returns 429). For the portal plans (Pro/Ultra/Max) the monthly quota is soft: once exceeded, calls keep working and the excess is billed as overage (0.50 € per 1,000 calls). We send a warning at roughly 80% and 100% of your monthly quota. Need higher limits? Upgrade to a higher plan (or ask support for a per-key increase).

Partner keys (API / white-label, volume price list) have no monthly billed call quota, they are governed by the 100 req/min rate limit and fair use. The highest portal-plan cap is 200 req/min (Max); the actual cap depends on the plan of the key's organization, per the table above. A key with no assigned plan (e.g. no org context) has a restrictive default of 20 req/min.

Headers

HeaderDescription
X-RateLimit-LimitMaximum number of requests in the window.
X-RateLimit-RemainingRemaining requests in the current window.
X-RateLimit-ResetUnix time (s) when the window resets.
Retry-AfterOn 429: how many seconds to wait.

Handling 429

When the limit is exceeded, the API returns 429 RATE_LIMITED. Respect Retry-After and use exponential backoff with jitter. Do not retry in a tight loop.

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: retries exhausted");
}
For bulk operations, spread requests out over time and use pagination (page / per_page) instead of frequent polling.