Rate limiting
Limits
| Metric | Value |
|---|---|
| Requests per minute | 120 per API key |
| Window | Fixed window of 60 s |
| Partitioned by | api_key_id (falling back to IP if the call isn’t authenticated) |
| Maximum body | 256 KB per request |
Response headers
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 73
X-RateLimit-Reset: 1747234560When the limit is exceeded
HTTP/1.1 429 Too Many Requests
Retry-After: 23{ "error": "Rate limit excedido." }Recommended strategy
async function withRateLimitHandling(fn, maxRetries = 5) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (err) {
if (err.response?.status === 429) {
const retryAfter = parseInt(err.response.headers['retry-after'] || '60');
await sleep(retryAfter * 1000);
continue;
}
throw err;
}
}
throw new Error('Rate limit excedido tras 5 reintentos');
}Raising the limit
If your legitimate volume exceeds 120/min, contact support. The limit can be raised for a specific key.
See also: client retries and idempotency.