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.json sidecars 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

ColumnMeaning
ts_unixthe second this row describes (UTC)
slugmarket slug, e.g. btc-updown-5m-1793204700
phasepreopen (60s before window) or live
yes_bid / yes_askbest bid and ask on the YES token — same instant, never crossed
yes_bid_size / yes_ask_sizeresting size at those prices
no_bid / no_ask (+sizes)same for the NO token
yes/no_feed_age_mshow fresh the book was when written
window_start/end_unixmarket window bounds

Start with the sample. It's real rows.

Three settled markets, every recorded book update, no signup.

Get the free sample →