Guides / Platform
ProbSights covers Kalshi through the same two feeds it uses for Polymarket — orderbook snapshots and the executed trade tape — with identical parameters and paging. The one place the venues genuinely differ is how the book is quoted, and the response preserves that rather than flattening it into something lossy.
| Endpoint | Returns |
|---|---|
/v1/historical/kalshi/orderbook | { snapshots, pagination } |
/v1/historical/kalshi/trades | { trades, pagination } |
| Parameter | Notes |
|---|---|
market_id | Required. From /v1/search/markets. |
start_time / end_time | Unix seconds — not milliseconds, not ISO 8601. |
granularity | Orderbook only: 1m or 5m. |
limit / pagination_key | Paging; follow the cursor, not the clock. |
This is the detail that trips up code written against Polymarket first. Kalshi snapshots
expose yes_bids and no_bids rather than bids and
asks, because on a binary contract a No bid at 40¢ is economically a Yes
offer at 60¢ — the two books are the same book seen from opposite sides. Snapshots
also carry best_yes_bid, best_yes_ask, mid, and
spread, so the normalized top-of-book view is available without doing that
conversion yourself. Do the arithmetic only when you need full depth on one side.
Kalshi fills carry price, size, timestamp,
taker_side (which side lifted the book), and trade_id. There is no
transaction hash — Kalshi settles off-chain — so trade_id is the reconciliation
key, where Polymarket uses transaction_hash.
GET /v1/historical/kalshi/orderbook
?market_id=<market_id>
&granularity=1m
&start_time=1737331200
&end_time=1737417600
&limit=1000
Kalshi market search and live prices are available on every plan. Kalshi historical data — 60 days, alongside Polymarket — is on the Builder plan, which is also what makes same-timestamp cross-venue comparison possible and therefore what any Kalshi/Polymarket spread research needs.
Data from Kalshi and Polymarket. Search live API docs Pricing