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
| file | columns |
|---|---|
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. |