Understanding API rate limits and handling rate limit errors.
Rate limits protect API performance and ensure fair usage. Limits vary by plan tier and are calculated per organization per minute.
| Plan | Requests per Minute | Burst Allowance |
|---|---|---|
| Standard | 100 | 120 |
| Professional | 250 | 300 |
| Enterprise | 500 | 600 |
| Custom | Negotiable | Negotiable |
Every API response includes headers showing your current rate limit status. Monitor these to avoid hitting limits.
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1645123456When you exceed the rate limit, the API returns 429 Too Many Requests with a Retry-After header indicating when to retry.
Implement exponential backoff when receiving 429 errors. Wait for the time specified in Retry-After header before retrying.
async function apiRequest(url, options) {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After');
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
return apiRequest(url, options); // Retry
}
return response;
}Cache responses when possible. Use batch endpoints to reduce request count. Monitor X-RateLimit-Remaining header and throttle requests proactively. Contact support for higher limits if needed.
Was this article helpful?