Rate limits
Limits protect the venues behind the router and keep free keys free. Over the limit means blocked, never billed: there is no overage charge, ever.
The limits
| path | limit | window |
|---|---|---|
| Keyless (per IP, shared) | 60 requests | fixed 1 minute |
| Keyless fresh quotes (per IP, cache misses only) | 12 aggregations | fixed 1 minute |
| Keyed (per key, default) | 600 requests | fixed 1 minute |
Higher keyed limits exist for partners; email info@cayvox.com.
Headers
Keyed responses carry the current window's state:
x-ratelimit-limit: 600
x-ratelimit-remaining: 599 Captured from production 2026-07-03 with a temporary key.
On 429 you also get Retry-After: the seconds until the next
minute window opens. A real capture is on the
errors page.
Approximate under concurrency, honestly
The counters are fixed one-minute windows on distributed storage. Under concurrent bursts the count is approximate: a short burst may briefly exceed the nominal number before the limiter catches up, and the boundary between two windows admits up to two windows' worth in a short span. Treat the limit as an operating envelope, not a precise contract. What IS precise: over the limit blocks with 429 and is never billed.
Client guidance
-
Respect
Retry-After; do not tight-loop on 429. - Quotes are edge-cached about 10 seconds per parameter combination, so polling faster than that returns the same numbers anyway. Only a cache MISS (a fresh parameter combination) spends the keyless fresh-quote budget; repeating recent combinations never does.
- One key per product. Sharing a key across products makes one product's burst the other's 429.