Get Kalshi Orderbooks V2
Orderbooks
Orderbook History (Sub-Cent)
Fetch historical sub-cent orderbook snapshots for a Kalshi market
GET
Get Kalshi Orderbooks V2
Fetch historical orderbook snapshots for a Kalshi market with full sub-cent price
precision. Data starts from January 8th, 2026.
Kalshi prices markets in sub-cent increments. This endpoint reflects those prices
exactly: a level at 57.5 cents is reported as
The
Snapshots are assembled from several capture streams, reported per snapshot in
"57.5", spreads are as tight as they
really are, and sizes include fractional contracts. The
legacy orderbook endpoint rounds everything to
whole cents, which widens spreads and merges neighboring price levels into one.
For example, in a live market where this endpoint reported a best bid/ask of
57.50 / 57.60 (a 0.1-cent spread), the legacy endpoint reported 57 / 58 for the
same moment, and folded the 57.5, 57.1, and 57.0 bid levels into a single 57
bucket.
Differences from the legacy endpoint
The source field and sources parameter
Snapshots are assembled from several capture streams, reported per snapshot in
source:
websocket: the primary capture spine (bulk of the data)api: REST resyncslive_early: trade-triggered early capture of brand-new markets
sources=spine serves the standard capture streams. sources=websocket
(or any comma-separated list) narrows to specific streams. sources=all returns the
raw table including experimental capture streams, and is intended for debugging
rather than analytics.
Migrating from the legacy endpoint
- Prices arrive as strings with decimal scale.
legacy_price == round(float(subcent_price))does not hold in general, because sub-cent levels have no integer-cent equivalent. - Pagination works identically (
pagination_keycursor overtimestamp,sequence). - Most consumers can ignore
source.
Authorizations
Query Parameters
The Kalshi market ticker
Start time in Unix timestamp (milliseconds)
End time in Unix timestamp (milliseconds)
Maximum number of snapshots to return
Required range:
1 <= x <= 2000Pagination key to get the next chunk of data
Which capture sources to include: 'spine' (default, the standard capture streams), 'all' (raw table, may include experimental duplicate streams), or a comma-separated list of exact source names.
