Skip to main content
The API Reference is organized by endpoint family. It lists bot-facing paths, parameters, request bodies, response schemas and WebSocket payloads. For workflow explanations and code examples, use the Developers guides.

Base URLs

Auth Labels

Sections

Pagination

Paginated REST endpoints return Pagination<T>. Endpoints that support cursor pagination also return hasMore and nextCursor. Pass the opaque nextCursor value back as the next request’s cursor; do not parse or modify it. Some newer endpoints return page-number pagination instead:

Rate Limits

Every route is rate limited unless it explicitly opts out; the health endpoints do. Limits are token buckets kept per route and per client. A verified trading API key gets its own bucket, at a higher limit than an unauthenticated caller from the same address. Sending the header is not enough — the key has to verify on a route that checks it. Requests that fail authentication consume the address’s allowance, so repeated rejected requests from one address are held near the base limit. Per-minute limits on the order routes, and what a verified key gets: Key management is per hour: creating a key is 5, deactivating one is 10. On an allowed request you get X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. On a rejected request you get 429 with X-RateLimit-Limit, X-RateLimit-Remaining: 0, Retry-After and X-RateLimit-Reset, and this body:
X-RateLimit-Reset does not carry the same quantity on both responses. On a 429 it is the seconds until one token frees up, the same value as Retry-After. On an allowed request it is the seconds until the bucket is full again. Do not read it as one number across both.
A request whose authentication guard rejects it first, with 401, 403 or 503, carries no rate-limit headers at all.

Errors

Errors use standard HTTP status codes with a JSON body when a message is available.