Rate Limits
API rate limiting guidelines and usage tiers for optimal performance
Rate Limit Tiers
Different usage tiers with corresponding rate limits
Free Tier
$0/month
1,000
requests/day
10
requests/minute
- Basic data endpoints
- Community support
- Standard response times
Professional
$99/month
100,000
requests/day
100
requests/minute
- All data endpoints
- WebSocket access
- Priority support
- Faster response times
Enterprise
Custom
Unlimited
requests/day
Custom
requests/minute
- Custom endpoints
- Dedicated support
- SLA guarantees
- Custom integrations
Rate Limit Headers
Understanding rate limit response headers
Header
Description
Example
X-RateLimit-Limit
Maximum requests allowed per time window
1000
X-RateLimit-Remaining
Number of requests remaining in current window
999
X-RateLimit-Reset
Unix timestamp when rate limit resets
1640995200
X-RateLimit-Retry-After
Seconds to wait before retrying (when rate limited)
60
Best Practices
Tips for efficient API usage and rate limit management
Monitor Usage
- Track your API usage regularly
- Monitor rate limit headers
- Set up usage alerts
- Plan for peak usage periods
Optimize Requests
- Use appropriate request intervals
- Implement efficient caching
- Batch requests when possible
- Avoid unnecessary API calls
Handle Limits
- Implement exponential backoff
- Respect retry-after headers
- Use fallback data sources
- Graceful degradation
Error Handling
How to handle rate limit errors and responses
Rate Limit Exceeded (429)
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1640995200
X-RateLimit-Retry-After: 60
{
"error": "Rate limit exceeded",
"message": "You have exceeded the rate limit for this endpoint",
"retry_after": 60
}
Handling in Code
if (response.status === 429) {
const retryAfter = response.headers['x-rate-limit-retry-after'];
setTimeout(() => {
// Retry the request
makeRequest();
}, retryAfter * 1000);
}
Need Higher Limits?
Upgrade your plan for increased rate limits and additional features