Rate limits
Limits are applied per API key, per minute, and depend on your plan.
| Plan | Requests / minute |
|---|---|
| Pay-as-you-go (no subscription) | 60 |
| Starter | 60 |
| Growth | 120 |
| Scale | 240 |
Headers
Every response includes your current window:
x-ratelimit-limitrequests allowed per minutex-ratelimit-remainingrequests left in this windowx-ratelimit-resetseconds until the window resets
When you exceed it
You receive 429 rate_limited with a retry-after header. Rate-limited requests are not charged. Back off for the number of seconds given, ideally with jitter:
async function call(url, key, tries = 4) {
for (let i = 0; i < tries; i++) {
const res = await fetch(url, { headers: { "x-api-key": key } });
if (res.status !== 429) return res;
const wait = Number(res.headers.get("retry-after") ?? 1) * 1000;
await new Promise((r) => setTimeout(r, wait + Math.random() * 250));
}
throw new Error("Rate limited");
}Need higher limits? Talk to us.