Skip to main content

Rate Limits

Rate limits are enforced per API key, on a rolling 60-second window, at a requests-per-minute (RPM) ceiling that depends on your org's plan:

PlanRequests / minuteIncluded tokens
Free101,000,000 lifetime, or 20,000/day once the lifetime pool is exhausted
Starter6015,000,000 / month
Growth300100,000,000 / month
Scale1,000Committed volume (contact sales)

Exceeding the RPM ceiling returns:

HTTP/1.1 429 Too Many Requests
Retry-After: 12

{"detail": "Rate limit exceeded: max 10 requests per 60s"}

Retry-After is in seconds — wait at least that long before retrying. A reasonable client backs off with jitter rather than retrying at the exact instant Retry-After elapses, since every client that does that at once just recreates the burst.

Free tier quota

The Free plan's token allowance is a one-time 1,000,000-token pool, plus a 20,000-token daily allowance that kicks in once the lifetime pool runs out. A request is only blocked once both are exhausted:

HTTP/1.1 402 Payment Required
{"detail": "Free tier quota exhausted for today. Upgrade to continue, or try again after midnight UTC."}

Paid plans don't hit this — overage beyond the included monthly tokens is billed per-token rather than blocked. See the dashboard billing page for current overage rates per plan.

Design your client for 429s and 402s

Both are ordinary, expected responses under load or heavy usage — not exceptional failures. Retry 429s with backoff; for 402 on the Free plan, surface an upgrade prompt rather than retrying, since retrying won't succeed until the quota resets.