AymarData

Sources/Polymarket

PM

Polymarket

Live

Prediction 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.

FieldTypeDescription
sourcestringAlways "polymarket"
marketstringMarket slug, e.g. btc-updown-15m
asset_idstringCLOB asset / token id
ts_exchangestringExchange timestamp (ISO-8601)
ts_recvstringAymarData receive timestamp
bidsLevel[]Bids high→low: {price, size}
asksLevel[]Asks low→high: {price, size}
spreadnumberasks[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.

FieldTypeDescription
ts_exchangestringExchange timestamp
sidestring"bid" | "ask"
pricenumberPrice level
sizenumberNew size (0 = removed)
seqnumberMonotonic 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.

FieldTypeDescription
trade_idstringExchange trade id
ts_exchangestringTrade timestamp
pricenumberFill price
sizenumberFill size
sidestring"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.

FieldTypeDescription
eventstring"open" | "resolve" | "void"
tsstringEvent timestamp
outcomestringWinning outcome, e.g. "up"
pricenumberSettlement 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.

Not affiliated with Polymarket or Kalshi.