Skip to main content

Current limits (public tier)

All public endpoints are rate-limited per IP address:
WindowLimit
Per minute30 requests
Per hour500 requests
Per day2,000 requests
These limits apply across all endpoints combined.

Rate limit headers

Every response includes:
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 27
X-RateLimit-Reset: 1716384000
X-RateLimit-Reset is a Unix timestamp of when your window resets.

When you hit the limit

{
  "detail": "Too many requests. Please slow down.",
  "status": 429
}

Handling 429s correctly

async function callWithRetry(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    const res = await fn();
    if (res.status !== 429) return res;
    const retryAfter = parseInt(res.headers.get('retry-after') || '60');
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  }
  throw new Error('Rate limit exceeded after retries');
}

Getting higher limits

If your production integration needs higher limits, open an issue on the GitHub repo. High-volume integrations will be accommodated on the authenticated tier when it ships.

API overview

Back to the full endpoint reference.