Polymarket US
Polymarket US historical data coverage, downloads, and collection details.
Coverage start date: 2026-09-10.
Polymarket US (polymarket.us) is the CFTC-regulated US exchange, separate from the international Polymarket exchange: its own markets, market slugs and order books.
Available data
| Data type | Contents |
|---|---|
l2 | Order book of one market for one UTC day, from the Polymarket US WebSocket. Every row is a complete book with the market state. |
trades | Trades of one market for one UTC day, from the Polymarket US WebSocket, with maker and taker side and intent. A day has a file only if the market traded that day. |
There is no lifecycle file: every l2 and trades row carries the market or trade state in its state column. There are no on-chain fills. See the Polymarket US L2 and trades schemas for column definitions.
API access and data format
Send your API key in the api_key request header. Get a free key at pmdata.dev/app.
Each file costs one download. A file that does not exist returns 404 and costs nothing.
Polymarket US is a separate product from Plus: Polymarket and Plus: Predict.fun. Free accounts can download Polymarket US data older than 3 weeks (21 days): 600 downloads at sign-up, then 50 per month, counted separately from the other products. Data from the last 3 weeks needs Plus: Polymarket US; Plus: Polymarket and Plus: Predict.fun do not include it. Plus: Polymarket US also includes Chainlink data.
Market API
Download one market's Parquet file for one data type and UTC date. market_slug is the Polymarket US market slug. Markets and dates PMData has recorded: see the markets catalog.
https://api.pmdata.dev/v1/polymarket_us/{data_type}/{YYYY}/{MM}/{DD}/{market_slug}.parquetResponse schema by data_type: l2 · trades
import pandas as pd
market_slug = "aec-nfl-pit-cle-2026-10-01" # Polymarket US market slug
date = "2026/10/01" # UTC date, YYYY/MM/DD
data_type = "l2" # l2, trades
url = (
f"https://api.pmdata.dev/v1/polymarket_us/{data_type}/"
f"{date}/{market_slug}.parquet"
)
df = pd.read_parquet(
url,
storage_options={
"api_key": "<YOUR_API_KEY>",
},
)
print(df.head())timestamp and local_timestamp are nanosecond timestamps (timestamp[ns], UTC). pandas reads them as datetime64[ns] and keeps the nanoseconds; df["timestamp"].astype("int64") gives nanoseconds since the epoch. Add .dt.tz_localize("UTC") for timezone-aware values.
Prices are in US dollars from 0 to 1 and are the price of the market's long outcome (the catalog's yes_outcome). The outcome parameter is not supported and returns 400.
Captured real-time channels
PMData collects these subscriptions from the Polymarket US WebSocket, wss://api.polymarket.us/v1/ws/markets:
SUBSCRIPTION_TYPE_MARKET_DATA— The complete order book of a market (marketData), sent on every change. Stored inl2.SUBSCRIPTION_TYPE_TRADE— Every trade (trade). Stored intrades.
Each row keeps the source timestamp and PMData's receive timestamp, local_timestamp.
Market data collection details
PMData's market data collection infrastructure for Polymarket US is located in AWS us-east-1, colocated with Polymarket US.
