Rate limits and quotas
Two independent limits — per-second spacing and a monthly quota — plus the headers that let an agent stay ahead of both.
There are two independent limits. Hitting either returns 429, but they mean different things
and resolve on different timescales.
Monthly quota
Your plan's request allocation. The counter resets on your billing anchor day at 00:00 UTC — for subscribers, the day of the month you signed up or last changed plan; for free-tier users, the 1st of each calendar month.
Annual subscribers still get monthly resets: the billing period is yearly, the quota window is one month.
| Plan | Requests/mo | Overage | JS rendering |
|---|---|---|---|
| Free | 1,000 | — | No |
| Pro | 10,000 | $0.0035/req | Yes |
| Growth | 40,000 | $0.0020/req | Yes |
| Enterprise | 250,000 | $0.0012/req | Yes |
Exhausting it returns 429 rate_limit_exceeded. Free is a hard cap — no surprise charges. Pro,
Growth, and Enterprise bill overage at end of month at the rate above.
Per-second spacing
A separate limiter caps how fast requests may arrive:
| Plan | Requests/second |
|---|---|
| Free | 5/s |
| Pro | 20/s |
| Growth | 100/s |
| Enterprise | unlimited |
Exceeding it returns 429 rate_limit_too_fast. This one resolves in milliseconds — the
Retry-After-Ms header carries the precise back-off window.
Don't confuse the two 429s
rate_limit_too_fast means slow down and retry almost immediately. rate_limit_exceeded means
the month is spent — retrying will not help until the reset, which is why only that one carries
an upgrade_url. Branch on the code, not the status.
Headers
Every authenticated response includes:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Your plan's monthly ceiling |
X-RateLimit-Remaining | Requests left this period |
X-RateLimit-Reset | Seconds until the counter resets |
Read them and pace yourself rather than discovering the limit by hitting it.
Priority queue
Under load, both /bulk and /crawl jobs are processed in plan order:
Enterprise → Growth → Pro → FreeHigher tiers see lower latency under contention. There is no effect when the queue is idle.
Paying instead of subscribing
An x402 request has no monthly quota and no per-second spacing — the payment is the meter, and it runs at Enterprise priority.