Polymarket weather

checking…

Full order-book-level data for every Polymarket daily temperature market, all cities (NYC, London, Paris, Tokyo, …). Every order that lands on or leaves the book (price_change) and every trade against it (last_trade_price), for both the Yes and No token of each temperature bin. Recorded tick-by-tick, archived to Parquet. History-only — no live socket.

Data available

Loading live stats…

How to get data

Historical archive — /history/ 🔒 Bearer token

Daily Parquet (data.parquet = every message; tob.parquet = reconstructed top-of-book) and the raw gzipped JSONL, partitioned by date. Browse the tree or fetch a file directly. All requests need Authorization: Bearer <token>.

# browse what's there
curl -H "Authorization: Bearer $TOKEN" \
  https://polymarket.feeds.directory/history/parquet/

# pull one sealed day's top-of-book
curl -H "Authorization: Bearer $TOKEN" -O \
  https://polymarket.feeds.directory/history/parquet/year=2026/month=06/day=09/tob.parquet

Need a token? It's a single shared Bearer credential — ask the operator. /health and this page need no auth.

What a record looks like

A raw message from data.parquet (denormalised columns + full JSON payload):

loading…

A reconstructed top-of-book change from tob.parquet:

loading…

Schema

filecolumns
data.parquet recv_ns, event_type, asset_id, market, hash, ts_ms, payload — one row per message; payload is the full Polymarket message as JSON. asset_id is the CLOB token id (empty on price_change, whose per-asset changes live inside the payload); market is the on-chain conditionId.
tob.parquet recv_ns, asset_id, bid, ask, mid, spread — one row per top-of-book change, per token (sparse). Skip replaying price_change yourself.