Required Headers
SendX-Api-Key on authenticated endpoints so limits are evaluated for the correct account. Send Idempotency-Key on order writes so retries are safe.
Handling Limits
When a request is rate limited, the API returns429. Per-key limits return
the JSON envelope with error code RATE_LIMITED and no Retry-After header.
A separate edge limiter, applied per source IP, returns 429 with a plain-text
body and a Retry-After header. Treat any 429 the same way regardless of
body shape: clients must have a bounded backoff policy. Use exponential backoff
with full jitter, starting near one second and capped near 30 seconds.
Signed withdrawal quote and submit calls are limited separately from, and much
more tightly than, the rest of the key’s traffic. Quote as part of a user
action, not in a polling loop, and never retry a submit in a tight loop.
Suggested Client Behavior
Cap attempts and surface persistent rate limiting to operators. Do not retry
validation, authentication, or permission failures as if they were rate limits.