Polymarket academic research data
Polymarket dataset for academic research: citable L2 order books
A Polymarket dataset built to be cited: 897,192 L2 order book snapshots at 1-second resolution across 805 resolved markets, published under CC BY 4.0 with a DOI. Free to download, free to redistribute, and valid in a data availability statement.
Dataset record verified 2026-08-25.
Start here
Citation
Dataset
PolyOrderbooks. (2026). Polymarket Crypto Up/Down Order Books: 1-Second L2 Depth Across Three Contract Lengths [Dataset]. Zenodo. https://doi.org/10.5281/zenodo.22084114
That is the concept DOI and always resolves to the newest version. Each version also receives its own DOI — cite that one where a result must be reproducible against exact data.
The record is on Zenodo, registered with DataCite, and hosted independently of this site. Download needs no account.
Resolution, and what it decides
| Resolution | 1 second | The axis that decides whether execution questions are answerable at all. Minute-resolution depth gives five observations of a five-minute contract. |
|---|---|---|
| Order book snapshots | 781 million | Full L2 ladders, not top-of-book. Every price level with its resting size. |
| Markets catalogued | 815,000 | Polymarket crypto: up/down at 5m, 15m and 4h, price thresholds, and related event markets. |
| Scope | Crypto only | We do not cover politics or sports. Depth on a narrow category, captured properly, rather than breadth at coarse resolution. |
Row counts are the wrong comparison. Depth recorded once a minute cannot answer what an order would have cost, how long size rested, or how liquidity moved through the final seconds before settlement — a minute is longer than the phenomenon. Volume follows from resolution and coverage; it is not independent evidence of usefulness.
We cover crypto only, and say so. A narrower category captured at 1-second resolution with reconciliation running is more use for microstructure work than every category at minute granularity.
What makes a dataset citable
Several providers hold historical Polymarket order book data. Very little of it can go in a paper, because appearing in a data availability statement requires more than access:
| Requirement | Met | How |
|---|---|---|
| Persistent identifier | Yes | DOI 10.5281/zenodo.22084114, registered with DataCite. Resolves permanently, independent of this site. |
| Licence permitting redistribution | Yes | CC BY 4.0. Share, modify and use commercially, with attribution. No clickthrough agreement and no signup. |
| Immutable versions | Yes | Each Zenodo version is frozen and separately citable, so a result can be pinned to exact data. The concept DOI always resolves to the newest. |
| Independent hosting | Yes | Held by Zenodo, operated by CERN, with long-term preservation. It remains available if this company does not. |
| Documented provenance | Yes | Capture method, reconcile interval, and known limitations are stated in the dataset record and in an accompanying working paper. |
| Verifiable quality | Yes | Every row carries a crossed flag, so the internal consistency rate can be measured rather than taken on trust. |
The last row matters more than it looks. Publishing a defect flag rather than filtering the affected rows means the internal consistency rate is measurable by a reader instead of asserted by us — which is the difference between a dataset a reviewer accepts and one they question.
What is in it
| File | Snapshots | Markets | Contract |
|---|---|---|---|
updown_5m.parquet | 167,941 | 471 | Five-minute contracts |
updown_15m.parquet | 239,310 | 265 | Fifteen-minute contracts |
updown_4h.parquet | 489,941 | 69 | Four-hour contracts |
Each row is one outcome token at one second: the full bid and ask ladders as typed list columns, the derived top of book, seconds to settlement, and the winning outcome. Parquet with zstd, 43 MB in total, and it loads in pandas, Polars or DuckDB without a parsing step.
import pandas as pd
df = pd.read_parquet("updown_5m.parquet")
(df.best_bid >= df.best_ask).mean() # internal consistency rate
df[df.seconds_to_close <= 60].crossed.mean() # and near settlementWhat it supports
- Execution cost and slippage
Full ladders mean an order can be filled level by level against real resting size. Midpoint series cannot answer what a trade would have cost.
- Liquidity around resolution
Three contract lengths over the same window let you separate the effect of time-to-settlement from the effect of contract design.
- Price discovery and calibration
Every market is resolved with the winning outcome attached, so forecast accuracy can be scored directly without joining an external source.
- Data quality methodology
The crossed flag supports work on order book data integrity itself — a rate that can be computed on any archive and used as a diagnostic.
Accompanying working paper
Depth has to be captured while a market trades; it cannot be reconstructed afterwards from an archived event stream. The reason is structural rather than a question of implementation care: Polymarket's feed is unsequenced, so a dropped message leaves no gap to detect, and a replay of a closed market has no full book to re-read against.
We tested this by replaying a public archive against its own periodic snapshots — a design that needs no external reference, since the source grades its own homework. The measurement is written up here, and a formal note with the analysis code is in preparation.
FAQ
Is there a citable Polymarket order book dataset?
Yes. 897,192 order book snapshots at 1-second resolution across 805 resolved Polymarket crypto markets are published on Zenodo under CC BY 4.0 with DOI 10.5281/zenodo.22084114. It is registered with DataCite, so it resolves permanently and can appear in a data availability statement.
How do I cite the dataset?
PolyOrderbooks. (2026). Polymarket Crypto Up/Down Order Books: 1-Second L2 Depth Across Three Contract Lengths [Dataset]. Zenodo. https://doi.org/10.5281/zenodo.22084114. Use the concept DOI for general reference; each version also has its own DOI for pinning exact data.
Can I use the data in a commercial or funded project?
Yes. CC BY 4.0 permits commercial use, modification and redistribution, and requires only attribution. There is no separate licence agreement, no signup, and no restriction on funded or contract research.
Does Polymarket provide historical order book data for research?
No. Polymarket serves price history down to 1-minute buckets and resolved market metadata, both free, but archives no order book depth. Its /book endpoint returns current state only, so historical depth exists only where a third party captured it while markets traded.
How do I know the data is accurate?
Every row carries a crossed flag, marking snapshots where the best bid was at or above the best ask — a state that cannot exist in a matching book and therefore indicates momentary staleness. Publishing the flag rather than removing those rows lets you measure the internal consistency rate yourself. On 5-minute markets it is around 3%, median duration 2 seconds.
What should I know before analysing the data?
Binary markets go one-sided as they resolve: in the final minute of a 5-minute contract, 76% of snapshots have an empty bid or ask side because nobody offers the losing outcome. This is genuine market behaviour and will break code that assumes two-sided books. Contract length matters too — 4-hour books are one-sided 0.5% of the time versus 17% for 5-minute ones.
Can I get a larger sample for a specific study?
The published dataset is a slice of a much larger archive — over 781 million order book snapshots across 815,000 markets. Researchers needing a different window, different markets or a longer history can query it through the API, and there is a free tier at the same 1-second resolution.