View as Markdown

Rate limits

Per-key limits protect the platform without requiring client-side guesswork. When you hit one, the 429 tells you exactly how long to wait.


Limits

SurfaceLimitNotes
Reads1,200 req/min / keyMetrics, connections, ingest status. MCP shares this budget: switching surfaces does not double it
Writes600 req/min / keyAt 250 orders/batch, about a 150k orders/min ceiling
Collect120,000 events/min / tokenPlus 600 events/min per IP. Over-limit events are dropped, the response stays 204
Collect debug10 req/min / token?debug=1 verdicts, development only

A 1M-order history backfills in roughly seven minutes without tripping 429, if the client respects the batch size.

Day-1 implementation is an in-process per-key window (approximate under horizontal scaling). Shared-state limiting is a scaling follow-up with the same numbers.


Headers

On 429:

HeaderMeaning
Retry-AfterSeconds to wait before retrying
X-RateLimit-LimitBudget for this window
X-RateLimit-RemainingRemaining requests (zero when limited)

Client guidance

  1. Prefer batching orders (up to 250) over one-by-one.
  2. On 429, wait Retry-After then resume. Natural keys make resume-anywhere safe.
  3. Exponential backoff (2s / 4s / 8s) is fine for transport errors; for 429, prefer the server-provided delay.