Each kind of request has its own budget: billing calls don’t use up a key’s
check budget, and sandbox and live keys are counted separately.
Headers
Every API response says where the key stands:Handling a 429
Over the limit, Ledger answers429 with { "error": "rate_limited" } and a Retry-After header in seconds. Nothing was recorded: wait that long and send the same request again. Retrying track with the same request_id is always safe. The SDKs fail open on a 429 from check or track.
Spread out bulk work, such as a backfill or a catalog script, rather than sending it all at once. If your traffic needs more than these limits, contact us.
Failed requests
Repeated401 responses from one IP address, about 30 in a row, make Ledger refuse further requests from that address for a short time. A key that has worked recently keeps working. Check your key if you see 401s.
Request size
Request bodies are limited to 1 MiB, far more than the largest catalog. A bigger body gets413 with { "error": "payload_too_large" }.