POLYMARKET CLOB · UP/DOWN MICRO-MARKETS · 1-SECOND RESOLUTION
The past order book,
recorded one second at a time.
Polymarket publishes prices and trades forever — but the order book vanishes minutes after a market closes. Polybook has recorded it continuously since March 2026: best bid/ask, resting size, provenance, zero gaps.
231 days
continuous history
158M+
recorded rows
1s
snapshot cadence
8
streams · BTC ETH SOL XRP × 5m/15m
Why the archive is scarce
Three things make this dataset hard to rebuild and easy to trust.
Unrecorded elsewhere
- Polymarket's APIs only serve the current book — past depth is simply gone.
- Gamma purges these markets within ~30 min of close; our
.meta.jsonsidecars keep condition IDs, token IDs and settlement question.
Built like infrastructure
- Sockets open 60 s before each window — no blind spots at boundaries.
- One atomic best-bid/ask pair per second, from a maintained L2 book — 0 crossed rows.
- Stale feeds flagged with
feed_age_ms, never fabricated.
Ready to query
- Month-partitioned Parquet (zstd) or plain CSV.
- One row = one second of one market: bid/ask, sizes, phase, provenance.
- DuckDB/pandas: point at the file, start backtesting.
What's in every row
| Column | Meaning |
|---|---|
ts_unix | the second this row describes (UTC) |
slug | market slug, e.g. btc-updown-5m-1793204700 |
phase | preopen (60s before window) or live |
yes_bid / yes_ask | best bid and ask on the YES token — same instant, never crossed |
yes_bid_size / yes_ask_size | resting size at those prices |
no_bid / no_ask (+sizes) | same for the NO token |
yes/no_feed_age_ms | how fresh the book was when written |
window_start/end_unix | market window bounds |
Start with the sample. It's real rows.
Three settled markets, every recorded book update, no signup.
Get the free sample →