- Cloudflare edge — per-IP limits on anonymous, unauthenticated traffic, applied before the request reaches the API.
- In-API per-key floor — a per-API-key limit of 5 requests per second by default, applied to requests authenticated with an API key. The floor is overridable per key; paid plans can raise it.
The two layers stack. The edge bounds anonymous bursts by IP; the in-API floor bounds a single API
key regardless of source IP, because the edge sees a token but cannot resolve it to a key or plan.
Only API-key (machine-to-machine) requests are subject to the per-key floor — interactive,
logged-in app sessions are not.
When you exceed the limit
The API returns429 Too Many Requests. Which layer rejected the request determines the body:
-
In-API floor (per key) — the standard error envelope, with the stable
RATE_LIMITEDcode: - Cloudflare edge (per IP) — a Cloudflare-generated payload, not the API error envelope, because the request never reaches the API server.
Response headers
A429 carries a Retry-After header — the number of seconds to wait before retrying. Honor it.
The API does not emit
X-RateLimit-Limit, X-RateLimit-Remaining, or X-RateLimit-Reset
headers. The per-key limiter runs independently on each API replica with no shared counter, so a
precise remaining-budget cannot be reported. Pace requests against your known floor and treat a
429 as the authoritative signal.Handling 429 in your client
Use exponential backoff. IfRetry-After is present, honor it instead of a fixed delay.
Best practices
- Batch where possible. Use aggregate endpoints instead of fetching individual entities to compute totals.
- Cache responses. Most reference data (taxonomy, dimensions) changes rarely — cache for the lifetime of your app’s request cycle.
- Use one API key per integration. Sharing a key across services makes the per-key floor harder to reason about — every service draws from the same budget.
- Coalesce parallel calls. If your dashboard fires 8 parallel aggregate calls per page load, that’s 8 against the floor. Fan-out is fine; storms aren’t.
Requesting a higher limit
If your workload needs sustained higher throughput (data pipelines, periodic exports, research workloads), contact your Dealroom account manager to raise your key’s floor. Include:- The use case and expected request volume (peak and sustained requests per second)
- Which endpoints will see the most traffic
- Whether the work can run off-peak