Sources/Polymarket
Polymarket
LivePrediction markets
Crypto Up/Down (BTC, ETH, SOL, XRP · 5m to daily) plus the top markets by volume. Full book, trades, resolutions.
History from
2026-10-24T17:00Z
Depth
Full L2 · every level
Latency
42ms p50
Coverage
What's covered
Markets / instruments
BTC, ETH, SOL, XRP Up/Down (5m · 15m · 1h · 4h · 24h) plus top markets by 24h volume
Intervals
5m · 15m · 1h · 4h · 24h · event markets
History start
2026-10-24T17:00Z
Included data
order book · trades · settlement
What's included
Schemas and sample rows
Same fields in the API, Parquet and CSV.
Book snapshots
Full bid/ask ladders at a point in time, with exchange and receive timestamps.
| Field | Type | Description |
|---|---|---|
| source | string | Always "polymarket" |
| market | string | Market slug, e.g. btc-updown-15m |
| asset_id | string | CLOB asset / token id |
| ts_exchange | string | Exchange timestamp (ISO-8601) |
| ts_recv | string | AymarData receive timestamp |
| bids | Level[] | Bids high→low: {price, size} |
| asks | Level[] | Asks low→high: {price, size} |
| spread | number | asks[0].price − bids[0].price |
[
{
"source": "polymarket",
"market": "btc-updown-15m",
"asset_id": "0x8f3a…c21",
"ts_exchange": "2026-10-22T14:30:00.120Z",
"ts_recv": "2026-10-22T14:30:00.162Z",
"bids": [
{
"price": 0.52,
"size": 18420
},
{
"price": 0.51,
"size": 22100
}
],
"asks": [
{
"price": 0.53,
"size": 15210
},
{
"price": 0.54,
"size": 19840
}
],
"spread": 0.01
}
]Book deltas
Incremental updates between snapshots — price level changes only.
| Field | Type | Description |
|---|---|---|
| ts_exchange | string | Exchange timestamp |
| side | string | "bid" | "ask" |
| price | number | Price level |
| size | number | New size (0 = removed) |
| seq | number | Monotonic sequence per market |
[
{
"ts_exchange": "2026-10-22T14:30:00.240Z",
"side": "bid",
"price": 0.52,
"size": 19100,
"seq": 482911
},
{
"ts_exchange": "2026-10-22T14:30:00.241Z",
"side": "ask",
"price": 0.55,
"size": 0,
"seq": 482912
}
]Trades
Prints with side, size, price and aggressor when available.
| Field | Type | Description |
|---|---|---|
| trade_id | string | Exchange trade id |
| ts_exchange | string | Trade timestamp |
| price | number | Fill price |
| size | number | Fill size |
| side | string | "buy" | "sell" |
[
{
"trade_id": "tr_9f2c81",
"ts_exchange": "2026-10-22T14:30:01.004Z",
"price": 0.53,
"size": 250,
"side": "buy"
}
]Settlement / lifecycle
Market open, resolve, and payout outcomes — aligned to the same market ids.
| Field | Type | Description |
|---|---|---|
| event | string | "open" | "resolve" | "void" |
| ts | string | Event timestamp |
| outcome | string | Winning outcome, e.g. "up" |
| price | number | Settlement price (0 or 1) |
[
{
"event": "resolve",
"ts": "2026-10-22T14:45:00.000Z",
"outcome": "up",
"price": 1
}
]Delivery
Formats & delivery
JSON API
REST + live stream · same schema
Parquet
Daily files · snappy · partitioned by date
CSV
Daily files · UTF-8 · header row
Code
Pull a snapshot
import os
import requests
API = "https://api.aymardata.com/v1"
H = {
"Authorization": f"Bearer {os.environ['AYMARDATA_API_KEY']}",
"User-Agent": "aymardata-docs/1.0",
}
book = requests.get(
f"{API}/book",
headers=H,
params={
"source": "polymarket",
"market": "btc-updown-15m",
"outcome": "up",
"at": "2026-10-22T14:30:00Z",
"depth": 6,
},
timeout=30,
).json()
trades = requests.get(
f"{API}/trades",
headers=H,
params={
"source": "polymarket",
"market": "btc-updown-15m",
"outcome": "up",
"start": "2026-10-22T14:00:00Z",
"end": "2026-10-22T15:00:00Z",
"limit": 200,
},
timeout=30,
).json()["data"]
print(book["spread"], len(trades))Ready to query Polymarket?
Sign in and pull your first snapshot once your plan is active.