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: markets open in the last 7 days with a free API key, the full archive on Pro. 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.

1,124,316
markets
45.6B
order book rows
301M
trades
238M
candles
March 1, 2026
complete since

What the Polymarket dataset contains

1,124,316 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, 1,103,046 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 44.8B price changes, 831M snapshots, 301M trades, and 238M 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.

python
from datetime import datetime, timedelta, timezone from marketlens import MarketLens client = MarketLens() # pip install marketlens, free key in MARKETLENS_API_KEY end = datetime.now(timezone.utc) - timedelta(days=1) # half an hour of one series: 7 markets, about 300K rows, as Parquet on disk result = client.exports.download_series( "btc-up-or-down-5m", data_dir="data", after=end - timedelta(minutes=30), before=end, ) print(result.rows_charged, len(result.ready)) # dry_run=True quotes the cost first
python
import 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 every market open in the last 7 days with 2M data rows one time and no card, enough to sample any series before deciding; a whole series is a Pro download. 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

Five public samples from the same archive, no account needed. The GitHub one is seven complete events in the SDK's export format, backtestable offline; the others ship Parquet files for markets, snapshots, deltas, and trades.

Seven complete Polymarket events, order books and trades from first book to settlement: a day of Bitcoin 5, 15 and 60 minute markets, an MLB day, the World Cup final, UFC 330, a Counter-Strike day, three days of New York weather, a week of Apple price buckets. Backtests offline with the Marketlens SDK. 2,278 markets, 17.3M rows, Parquet plus CSV.

polymarket-btc-5m-l2-depthHugging Face · 308.8 MB

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.

polymarket-world-cup-final-2026Hugging Face · 73.8 MB

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.

polymarket-resolved-marketsHugging Face · one Parquet file

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.

python
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 markets

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 1,124,316 markets since March 1, 2026. The free tier covers markets open in the last 7 days with 2M data rows one time and 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: 45.6B order book rows, 301M trades, 238M candles across every recurring Polymarket market type.

Is there a free Polymarket dataset?

Yes. Seven complete events (a day of Bitcoin 5 minute markets, an MLB day, the World Cup final, UFC 330, Counter-Strike, New York weather, Apple) are on GitHub at marketlenstrade/polymarket-historical-data in the SDK's export format, three larger samples are 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 on Pro and Scale; a free API key reads markets open in the last 7 days.

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). The GitHub sample adds a markets.csv and a snapshots.csv to every event folder. 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 2M data rows and every market open in the last 7 days, no card required.

bash
$ pip install marketlens