Plans, usage, and limits.
Every plan includes the entire model catalog behind one key. Plans differ on two published axes only: how much usage is included each month, and how fast you can push requests.
Included usage
Each plan carries a monthly pool of included usage, measured in dollars at public list rates. Every request is valued at the model's public per-million-token prices — the ones printed on each model page— and drawn from the pool. One meter, every model, no per-model gates. Repeated context draws less: cached input counts at 10% of the model's input list rate — see Prompt caching.
| Plan | Price / mo | Included usage / mo |
|---|---|---|
| Free | $0 | $5 |
| Starter | $5 | $200 |
| Pro | $19 | $600 |
| Max | $49 | $3,000 |
| Enterprise | Custom | Custom |
The pool refreshes at the start of each monthly cycle. When a month's pool runs low, sessions are never interrupted — the heaviest models pace to your plan while everything else keeps full speed. Upgrading takes effect immediately.
Track your month in the dashboard under /dashboard/usage — it shows the same meter the API enforces.
Rate limits
Two published limits per plan: sustained requests per minute and concurrent requests (simultaneous in-flight calls, the axis that matters for parallel agent fleets).
| Plan | Requests / min | Concurrent requests |
|---|---|---|
| Free | 30 | 2 |
| Starter | 300 | 10 |
| Pro | 1,000 | 40 |
| Max | 3,000 | 100 |
| Enterprise | 10,000+ | 250+ |
Hitting a limit: 429 + retry-after
Past a limit, the API returns 429 with a retry-after header — the number of seconds to wait before retrying. The same status covers both cases:
- Rate limit— you sent requests faster than your plan's per-minute rate or held too many open at once.
retry-afteris typically a few seconds. - Monthly cap — an account ceiling for the month was reached.
retry-afterpoints at the next monthly cycle; upgrading clears it immediately.
HTTP/1.1 429 Too Many Requests
retry-after: 12
{ "error": { "type": "rate_limit_error", "message": "..." } }Honor retry-after exactly and add exponential backoff with jitter for repeated hits — the full recipe is on Errors. Current-window state is also reported on every response via the x-ratelimit-* headers — see Headers.
Need more?
Enterprise plans carry custom usage pools, higher limits (10,000+ requests/min, 250+ concurrent), and procurement-friendly billing.