Skip to content

Polymarket datasets for research

One JSON file per trader: labeled trades, resolved P&L, per-market positions, risk metrics, category performance, and report data, already computed. An export is one trader at one moment, stamped data_as_of, not a feed; it holds no order book history, and there is no bulk file of every wallet.

Sample export

213.3K+ traders · 7 sections · 5m hot sync
One file, seven sections

7 computed sections per trader, one of them the trade array. Every field arrives computed; nothing needs stitching.

trader.jsontrade[]
{
  "time": "2026-01-15T14:32:07.123Z",
  "type": "TRADE",
  "condition_id": "0x8a2fc3e1...9f02",
  "slug": "will-btc-hit-150k-by-march",
  "title": "Will BTC hit $150K by March?",
  "outcome": "Yes",
  "side": "BUY",
  "size": 2500.0,
  "usdc_size": 1050.00,
  "price": 0.42,
  "category": "Crypto"
}

What ships in the export

3 layers

What the export already contains

  • Labeled trade history with market titles, outcome context, side, sizing, and category metadata already attached.
  • Computed trader math including resolved-history P&L, cost basis, per-market profitability, risk metrics, and category performance.
  • Single-file JSON exports for trader dossiers and report datasets so analysis starts immediately instead of after cleanup.

What you do not have to build

  • No stitching BUY, SELL, MERGE, REDEEM, and SPLIT events back into a position ledger.
  • No rebuilding cost basis across partial fills, scaling, or markets that resolve without a clean redemption trail.
  • No weeks spent turning raw identifiers into fields a model, spreadsheet, or research workflow can use.

The problem

What the raw API returns

Raw Polymarket data arrives as ledger events, not rows

Polymarket's CLOB API returns raw transaction logs: condition IDs, token amounts, and block timestamps. Turning that into a trade table means writing your own indexer, stitching BUY/SELL/MERGE/REDEEM events back together, computing cost basis across partial fills, and handling splits, maker rebates, and losing positions that never get a redemption event.

Even then the numbers drift, because Polymarket's size field is share count (not USDC), endDate is unreliable, and losing shares silently disappear from the ledger.

0xinsider does that work once. You get the finished rows.

Export workflow

3 steps

From a trader page to a finished JSON file in one download.

01

Open the trader or report you care about

Start from the leaderboard, a trader profile, or any daily, weekly, or monthly report page.

02

Export one finished JSON file

Every download includes the computed fields already attached. No paginated endpoint stitching required.

03

Move straight into analysis

Load the export into Python, R, SQL, a spreadsheet, or an LLM workflow. The fields arrive computed and labeled.

Schema examples

7 sections

Inspect every field before you buy. Each tab is the export's own shape, with example values.

trades[]

Every trade with market context, outcome labels, USDC sizing, and provider-backed categories.

{
  "time": "2026-01-15T14:32:07.123Z",
  "type": "TRADE",
  "condition_id": "0x8a2fc3e1...9f02",
  "slug": "will-btc-hit-150k-by-march",
  "title": "Will BTC hit $150K by March?",
  "outcome": "Yes",
  "side": "BUY",
  "size": 2500.0,
  "usdc_size": 1050.00,
  "price": 0.42,
  "category": "Crypto"
}

Analyst-ready fields

6 computations

Every field below is already computed.

Resolved-market P&L history
Resolution-dated realized P&L, cumulative resolved totals, and same-day trade activity arrive ready for analysis. Open positions enter the series only when they resolve, so the series is not a live equity curve.
Per-market cost basis
Average entry price and profitability are already computed across partial fills, scaling, splits, and closes.
Resolved-market win rate
Win rate only counts markets with known outcomes, and losing shares are correctly zeroed instead of disappearing.
Category and timing performance
Use precomputed breakdowns by market category, holding duration, and time of day instead of building them later.
Risk and sizing metrics
Position sizing distribution, concentration, and large-bet counts, so steady sizing and one-off swings read apart.
Sync coverage
Each export carries data_as_of and its sync coverage, so freshness and completeness are stated in the file rather than guessed.

Who uses the exports

4 audiences

Quantitative researchers

Backtest copy-trading strategies, study market microstructure, or build your own signals. The resolved-history array is ready for resolution-date analysis without extra cleanup.

Data journalists and academics

Study prediction market efficiency, large trade behavior, or information flow. Every trade is timestamped and labeled with market context.

Fund managers and analysts

Due-diligence a trader before allocating capital. Full track record: win rate across categories, drawdown behavior, position sizing patterns.

ML engineers

Train models on real trader behavior. Category performance gives you pre-computed features: win rate by market category, duration, and time of day.

Researching prediction markets at a university or independent group? See /academic for research collaborations.

Raw API vs finished export

6 fields

The raw API returns transport data. The export returns analyst-ready fields.

FieldRaw API0xinsider export
Trade historyRaw hashes, token IDs, timestamps, and endpoint joinsLabeled trades with market title, outcome, side, category, and USDC sizing
P&LNot directly available as one finished datasetResolved-history P&L, cumulative resolved totals, and same-day trade activity in one export
Cost basisRebuild it yourself across fills and ledger edge casesPer-market average entry price and profitability already computed
Win rateEasy to miscount if active and resolved markets are mixedResolved-market win rate with losing shares correctly zeroed
Risk metricsNo finished sizing or concentration layerSizing distribution, large-position counts, and portfolio concentration
FormatMultiple endpoints and extra cleanup workOne JSON export that drops straight into analysis

FAQ

7 questions
What format are the datasets?
JSON. Each export is a single file containing trades, resolved-history P&L, market positions, trader profile, risk metrics, and category performance.
How fresh is the data?
We refresh a trader when someone views their profile. Each export is a point-in-time snapshot, not a feed. JSON exports carry data_as_of: the trader's latest positions snapshot, or the last completed sync.
How many traders can I export?
Exports cover the traders already in our database: 213.3K+ tracked traders, and growing. If a trader is missing, the system can import and sync them automatically.
How is P&L calculated?
Total P&L comes from Polymarket's current leaderboard totals. The exported pnl array is a resolution-dated realized-history stream, and open-position mark-to-market stays in the profile summary fields, so the array is not an equity curve.
What are the export limits?
5 exports per trader per hour and 20 in any 24 hours. Each export includes the full dataset with no pagination or partial downloads.
Can I export reports too?
Yes. Daily, weekly, and monthly reports each expose structured JSON exports alongside trader-level datasets.
Do I need Pro access?
Dataset exports require the Pro plan.

Cancel anytime · Fair use policy · View pricing

Live feed

The same data in the live feed

The live feed carries tracked large trades, suspicious-trade flags, and the moves of the Polymarket wallets you follow.

Picks and market activity

Read the published picks or follow large trades. The free feed runs 24 hours behind; Pro has no delay.