Polymarket L2 Order Book Data, Tick by Tick

Every Polymarket order book update, exactly as the WebSocket sent it, recorded in London 4.6 ms after the event. Rebuild any book at any moment.

4.6 ms
median collection latency
2
WebSocket connections per market
tick level
every order book update
End point
/v1/polymarket/l2/{YYYY/MM/DD}/{market_slug}.parquet
/v1/polymarket/trades/{YYYY/MM/DD}/{market_slug}.parquet
/v1/polymarket/onchain_fills/{YYYY/MM/DD}/{market_slug}.parquet

Polymarket L2 Order Book Data

Book snapshots and price_change updates for every market, with Polymarket's timestamp and our receive timestamp on every row.

Sample rows come from a Polymarket BTC Up/Down 5m market.

#market_slugtimestamplocal_timestampevent_typeask_pricesask_sizesbid_pricesbid_sizes
1btc-updown-5m-178433280017843325007700001784332500798498book[0.51, 0.52, ... 0.99][619.93, 162.67, ... 43595.86][0.5, 0.49, ... 0.01][393.44, 188.75, ... 43546.02]
2btc-updown-5m-178433280017843327933640001784332793377432book[0.52, 0.53, ... 0.99][116.97, 248.53, ... 42501.49][0.5, 0.49, ... 0.01][953.1, 115, ... 42705.77]
3btc-updown-5m-178433280017843327946000001784332794608325book[0.52, 0.53, ... 0.99][127.22, 253.53, ... 42501.49][0.51, 0.5, ... 0.01][5, 938.9, ... 42705.77]
4btc-updown-5m-178433280017843327956110001784332795642681book[0.6, 0.61, ... 0.99][405.88, 262.02, ... 42501.49][0.51, 0.5, ... 0.01][5, 938.9, ... 42705.77]
5btc-updown-5m-178433280017843327957510001784332795758615book[0.53, 0.6, ... 0.99][8.64, 405.88, ... 42501.49][0.51, 0.5, ... 0.01][5, 938.9, ... 42705.77]
6btc-updown-5m-178433280017843327962280001784332796237192book[0.6, 0.61, ... 0.99][405.88, 257.01, ... 42501.49][0.52, 0.51, ... 0.01][79.9, 5, ... 42705.77]
7btc-updown-5m-178433280017843327962940001784332796316292book[0.64, 0.65, ... 0.99][434.07, 674.5, ... 42501.49][0.53, 0.52, ... 0.01][5, 50, ... 42705.77]
8btc-updown-5m-178433280017843327973760001784332797385138book[0.64, 0.65, ... 0.99][229.07, 474.5, ... 42606.49][0.52, 0.51, ... 0.01][50, 5, ... 42705.77]

Order book snapshots from websocket feed. Since 2026-02-01

API Example

import pandas as pd
market_slug = "btc-updown-5m-1784332800"
data_type = "l2"
date = "2026/07/18"

url = f"https://api.pmdata.dev/v1/polymarket/{data_type}/{date}/{market_slug}.parquet"
df = pd.read_parquet(url, storage_options={"api_key": "<YOUR_API_KEY>", "User-Agent": "Mozilla/5.0"})
print(df.head())

Use Cases

Estimate queue position and fill probability for limit orders.

Measure the slippage of any order size at any moment.

Replay the exact book a strategy saw, at receive time, in a backtest.