Rate Limits
Rate limits are enforced per API key and reset monthly. Choose a plan that fits your usage.
Limits by Plan
| Plan | Requests/Month | Requests/Minute | Burst Limit |
|---|---|---|---|
| Free | 50 | 10 | 20 |
| Basic | 50,000 | 30 | 60 |
| Pro | 250,000 | 100 | 200 |
| Business | 2,000,000 | 500 | 1,000 |
| Enterprise | Unlimited* | Custom | Custom |
* Enterprise plans have custom limits based on your needs. Contact sales for details.
Response Headers
Every API response includes rate limit headers to help you track your usage:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1705348800| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute for your plan |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the limit resets |
Handling Rate Limits
When you exceed your limit, you'll receive a 429 response:
{
"error": {
"type": "rate_limit_exceeded",
"message": "Rate limit exceeded. Limit resets in 42 seconds.",
"retry_after": 42
}
}Wait the specified number of seconds before retrying. Repeated violations may result in temporary bans.
Best Practices
Store frequently accessed data locally to reduce API calls. Player stats rarely change mid-match.
Subscribe to events rather than polling every few seconds. This reduces your request count dramatically.
When retrying after errors, wait progressively longer between attempts (1s, 2s, 4s, 8s, etc.).
Check your dashboard regularly to see usage patterns and upgrade before hitting limits.
Need higher limits?
Upgrade your plan or contact us for custom enterprise pricing.