Market and account data
| GET | /api/markets | /api/markets/{id} | ADI Sports discovery and detail |
| GET | /api/crypto/markets | /api/crypto/markets/{id}/live | /quote | Polymarket Crypto discovery, live data, and quote |
| GET | /api/trading/markets* | BTC 3m markets and protocol config |
| GET | /api/trading/markets/active | Active OPEN / LOCKED / RESOLVING windows |
| GET | /api/trading/markets/{marketId}/config | Versioned signing, asset, tick, fee and settlement policy |
| GET | /api/trading/markets/{marketId}/orderbook?outcome=UP | Atomic bids/asks snapshot, sequence and bookHash |
| POST | /api/trading/markets/orderbooks | Up to 32 market/outcome scopes |
| GET | /api/contract-products/btc-minute/markets?tenor=3m | Opening reference price for each BTC window |
| GET | /api/contract-products/btc-minute/price | Current aggregated BTC/USD spot price |
| GET | /api/contract-products/btc-minute/price/history | Thirty minutes of one-minute BTC/USD OHLC candles |
| GET | /api/trading/account/snapshot | Consistent balances, positions, open orders and account sequence |
| GET | /api/trading/account/activity | Business activity timeline |
| GET | /api/trading/account/statement | Ledger statement with running balance |
| POST | /api/trading/inventory/split | /inventory/merge | Complete-set inventory operations |
Public wallet data
Wallet-only accounts expose local sanitized positions and activity at /{wallet} and through the public APIs below. product accepts all, sports, btc-3m, or crypto; limit is at most 100. Public responses exclude balances, funding history, internal user IDs, deposit wallets, credentials, token IDs, and provider order IDs.
| GET | /{wallet} | Public wallet positions and activity page |
| GET | /api/public/profiles/{wallet}/positions | Public wallet-only positions |
| GET | /api/public/profiles/{wallet}/activity | Public wallet-only fills and settlements |
Pagination and rate limits
A list response nextCursor is opaque. When non-null, pass it unchanged to the same path with the same filters; never parse, modify, or reuse it across endpoints. Crypto market discovery uses limit + offset; endpoints that declare cursor use cursor pagination.
Code example
# cursor is opaque. Reuse nextCursor exactly; null means the last page.GET /api/public/profiles/{wallet}/activity?product=crypto&limit=50&cursor=<nextCursor>GET /api/trading/orders?limit=100&cursor=<nextCursor>Fixed application limits
| Scope | Limit | Counter subject |
|---|---|---|
| POST /api/trading/auth/challenges | 60 / minute | Per IP and owner wallet |
| POST /api/orders/manual | 60 / minute | Trading Account |
| POST /api/positions/close | 30 / minute | Trading Account |
| Funding assets / intent / status / confirmation | 60 / 40 / 90 / 90 per minute | Trading Account |
| Public positions / activity | 120 / minute | Per IP and wallet |