Tick-level data
Every Kalshi order book, every tick.
Full-depth order books and trades for every public Kalshi market except combos, recorded from Kalshi's live feed. Ask for the book at any moment, or replay every change over a range.
KXFED-26OCTsize
44¢420
43¢860
42¢1,310
spread 1¢
41¢1,200
40¢740
39¢380
14:02:11.418bid 41¢+400
14:02:11.902ask 42¢−300
14:02:12.277bid 40¢+120
14:02:12.640ask 43¢+250
14:02:13.105bid 41¢−80
replaying every book update
What you get
The book at any moment
Full depth on both sides, exactly as it stood at the millisecond you ask for.
Every change
A starting book, then each change Kalshi published, in the order it arrived.
Every trade
Price, size and taker side, with the time we received it.
No silent gaps
If we weren't recording at a moment, the answer says so, instead of handing you an empty book.
What it's for
Backtest with real depth
Fill against the book that was there, not a mid price.
Measure slippage at your size
See what walking the book would have cost.
Study how books react
Watch liquidity move around news, down to the millisecond.
Get started in three steps
- 1Install
pip install synpathPython 3.10 or newer. - 2Sign in
synpath loginOpens Google sign-in in your browser. - 3Create a key
synpath keys create my-laptopSaved on your machine; Python picks it up automatically.
import synpath
t = 1790586000000 # any moment, in Unix milliseconds
snap = synpath.fetch_order_book_at("kalshi:KXQUANTUM-30", as_of_ms=t)
if snap.book:
print(snap.book.bids[0].price, snap.book.asks[0].price) # 0.331 0.38
print(len(snap.book.bids), "bid levels") # 20 bid levels
else:
print(snap.absence_reason) # no data for that momentUp to an hour per request. Prefer HTTP? Send your key as a bearer token; see the REST reference.

