API rate limits
All API endpoints are rate-limited per API key. Limits vary by plan and endpoint type.
| Plan | Read endpoints | Write endpoints | Burst |
|---|---|---|---|
| Starter | 100 req/min | 20 req/min | 2× |
| Pro | 1,000 req/min | 200 req/min | 3× |
| Enterprise | 10,000 req/min | 2,000 req/min | 5× |
Rate limit headers
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1708445612
Handling 429s
When rate limited, the API returns HTTP 429 with a Retry-After header. Implement exponential backoff with jitter.
async function callWithRetry(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try { return await fn(); }
catch (e) {
if (e.status !== 429 || i === maxRetries - 1) throw e;
await sleep(Math.pow(2, i) * 1000 + Math.random() * 100);
}
}
}