Developer Docs
API Rate Limits
Every API plan includes generous rate limits with burst allowance. Here's how they work and how to handle them gracefully.
Rate Limit
Requests per minute window
Daily Quota
Total requests per 24-hour period
Burst Limit
Maximum concurrent requests per second
429 Handling
Retry-After header tells you when to retry
| Plan | Rate Limit | Daily Quota | Burst | Concurrent |
|---|---|---|---|---|
| Free | 60 requests/min | 1,000/day | 10 req/sec | 5 |
| Pro | 600 requests/min | 50,000/day | 50 req/sec | 25 |
| Business | 3,000 requests/min | 500,000/day | 200 req/sec | 100 |
| Enterprise | Custom | Unlimited | Custom | Custom |
Handling Rate Limit Responses
HTTP/1.1 429 Too Many Requests
Retry-After: 30
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1706140800
// Recommended: Exponential backoff
async function fetchWithRetry(url, options, retries = 3) {
for (let i = 0; i < retries; i++) {
const res = await fetch(url, options);
if (res.status !== 429) return res;
const wait = parseInt(res.headers.get('Retry-After') || '1');
await new Promise(r => setTimeout(r, wait * 1000 * (i + 1)));
}
throw new Error('Rate limited after retries');
}