Kalshi backtesting data, down to the order book.

The full yes/no order book for Kalshi's crypto contracts — seven assets across 15-minute and daily windows, every level on both sides, captured continuously. Backtest fills, spreads, and slippage against real liquidity.

BTC above $100k · today
rest · 100 lvls
best yes
0.612
mid
0.6135
best no
0.615
imbalance
53 / 47
cumulative depthyesno
0.5780.606mid 0.61350.6220.651
yessize · Σ
0.6122.3k2
0.6102.9k5
0.6083.6k9
0.6063.3k12
0.6034.4k16
0.6005.0k21
0.5964.0k26
0.5914.7k30
nosize · Σ
0.6152.1k2
0.6172.7k5
0.6192.5k7
0.6223.6k11
0.6253.3k14
0.6294.5k19
0.6333.0k22
0.6384.2k26
continuous · yes/no bookrecv_ts
PolymarketKalshiLimitlessBinanceChainlinkPolymarketKalshiLimitlessBinanceChainlink

Backtests are only honest on real depth. A mid-price hides the spread, the size resting at each level, and the slippage your order would actually pay. DepthFeed keeps the whole book.

7
crypto assets
BTC · ETH · SOL · XRP · DOGE · BNB · HYPE
100
depth levels
per side, full REST orderbook
~1.5s
refresh
continuous full-depth polling
yes / no
book
both sides, prices in 0–1 dollars
01What you get

The book, not just the last price.

Full bid/ask book depth

Every price level with its size, on both sides, at every change. Measure real slippage and liquidity, not a single mid-price.

~1.5s

Continuous polling

Kalshi's public REST orderbook, polled continuously at full depth — far finer than any hourly archive.

API + Parquet bulk

Query recent windows over REST, or pull whole-day zstd Parquet for bulk backtests.

Underlying price, time-synced

A high-frequency reference price series — Binance spot/futures plus Chainlink settlement marks — that joins to any Kalshi snapshot by epoch-millis timestamp, so you can line up book state with the spot move that drove it.

02The platformBeta

Not just the data — the platform to backtest it.

Most depth data is a pile of Parquet you have to wire up yourself. DepthFeed adds the layer on top: chart the book like a terminal and backtest against real liquidity, on the same dataset, without leaving the page.

Depth overview

Chart the full book and the underlying side by side — spread, the size resting at each level, and the price move that drove it. A terminal view of the depth, not a CSV you have to draw yourself.

Backtest on real fills

Replay a market tick by tick and size a strategy against the liquidity that was actually there. Real spreads, real slippage — the fills you could have gotten, not a mid-price fantasy.

One dataset, no export

The overview and the backtest run on the exact data you can also download. Nothing to scrape or wire up — explore it in the platform, then pull whole-day Parquet when you want it in your own stack.

03Coverage

Kalshi coverage, growing with demand.

We collect Kalshi's crypto series with the complete yes/no book — the depth that short-dated, strike-based contracts trade on.

Assets
BTCETHSOLXRPDOGEBNBHYPE
Contracts
15-minuteDaily
04Quickstart

From key to backtest in minutes.

Pull a whole day of full-depth book as zstd Parquet, or hit the REST API to discover live markets. Clean columnar schema, epoch-millis timestamps, no scraping.

  • Stable columnar schema
  • Receive timestamp per snapshot
  • No rate-limit surprises on bulk
kalshi_quickstart.py
# Full-depth Kalshi book — whole-day zstd Parquet
import pandas as pd

book = pd.read_parquet("kalshi_book/btc/2026-06-05.parquet")
book["best_yes"] = book["yes_prices"].str[0]   # full ladder in yes_prices[]
book["best_no"]  = book["no_prices"].str[0]
book["yes_size"] = book["yes_sizes"].str[0]

print(book[["recv_ts_ms", "best_yes", "best_no", "yes_size"]].head())

# Tickers (KXBTCD / KXETHD / KXSOLD) ship in the daily kalshi_markets manifest.

What Kalshi backtesting data actually needs

Public Kalshi data gives you trades and a last price. To backtest a strategy you need the yes/no order book it would have hit — every resting level on both sides — not a single number sampled once an hour.

The full yes/no book, both sides

A last price tells you nothing about the size waiting at each level. DepthFeed captures the complete Kalshi order book — up to 100 levels per side, yes and no — so you can measure spreads, slippage, and the real liquidity behind every contract instead of guessing.

Continuous capture, not hourly

We poll Kalshi's public REST orderbook continuously, roughly every 1.5 seconds, across all seven crypto assets on both the 15-minute and daily series. That is orders of magnitude finer than any free hourly archive, so short-dated Kalshi contracts stay genuinely backtestable.

Replay it, then size your strategy

Pull whole-day Kalshi historical order-book data as compact Parquet, join it to a high-frequency underlying price by timestamp, and replay the session. You see exactly how a fill would have landed before you put real money on it.

05Pricing

Simple plans. Start without a card.

Explorer

$0free, no card

Kick the tires on real depth data.

  • 7-day rolling history
  • Read-only API, 1 req/sec
  • Sub-second event-driven snapshots
  • BTC markets (latest, capped)
Start free

Quant

Popular
$29per month

For traders building a real track record.

  • 60-day rolling history, all assets
  • Both venues: Polymarket + Kalshi
  • Full bid/ask book depth
  • API 25 req/sec, 1,000 req/min + Parquet bulk
  • Underlying price stamped per snapshot
Choose Quant

Desk

$200per month

Dedicated throughput for systematic desks.

  • Everything in Quant
  • 90-day rolling history
  • Dedicated infrastructure, 100 req/sec
  • S3 / R2 direct bulk delivery
  • Priority backfill requests
Choose Desk

Questions, answered.

Kalshi's crypto series — seven assets (BTC, ETH, SOL, XRP, DOGE, BNB, HYPE) on both the 15-minute up/down (KX{ASSET}15M) and daily directional (KX{ASSET}D) windows — captured with the full yes/no order book, up to 100 levels per side, polled continuously from Kalshi's public REST API (about every 1.5 seconds).

Start backtesting Kalshi on real depth.

Free to start, no card. Upgrade when your strategy is ready for the full book.

Start free