Going over a limit returns
429 Too Many Requests. A refused request costs no credits.
Concurrency limit
Each key can have a fixed number of requests in flight. A request that would go over it is refused straight away with429. It isn’t queued.
The simplest way to stay under the limit is a worker pool the size of your plan’s limit. Each worker sends its next request when its last one finishes.
For hundreds of URLs, a batch is easier: one request, and Prefetch manages the concurrency for you.
Per-minute limit
The Free plan allows 30 requests a minute, counted over a sliding 60-second window. Paid plans have a high safety ceiling that stops runaway loops, which ordinary traffic never reaches. Going over either one returns:Retry-After header in seconds, plus X-RateLimit-Limit and X-RateLimit-Remaining.
Requests without an API key
Requests with no API key or token are limited to 300 a minute per IP address. If one IP address sends 60 unknown API keys or invalid tokens in a minute, it’s refused with429 and a Retry-After header for the rest of that minute. Requests with a valid key never count toward either limit.
Handling 429 responses
Wait forRetry-After when it’s there, and back off exponentially when it isn’t:
Staying within limits
- Use
/enrichinstead of separate/brand,/companyand/classifycalls. It’s one request instead of three. - Cache what doesn’t change. Brand and company data is stable for days. See Caching.
- Don’t fetch the same domain twice in a short window.
- Match your plan’s concurrency. Run as many requests in parallel as your plan allows, and no more. Extra requests are refused, not queued.