The Data API is about traders and settlements: wallets, PnL, positions, history and leaderboards derived from on-chain settlement (
/trader-analytics/*), and market-wide Polymarket Combos data (/v2/data/combos/*). One credential with analytics.read covers both. For realtime market data, live trades and order books, see Market Data. Older material calls this product the “Trader Data API” or “Analytics API”; it is the same endpoint.https://partner-api.bravadotrade.com/trader-analytics.
Authentication
Sign Data API requests with your partner API key, using the same HMAC scheme as the Trade API. Send these headers on every call:
Your key needs the
analytics.read scope (select the Data API product when creating the key in the Console), and your partner account needs the request’s venue enabled — see Venues below.
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset; a 429 includes Retry-After.
No credentials needed for
GET /healthz and the free tax-report surface: /traders/{address}/tax-report, /traders/{address}/tax-report/8949, and /traders/{address}/event-graph are public.Venues
Every Data API request belongs to exactly one venue, and your partner account must have that venue enabled (403 VENUE_NOT_ENABLED otherwise):
Accounting coverage
Bravado reconstructs wallet cost basis and realized PnL using a share-level FIFO engine. Open positions are marked to market. You can read public wallet analytics without a funded trading account. On Polymarket, processed wallets can also return PMWAS statements, R1 dispositions, performance metrics and R8 reconciliation certificates. A certificate reports internal accounting checks; it is not an independent audit opinion. Full statements depend on wallet processing and can return503 with available: false while unavailable.
Tax reports disclose whether they use PMWAS statements or a serving-engine FIFO fallback. The fallback does not provide the same lot lineage and cash-flow coverage as a full statement. Entity rollups aggregate mapped member wallets; they do not infer arbitrary wallet clusters.
Predict.fun supports core wallet analytics. PMWAS statements, tax reports, reconciliation and entity rollups are Polymarket-only today.
Data-only access and onboarding
You can use the Data API with ananalytics.read key and no trading permissions. Bravado can arrange evaluation access, venue enablement and the appropriate request allowance directly. Confirm commercial use and redistribution terms during onboarding.
Create an account in the Bravado Console, then open Endpoints to configure your product and API keys to manage credentials. Contact the team if your organisation needs additional venue or product access. See API credits for published request costs; exact quotas and historical coverage depend on the product and dataset.
Kalshi market data
Withanalytics.read and an explicit Kalshi data grant, a Data credential can read native Kalshi market data: current order books, catalogue metadata, public trades and native candles. It can also query captured Kalshi order-book history under /market-data/v1, with an explicit Kalshi read-only data grant. This is a separate, limited captured dataset, not Kalshi trader analytics or a live WebSocket. Discover the available generations and capture intervals before integrating.
Trader intelligence
Beyond leaderboards, use wallet profiles, open and closed positions, trade history and category performance. Polymarket top holders are available throughGET /clob-proxy/holders?market={conditionId}; this proxies venue holder data and is not a smart-money score.
For similar-wallet discovery, clusters, per-market intelligence or additional style labels, contact us to scope the analysis. These are custom development requests rather than existing general-purpose endpoints.
Key metrics
Realized PnL
FIFO-realized net profit over the full position lifecycle including trades, splits, merges and market resolutions. Fees are already inside proceeds and cost basis (the figure is never reduced by fees a second time). A gain is realized when the market resolves or the position is sold; a later redemption only collects the cash. Splits and merges are correctly excluded from volume inflation.
Unrealized PnL
Open position shares marked to the latest CLOB midpoint prices. Updates in real time as market prices move.
Volume
USDC notional traded, filtered to exclude CTF split, merge, and redeem transactions. This gives you true trading volume, not inflated on-chain throughput.
Win rate
Closed-position stats at the outcome level, a position is a “win” if it closed with positive realized PnL. Calculated independently of position size.
The window parameter
Analytics endpoints that document window accept a ?window= query parameter that controls the rolling lookback period for returned metrics.
What the window affects: PnL, volume, and trade counts use daily or hourly rollups that respect the window boundary. Windowed queries are fast because they aggregate pre-computed buckets.
What the window does not affect: Fee totals, streak metadata, and drawdown statistics are always computed all-time regardless of the
window value. This is by design, these metrics are meaningless when truncated to a short window.
Wallet addresses are matched case-insensitively, and the
0x prefix is optional — a bare 40-hex address, as returned in leaderboard rows, is accepted and treated identically.Leaderboards
Bravado maintains two live leaderboards ranked by thewindow you specify:
- PnL leaderboard
- Volume leaderboard
Returns traders ranked over the selected window. The ranking runs in the database over the complete candidate set on the served column, with a deterministic tie-break, so pages never overlap. Default ranking is
total_pnl for window=all and realized_pnl (what was realized inside the window) for windowed boards.The response carries
total (size of the candidate set after min_trades and the bot filter; null only if it could not be counted), has_more (offset + rows < total), and echoes the resolved sort and order.It also carries a totals object — a board-wide aggregate over that same candidate set, for a stat-strip header rather than for paging:traders always equals total. profitable_traders/unprofitable_traders classify by the sign of total_pnl (realized + current open mark-to-market) — the one figure defined the same way on every window. totals is null only if it could not be computed; it never adds latency, since it’s computed alongside the ranked page rather than after it.Trader profile
The trader endpoints return comprehensive performance data for a single wallet across all markets.
Additional per-wallet endpoints:
Combos data
The same Data API credential also serves market-wide data on Polymarket Combos (multi-leg parlays): every combo settlement on the venue, each combo’s legs mapped to its underlying markets, aggregate stats and a combo trader leaderboard, plus a live settlement stream. These routes live under/v2/data/combos on the same host and cost 1 credit per request like the rest of the product.
See the Combos Data API reference. To quote and buy combos, use the Combos API instead.
Perps data
The same Data API credential also serves read-only market data for Polymarket Perps (perpetual futures): funding history and cross-venue funding comparison, open-interest and mark-versus-index basis rollups, long/short account skew and detected liquidations. These routes live under/perps on the same host and cost 1 credit per successful response like the rest of the product. This is market data, not execution — to trade perps, use the Polymarket Perps Trade API instead.
See the Perps Data overview.
UMA resolution
The same Data API credential also serves UMA resolution data — how Polymarket markets settle through UMA’s Optimistic Oracle (proposals, disputes and final settlement outcomes). These routes live under/uma on the same host and cost 1 credit per successful response like the rest of the product. They come in two surfaces:
The live push stream (
/uma/ws) is a separate Market Data surface on the stream.read credential. See the UMA overview.
Tax statements
Bravado generates formal accounting documents for tax reporting and financial reconciliation. Each statement type covers a specific aspect of wallet activity.Dispositions (Form 8949-style)
Dispositions (Form 8949-style)
Lists every disposition as a row with disposal date, proceeds, cost basis and gain/loss, formatted to mirror IRS Form 8949 for US taxpayers. For wallets in the PMWAS batch each row also carries the acquisition date and the holding-period term (
SHORT for positions held ≤ 365 days, LONG for positions held > 365 days). For every other wallet the trading engine records no acquisition date per lot, so date_acquired and term are UNKNOWN (never guessed) and the response says so under disclosure; a combo row whose acquisition date is not recorded is UNKNOWN too. A redemption of a position that already resolved is a cash event, not a disposition: it is reported per year as redemption_cash. The row count is total_rows (X-Total-Rows on the CSV); pages never stand for the whole period.Income
Income
Itemizes non-trade income received by the wallet: liquidity rewards, maker rebates and other program rewards, with count and fair-market value per kind. For wallets in the PMWAS batch this is attributed to tax years; for every other wallet only the all-time total (
income_all_time) is available, per-year income is null (listed in not_computed) and is not included in net_taxable_uusdc.Open positions
Open positions
A point-in-time snapshot of all open positions, share balances, cost bases, mark prices, and unrealized PnL. Useful for year-end Schedule D footnotes.
Capital flows
Capital flows
A chronological log of deposits into and withdrawals from the wallet. Distinguishes between USDC.e and pUSD flows.
Performance metrics
Performance metrics
Quantitative performance summary:
Reconciliation certificate
Reconciliation certificate
A machine-readable report of internal reconciliation checks for the processed statement. Read the individual check results and coverage disclosures; the certificate is not a guarantee of complete source history or an independent audit.