Reference — limits & errors
Rate limits
The Proxy API is deliberately generous — every caller is a known, key-authenticated account whose spend is already wallet-capped, so the real protection is your key, not a tight throttle.
| Surface | Limit |
|---|---|
| Most endpoints (per key) | ~300 burst, ~3,000 / min sustained |
| Live per-IP price quotes | Tighter — they hit live capacity |
| Per IP (before auth) | A generous safety cap |
A throttled request returns 429 with a Retry-After header. In normal use you'll basically never see one.
Status codes
200 / 201Success.400Bad request — unknown product, bad quantity, or invalid targeting.401Missing or invalid API key.402insufficient_balance or key_spend_cap_reached — see Buying.403The key lacks the required scope (e.g. a scrape key on a buy route).404Not found, or not yours.429Rate limited — back off and retry after Retry-After.503Live pricing briefly busy — retry in a moment.Error shape
Errors return a JSON object with a human error message and, where useful, a machine code:
json
{
"error": "Insufficient wallet balance — top up your wallet, then retry.",
"code": "insufficient_balance"
}Errors never leak internal detail — no stack traces, no database errors, and never an upstream provider name.
Was this helpful?