Rate Limits
How request limits work across plans.
Request rate limits
Requests are rate-limited per plan. The window is 15 seconds. If you exceed the limit, the API returns HTTP 429 and you must wait for the window to reset before retrying.
| Plan | Requests per 15 s |
|---|---|
| Free | 1 |
| Basic | 5 |
| Pro | 30 |
| Expert | 75 |
Bulk requests and construct limits
A single POST /bulk request can contain multiple constructs, up to a per-plan limit. See Bulk / Multiple Assets for the plan-by-plan construct limits and an example of the 429 response when you exceed them.
Handling 429 responses
When rate-limited, the API returns:
429 Too Many Requests
{ "error": "Rate limit exceeded. Your plan allows 30 requests per 15 seconds." }
Wait until the 15-second window expires, then retry. Do not retry immediately in a tight loop — that will keep triggering 429s.
For long-running applications, consider using WebSocket streaming, which maintains one persistent connection and pushes updates without counting per-poll requests.