Rate limits by plan
| Plan | Requests per minute | Best for |
|---|---|---|
| Free | 60 | Prototyping and personal projects |
| Pro | 600 | Production applications |
| Enterprise | 6,000 | High-frequency data pipelines |
Response headers
Every API response includes rate limit headers so you can monitor your usage in real time:| Header | Description | Example |
|---|---|---|
X-RateLimit-Limit | Your maximum requests per minute. | 600 |
X-RateLimit-Remaining | Requests remaining in the current window. | 542 |
X-RateLimit-Reset | Unix timestamp (seconds) when the window resets. | 1705500060 |
Handling 429 responses
When you exceed your rate limit, the API returns a429 Too Many Requests status:
X-RateLimit-Reset to determine when you can resume making requests.
Retry with backoff
Here is how to handle rate limiting gracefully:Checking your rate limit status
Use the dedicated endpoint to check your current rate limit without consuming meaningful quota:Best practices
Use larger page sizes
Use larger page sizes
When paginating, use
limit=200 (the maximum) to fetch more data per request. One request returning 200 items is much more efficient than four requests returning 50 each.Cache responses
Cache responses
Market data changes frequently, but event metadata and categories are relatively stable. Cache these responses to avoid unnecessary API calls.
Use filters to reduce requests
Use filters to reduce requests
Instead of fetching all markets and filtering client-side, use query parameters (
venue, status, min_volume, category) to get exactly what you need.Monitor your remaining quota
Monitor your remaining quota
Check the
X-RateLimit-Remaining header after each response. If it is getting low, slow down your request rate proactively rather than waiting for a 429.Distribute requests over time
Distribute requests over time
If you need to make many requests, spread them evenly across the minute window rather than sending them all at once.