Data
Polymarket dataset
The Marketlens Polymarket dataset is the recorded history of every Polymarket market since March 1, 2026: order books, trades, candles, and outcomes, downloadable by series as Parquet with a free API key. Name a series and a window and the export writes it to disk; free samples on Hugging Face and Kaggle let you check the format first.
What the Polymarket dataset contains
903,238 markets across every recurring Polymarket market type (crypto up or down from 5 minutes to daily, sports per game, weather, esports, macro, equities) and standalone events since August 15, 2026, 883,443 of them resolved with the outcome stored. Per market: full order book snapshots about every 60 seconds with every price change between them at millisecond resolution, every executed trade with price, size, and side, and OHLCV candles from 1 second to 1 day. In total 37.2B price changes, 660M snapshots, 280M trades, and 207M candles.
Download any series as a dataset
One call per series and window. The export writes one compact Parquet file per market, holding that market's snapshots, price changes, and trades as rows tagged by event_type, plus the Binance reference series for crypto. Files are charged in rows once; downloading the same file again is free, and dry_run=True quotes the cost before anything is fetched.
from marketlens import MarketLens
client = MarketLens() # pip install marketlens, free key in MARKETLENS_API_KEY
# one day of one series: 287 markets, about 6.4M rows, as Parquet on disk
result = client.exports.download_series(
"btc-up-or-down-5m", data_dir="data",
after="2026-09-10T00:00:00Z", before="2026-09-11T00:00:00Z",
)
print(result.rows_charged, len(result.ready)) # dry_run=True quotes the cost firstimport pandas as pd, glob
# one compact file per market: snapshot, delta, and trade rows tagged by event_type
frames = [pd.read_parquet(f) for f in glob.glob("data/history-*-compact.parquet")]
day = pd.concat(frames)
trades = day[day.event_type == "trade"]
print(len(day), "rows,", len(trades), "trades")The free tier covers 25 million rows per day with no card, so a day of the busiest series or weeks of a quiet one fits in one day's budget. Every series with its market count, volume, and dates is in the data catalog; the file format is documented under exports.
Dataset schema
A snapshot row is the full book: every bid and ask level with size, the exchange timestamp, and a reconnection flag. A price change row is one level moving: timestamp, price, side, new size, applied to the snapshot before it, so the book at any tick rebuilds exactly. A trade row is price, size, side, timestamp, and trade id. A market row is the question, outcomes with their token ids, open, close, and resolution times, the winning outcome, and the span the market was live in the archive. Timestamps are epoch milliseconds, prices are probabilities between 0 and 1, sizes are shares. CSV, when needed, is pd.read_parquet(f).to_csv(...); the CSV export page has the recipe.
Free sample datasets
Four public samples cut from the same archive, no account needed, sized for a notebook. Each ships as Parquet files for markets, snapshots, deltas, and trades.
One full UTC day (June 15, 2026) of BTC Up or Down 5 minute markets: every L2 snapshot, every price change, every trade. 288 markets, 3,889 snapshots, 41.6M price changes, 681K trades.
The 2026 World Cup final (Spain vs Argentina, July 19, 2026): order books and trades for every market on the match. 323 markets across 8 event groups.
Every resolved Polymarket market in the archive with its question, outcomes, volume, dates, and winning outcome. 635K rows.
BTC Up or Down 5 minute limit order book sample for notebooks on Kaggle. L2 depth at tick level.
import pandas as pd # pip install pandas pyarrow huggingface_hub
base = "hf://datasets/marketlens/polymarket-btc-5m-l2-depth/"
trades = pd.read_parquet(base + "trades.parquet") # 680,994 rows, no account
markets = pd.read_parquet(base + "markets.parquet") # 288 marketsFAQ
Polymarket dataset questions
Where can I download a Polymarket dataset?
From the Marketlens archive, by series: exports.download_series(slug, after, before) writes every order book, price change, and trade of a series over a window as Parquet, for any of 903,238 markets since March 1, 2026. The free tier covers 25 million rows per day with no card; one day of BTC 5 minute markets is 287 markets and about 6.4 million rows.
What does the Polymarket dataset contain?
Order books (full snapshots about every 60 seconds plus every price change between them at millisecond resolution), every executed trade, OHLCV candles from 1 second to 1 day, and market metadata with the winning outcome once resolved: 37.9B order book rows, 280M trades, 207M candles across every recurring Polymarket market type.
Is there a free Polymarket dataset?
Yes. Three samples are public on Hugging Face (a full day of BTC 5 minute order books, the 2026 World Cup final, every resolved market) and one on Kaggle, no account needed. The full archive is behind a free API key with 25 million rows per day.
Is the dataset available as CSV?
The files are Parquet, which loads in pandas, Polars, DuckDB, and R directly; pandas converts any of them to CSV in one line (read_parquet then to_csv). See marketlens.trade/polymarket-csv-export.
Try it
Download the series you need
Every book, trade, and candle since March 2026 as Parquet. The free tier includes 25M rows per day with full archive access, no card required.
$ pip install marketlens