Limits
Five kinds of ceiling apply to API traffic. The first to be reached denies; they're enforced independently.
Per-key cost cap
A lifetime spend ceiling set on a key at mint time — the sum of the cost of every run it makes. Once reached, that key's runs return 402 plan_limit. It caps one credential's spend, below the workspace-wide limits. See API keys → Cost cap.
Workspace inference spend
Runs draw down the workspace's included monthly inference, then its prepaid balance. When both are exhausted, runs return 402 plan_limit until you add credit or the monthly amount resets. This applies to all workspace activity, whichever credential made the run.
Request rate limits
Two windows in parallel, scoped to each API key:
| Plan | per minute | per hour |
|---|---|---|
| Free | 10 | 300 |
| Starter | 60 | 1,800 |
| Pro | 300 | 9,000 |
| Enterprise | 1,500 | 45,000 |
Both windows are checked on every authenticated request to /1.0/*. The first to be exceeded denies — 429 rate_limited with Retry-After and details.window = "minute" | "hour" indicating which window tripped.
Every response (including successful ones) carries RFC draft-7 RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset headers reflecting the tighter of the two remaining budgets, so you can pace from a single number. Limits apply per time window.
Knowledge base storage
Each plan includes a total size for everything you've added to knowledge bases — 25 MB on Free, 100 MB on Starter, 500 MB on Pro, 2 GB on Enterprise. Adding a document that would push a workspace past its plan's size returns 402 plan_limit, and the response says so. Delete documents you no longer need, or move up a plan.
Run duration
A run gets 600,000 ms (10 minutes). timeoutMs on the run request can bring that down but not up, so it's a way to make a run give up sooner. Hit the ceiling and you get 504 timeout with whatever partial timeline accumulated.