Skip to main content
The market data routes, /api/market/*, are rate limited per IP address. The limit is sized so an ordinary client never meets it. Use this page if you see a 429, or before you build something that makes many market data calls at once. The limit is a token bucket: A chart’s first load, a long scroll back through history and several panels polling quotes all fit inside the burst. If you’re being limited, you’re probably retrying in a tight loop or turning one user action into many requests.

Handle a 429

Over the limit, the answer is 429 with a Retry-After header and a retryAfterSec field in the body, both in seconds:
Wait that long, then send the same request again. Don’t retry sooner: the bucket refills at a fixed rate, so extra requests only push your own recovery back.
Trading and account routes have no bucket. They’re protected by idempotency and risk checks instead, which is the protection those routes need.