Skip to main content

The problem

Polymarket’s web app shows a user their current positions and cash balance. It does not show cumulative PnL over time, cost basis, category exposure, or realized vs. unrealized breakdowns. Traders who want any of that must either export CSVs or build it themselves.

What Bravado provides

The Data API returns every field a full portfolio dashboard needs, on any Polymarket wallet:
  • GET /traders/{address}/pnl for lifetime cumulative PnL with realized and unrealized split.
  • GET /traders/{address}/positions/active for open positions with cost basis.
  • GET /traders/{address}/positions/closed for realized dispositions.
  • GET /traders/{address}/categories for exposure by category (sports, politics, crypto, etc.).
  • GET /traders/{address}/metrics for win rate, average hold time, and other summary stats.
All PnL numbers are computed under PMWAS, so cost basis is consistent across every response.

APIs used

Worked example

Assemble a portfolio snapshot for a wallet in a single function:
Four parallel Analytics calls, one snapshot. Cache aggressively per wallet; these responses are cheap to compute server-side but not free.

Product patterns

  • Self-service. User connects their wallet, sees their own dashboard. No auth beyond wallet address.
  • Multi-wallet. Watchlist of wallets. Great for portfolio managers.
  • Comparative. Two wallets side by side, useful for followers evaluating whether to copy-trade a leader.