Polymarket historical data
Polymarket Historical Data: Order Books, Prices and Downloads
Polymarket history comes from three places, and they reach back to different dates. Price history and trades can be pulled long after the fact. The order book cannot: it exists only where someone recorded it live. DepthFeed's recorded books start on 2026-01-01 and are sold by the UTC day.
The Polymarket archive, counted
Catalogue figures are read from the public file inventory; archive-wide counts from DepthFeed's own capture. Both carry their date. Inventory as of October 28, 2026; archive count as of June 21, 2026. Coverage grows daily, so every count is a floor.
298
sealed UTC days. Book snapshot files from 2026-01-01 to 2026-10-25.
112.86
GiB of books. Listed Parquet size of the book snapshot files.
~12M
rows per day. Book snapshot rows in each recent daily file (11.7–13.0 million).
450 million
snapshots measured. Deduplicated books across the archive as of June 21, 2026.
Polymarket historical data is any record of a Polymarket market after the moment has passed: its price series, its executed trades, or its resting order book. Polymarket's own APIs serve price history and trades, and settlement on Polygon makes trades publicly indexable. No official endpoint serves past order books, so historical depth comes only from continuous third-party capture.
One recorded Polymarket book
Copied from one stored BTC up/down 5-minute observation. This is a row from the archive, not an illustration.
Yes/Up token book; the No/Down side is the binary complement (down = 1 − up).: captured 10 ms after the exchange timestamp.
- bid_prices / bid_sizes
- Resting bids, best first, as parallel price and size arrays.
- ask_prices / ask_sizes
- Resting asks, best first. Walking these is how a fill's average price and slippage are computed.
- asset_id / condition_id
- Outcome token and market identifiers. Keep them as strings; numeric loaders lose precision.
- recv_ts_ms
- When DepthFeed received the book, in epoch milliseconds; the exchange timestamp is kept beside it where the venue supplies one.
Polymarket history at a glance
- Book snapshot files
- 298 sealed UTC days, 2026-01-01 to 2026-10-25
- Book archive size
- 112.86 GiB of Parquet
- Rows per recent day
- 11.7–13.0 million
- Level-change files
- 129 days from 2026-06-06, 241.79 GiB
- Polymarket US files
- 27 days from 2026-09-29, separate schema
- Markets captured
- 380,000+
- Settled outcomes referenced
- 60,307
- Price
- $40 per GiB, one-time; $5 minimum order
Pull Polymarket history for one market
Discover the market, then ask for its recorded snapshots. For whole days, buy the daily file instead of paging the API.
curl -s "https://api.depthfeed.com/v3/btc/markets?limit=5" \
-H "Authorization: Bearer df_your_key"
curl -s "https://api.depthfeed.com/v3/btc/markets/<market_id>/snapshots?include_orderbook=true&interval=1m&start_time=2026-10-20T00:00:00Z" \
-H "Authorization: Bearer df_your_key"- Omit interval for raw stored resolution.
- start_time older than your plan window returns HISTORY_LIMIT_EXCEEDED; daily files have no plan window.
- Follow the response cursor until has_more is false.
Polymarket historical data
Where each kind of Polymarket history comes from
Price history: Polymarket's own prices-history endpoint
The CLOB API returns a price time series for one outcome token, with a chosen interval and fidelity. It is free, official and the right input for charts, calibration and forecast-accuracy work. It is keyed by token ID, not by slug, and on 5-minute and 15-minute markets a coarse fidelity leaves only a few points across the market's whole life. It records what traded, not what size was resting.
Trades: the Data API and on-chain indexers
Executed fills settle on Polygon, so trade and wallet history can be rebuilt from the chain and is served by Polymarket's Data API and by public indexers. Use it for volume, flow, wallet and leaderboard research. A trade tape cannot tell you how deep the book was: a thin market and a deep one can print identical trades.
Order books: recorded live or not at all
Polymarket streams the live book over its CLOB websocket and serves the current book over REST, but it keeps no archive of past books. Once a moment passes, the ladder at that moment is gone unless something was connected and writing it down. This is the layer that decides whether a backtested fill was ever possible, and the only one DepthFeed sells.
How far back DepthFeed's Polymarket history goes
Book snapshots start on 2026-01-01 for the longest-running BTC, ETH, SOL and XRP series; 5-minute markets and the newer BNB, DOGE and HYPE cohorts start later. Price-level change files start on 2026-06-06. Polymarket US is a separate dataset with its own schema, starting 2026-09-29. The catalogue shows exactly which UTC days are sealed, so check it before assuming a continuous range.
Daily Parquet files: what one day contains
Each sealed UTC day is one Parquet file of full-depth book snapshots, sorted market first in 5,000-row groups. Recent days hold 11.7–13.0 million rows. Every row keeps asset_id and condition_id as strings, the receive timestamp, and the bid and ask price and size arrays. Level-change files record side, price and size updates in 25,000-row groups; they are book updates, not a trade tape.
REST history for bounded pulls
For a few markets or a short window, the snapshot API is cheaper than a file. Discover markets first so identifiers stay attached, then request recorded snapshots for one market with include_orderbook for the stored ladder and interval for one recorded row per bucket. Downsampling picks a real observation rather than interpolating, so a gap stays a visible gap.
What this history cannot tell you
Recorded books show what was resting, not what would have happened to your order: queue position, hidden intent and your own market impact are not in any snapshot. The archive starts where capture began, not where Polymarket began, so for markets before 2026 Polymarket's own price history and the chain are the only sources.
Pick the Polymarket days you need
The file catalogue lists every sealed UTC day with its size, row count and price before you create an account. Start with one day, load it with your own code, then widen the range.
