Tick-level Kalshi Historical Data.

Download tick-by-tick order book snapshots & deltas, trades, ticker updates and lifecycle events for every Kalshi market. Parquet files, ready for backtesting.

Tick-by-tick replay

Every L2 file starts with the start-of-day order book, so you can rebuild the book at any moment of a day from one file.

Redundant collection

Two WebSocket connections record the same feed, reducing the risk of missed messages during network disruptions.

All Kalshi markets

Order books, trades, ticker updates and lifecycle events for every Kalshi market, one Parquet file per market per UTC day.

Focus on strategy research, leave data infrastructure to us.

Save on server hosting, data storage, and maintenance for an in-house Kalshi data pipeline.

2026-09-08
all Kalshi markets since
4
datasets: L2, trades, ticker, lifecycle
1 file
per market per UTC day
600
free downloads at sign-up
$49
per month for Plus
Parquet
ready for pandas, Polars and DuckDB

Tick-level Kalshi datasets

Order book snapshots and deltas, trades, ticker updates and market lifecycle events, one Parquet file per market per UTC day.

#market_tickertimestamplocal_timestampevent_typeyes_pricesyes_sizesno_pricesno_sizes
1KXHIGHNY-26OCT15-B68.517920224000000001792022400000000orderbook_snapshot[0.4100, 0.4000, ... 0.0100][250.00, 1200.00, ... 5000.00][0.5700, 0.5600, ... 0.0100][310.00, 800.00, ... 4200.00]
2KXHIGHNY-26OCT15-B68.5null1792031553118204orderbook_snapshot[0.4200, 0.4100, ... 0.0100][90.00, 640.00, ... 5000.00][0.5700, 0.5600, ... 0.0100][310.00, 820.00, ... 4200.00]

Order book snapshots from the Kalshi WebSocket. Since 2026-09-08

Illustrative rows(占位,待改)

Developer-centric API

Download all data for a market with a single HTTP request.

Python
import pandas as pd
market_ticker = "KXHIGHNY-26OCT15-B68.5"
data_type = "l2"
date = "2026/10/15"

url = f"https://api.kacdata.com/v1/kalshi/{data_type}/{date}/{market_ticker}.parquet"
df = pd.read_parquet(url, storage_options={"api_key": "<YOUR_API_KEY>"})
print(df.head())

Why KacData?

comprehensive - fair - transparent

Full limit order book reconstruction — Snapshots and signed deltas, with a synthesized start-of-day and end-of-day book in every L2 file.

Raw data at the finest granularity — Every message of the Kalshi WebSocket, with no aggregation or downsampling.

Exact decimals — Prices and sizes are stored as decimal(18,4), so replaying deltas never drifts.

Redundant collection — Dual WebSocket connections reduce the risk of data gaps during network disruptions.

Source timestamps and receive timestamps— Kalshi's own timestamp next to the time KacData received each message.

Simple pricing — Start free with 600 downloads; Plus is $49 per month for all data, including the last 3 weeks.