Sign each request with a fresh HMAC signature. The cURL and HTTP header values below are placeholders, not reusable credentials. For runnable signing code, use request signing examples.
/trader-analytics/*. It is independent of the Combos API, which is the execution surface (/v2/trade/combo/*).
The base URL is https://partner-api.bravadotrade.com and every route lives under /v2/data.
Authentication
Requests are signed with a Data API credential (analytics.read scope) using the three HMAC headers. See authentication. A Trade API or WebSockets key is refused with 401.
All Endpoints
Every HTTP call costs 1 API credit, including a
400 or 404 answer. See API credits.
Identifiers
Wherever a route accepts
market=, you may pass the leg market in any of three forms: its V2 condition id (bytes31 or padded), Gamma’s 32-byte conditionId, or Gamma’s numeric market id.
Counting rule
The Combos exchange emits one fill per maker order matched plus one aggregate fill for the taker order, whose counterparty is the exchange itself. That aggregate row is one settlement. Volume, trade counts, stats and the default leaderboard count those rows only (role=taker), so a settlement matched against three market makers is counted once, not four times.
role=maker returns the other side of each settlement, role=all both. On a taker row wallet is the trader who took liquidity; on a maker row it is the market maker.
fee is charged in collateral (pUSD) on both sides and is reported as-is, for a BUY as much as for a SELL.
Numbers, times, resolution
- Money and shares are decimal strings with a fixed scale (8 places for
price, 6 for amounts). Parse them with an arbitrary-precision type, never a float. See Numeric conventions. timestampis epoch milliseconds;block_timeand every*_atfield are ISO-8601.- A combo’s
resolution/statusis one ofunresolved,win(YES paid in full),loss(a leg lost) orpartial(a leg split its payout), as known at read time. realized_pnlon a trade isnulluntil the combo resolves. It is never reported as0when unknown.- Data lags the chain by finality (about 1 to 2 minutes). Coverage starts at the launch of Polymarket Combos.
Pagination
The two list routes page with an opaquecursor: pass back the next_cursor of the previous page until it is null. limit is 1 to 200 (default 50). The leaderboard takes limit 1 to 100 (default 25) and does not page.
Errors
All errors are{ "error": "...", "code": "..." }.
See the Error reference.
Related
- Data API product overview
- Combos API to quote, buy and redeem combos
- Live Trades WebSocket for single-market fills