DOCUMENTATION
Polymarket BTC 5-Minute Historical Order Book Data
Independently collected historical order books for Polymarket BTC Up/Down markets, including best bid/ask quotes, depth up to 20 levels and settlement labels. Download a free CSV and Parquet sample directly; daily archives and more historical files are available free on Telegram.
Download the single-market sample · Browse recent files · Historical archive
Dataset specifications
| Property | Description |
|---|---|
| Platform and market | Polymarket BTC 5-minute Up/Down markets |
| Market period | Five minutes is the contract window length |
| Persistence | Event-triggered observations when valid best quotes change, with corresponding depth; no fixed sampling-frequency guarantee |
| Depth | Up to 20 levels per outcome and side in this sample; inspect actual available levels |
| Formats | Daily ZIP archives contain Parquet; this small sample also contains matching CSV files |
| Joins | event_slug + ts for quotes and depth; event_slug for settlement labels |
| Timestamps | This sample includes ts, exchange_ts_ms and received_ts_ms; historical versions may differ |
| Trades | No individual trade tape, order identities or queue positions in this sample |
| Reference prices | Underlying BTC feeds are listed separately, not merged into UP / DOWN books |
Measured sample quality
Market btc-updown-5m-1791471600 has a scheduled UTC window of 8 October 2026, 15:00–15:05. Its files contain 552 ticks, 42,386 depth rows and one outcome. Of the ticks, 207 are pre-open and 345 fall inside the scheduled window.
The last in-window observation was received at 15:04:25.770 UTC, before the market window ended. The largest receive-time interval between stored in-window observations is 91.498 seconds. Because persistence is triggered by quote changes, that interval alone cannot distinguish an unchanged quote from missing collection, and does not establish continuous coverage.
Manifest and source hashes · Sample quality checks and tutorial output
What this data supports
Inspect historical spreads and displayed liquidity within the stored levels, or backtest against the books under explicit execution assumptions. Buys consume asks; sells consume bids. Mid-price returns omit the spread and available-size constraints.
If you need a full book every minute, check both persistence and depth limits. This dataset stores finite-depth snapshots when best quotes change; it does not guarantee that every deeper-level-only change is saved. It cannot reconstruct all raw WebSocket messages, individual trades or the complete order queue.
The Python backtesting tutorial uses this sample to demonstrate receive-time joins, latency, walking the book and partial fills. One simulated round trip does not establish strategy profitability.
Historical files and coverage
The file directory contains verified archive records. Search the Telegram archive by UTC date or #polybtc5m for more history. Download every part of a split archive.
Actual columns, archive notes, time boundaries and gaps take precedence over general documentation. A published archive does not establish uninterrupted daily coverage, and this single sample does not establish quality across the full archive.
Collection and verification
The public GitHub collector contains BTC 5-minute collection code for the CLOB WebSocket, local books, best-quote-change persistence and depth settings. The sample manifest records SHA-256 hashes of both source daily parts. Original values and fields are preserved without interpolation.
Check the schema and price-semantics study before combining historical versions and underlying prices. Free downloads do not constitute a blanket license for every use. Record source filenames, hashes and collector versions when publishing research.
Frequently asked questions
Does five-minute data mean one sample every five minutes?
Five minutes describes the market window. Persistence is triggered by valid best-quote changes, so time between saved observations varies.
Does the sample contain full depth and trades?
It contains displayed quantities up to 20 levels per outcome and side. It does not contain an individual trade tape, a full queue or every deeper-level update.
Which timestamp should a backtest use?
Source time describes the source event. Receive time controls when information becomes available to a simulated decision. Preserve late messages and missing observations rather than making future arrivals available early.
Can I download CSV files directly?
The single-market sample ZIP includes CSV and Parquet. Check each daily archive post and its documentation for the formats it provides.