Guides / Platform
ProbSights' Polymarket historical data API covers two feeds for every indexed market: orderbook snapshots (the depth on both sides at a point in time) and the executed trade tape. Both are queried the same way — by market ID and time range — and both are normalized against Kalshi, so one integration reads both venues.
| Endpoint | Returns |
|---|---|
/v1/historical/polymarket/orderbook | { snapshots, pagination } |
/v1/historical/polymarket/trades | { trades, pagination } |
| Parameter | Notes |
|---|---|
market_id | Required. From /v1/search/markets. |
asset_id | Optional. Narrows to a single outcome token. |
start_time / end_time | Unix seconds — not milliseconds, not ISO 8601. |
granularity | Orderbook only: 1m or 5m. |
limit / pagination_key | Paging; see below. |
Polymarket quotes a two-sided book, so snapshots carry bids and
asks as arrays of { price, size }, plus the derived
best_bid, best_ask, mid, and spread, and
the asset_id the book belongs to. If you only need top-of-book, read the derived
fields rather than walking the arrays.
Each fill carries price, size, side,
timestamp, and two Polymarket-specific fields worth keeping:
transaction_hash, which lets a fill be reconciled on-chain, and
fee_rate_bps, the fee actually applied. Modelling costs from
fee_rate_bps beats assuming a flat rate.
GET /v1/historical/polymarket/orderbook
?market_id=<market_id>
&granularity=1m
&start_time=1737331200
&end_time=1737417600
&limit=1000
Page by resending with pagination_key set from
pagination.pagination_key while pagination.has_more is true. Do not
page by advancing start_time — records share timestamps, so you will drop or
duplicate rows.
BTC, ETH, and SOL Up/Down markets are covered across 5m, 15m, 1h, 4h, and 24h contract
intervals on the Pro plan. Broader Polymarket history — and Kalshi
alongside it over a 60-day window — is on Builder. Note that contract interval and snapshot
granularity are independent: a 24h contract can be sampled at 1m.
Data from Kalshi and Polymarket. Search live API docs Pricing