Kalshi backtesting data, down to the order book.

Recorded Kalshi yes/no ladders, up to 100 levels per side. Test fees, slippage, partial fills, and depth-aware execution on stored book observations.

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.

PolymarketKalshiLimitlessBinanceChainlinkPolymarketKalshiLimitlessBinanceChainlink
170M
yes/no books captured
Kalshi, since January 2026
900K+
markets
distinct Kalshi crypto markets
100
depth levels
per side, full REST orderbook
REST
capture method
continuous polling; cadence varies with active-market load and upstream limits
Backtest Lab
+

You should not need a data pipeline and a research notebook to find out whether an idea has an edge. The Backtest Lab runs the whole test in the browser, against the real recorded book.

Paper trading
+

A backtest is a claim about the past. Paper trading is where that claim meets markets that haven't happened yet — with virtual cash, real prices, and a track record you can't fake.

Most feeds stop at the last price.

A single number — the last trade or the mid. It tells you nothing about the size waiting to fill, or how far the price moves when you take it.

We capture every level, both sides.

The full bid/ask ladder with the size resting at each price — best quote through the deep book, asks above the spread and bids below it.

Recorded at every change, forever.

Order-book depth is forward-only — miss it live and it's gone. We store every frame, so a backtest fills against the liquidity that was really there.

Execution evidence

A Kalshi backtest with visible assumptions.

The Backtest Lab exposes the fill model, fee, slippage, stake, partial fills, and unfillable entries. A result is a simulation against recorded book states—not a promise of live queue position.

Open Backtest Lab

Depth-aware VWAP

Walks the price/size arrays in a recorded ladder and reports partial or unfillable entries when displayed depth is insufficient.

Costs are inputs

Choose optimistic midpoint, midpoint plus slippage, or recorded-book execution, then enter an explicit fee per share.

Resolved outcomes

Results use resolved market outcomes and show net P&L, ROI, drawdown, win rate, profit factor, and per-trade fills.

Forward check

Strategies can move into paper trading, where displayed live-book prices are used without claiming that paper orders consume real liquidity.

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.

Paced

Continuous polling

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

Clean REST API

Latest and historical order-book snapshots over REST — JSON, epoch-millis timestamps, keyset pagination.

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 data

Polymarket & Kalshi order-book and price data.

Depth this fine is expensive to record and impossible to backfill, so almost nobody keeps it. We do — full order-book and price data across Polymarket, Kalshi, and Limitless, every level on both sides, captured tick by tick and served clean over a metered API.

Every level, both sides

Not the last trade or the top of book — the full bid/ask ladder with the size resting at each level, captured at every change. The depth a real order actually fills against.

Three venues, one schema

Polymarket, Kalshi, and Limitless in a single, stable JSON shape — event-driven capture on Polymarket and Limitless, continuous full-depth polling on Kalshi, each joined to a high-frequency underlying price.

History you can't backfill

Order-book depth is forward-only — miss it live and it's gone for good. We've recorded continuously since early 2026, so the window your plan buys is backed by stored data, not a promise.

03How we capture it

Real Kalshi depth, measured — not a brochure number.

DepthFeed is an independent project (not affiliated with the venues) that exists to record the Kalshi order book almost nobody else keeps. Every figure below is measured directly from our own live capture, so you can backtest on real liquidity and trade on the same data.

170M
yes/no books captured

since January 2026

900K+
distinct markets

Kalshi crypto markets

100
levels per side

the full REST orderbook

7
assets

BTC · ETH · SOL · XRP · DOGE · BNB · HYPE

Measured directly from DepthFeed's live capture, June 21, 2026.

A real captured snapshot

Yes bidsNo bids (a no bid at p = a yes offer at 1 − p)0.326,6450.311,1290.301,0250.291,5350.67635.10.661,3510.652,6450.642,310
Resting size at each price level — KXBTC15M-26JUN211530 (Kalshi). Bar length ∝ size.

How it's captured

  • Paced polling of Kalshi's public REST order book requests up to 100 levels per side; realized cadence varies with active-market load and upstream quotas.
  • Historical queries ASOF-align the nearest preceding Binance reference by timestamp when available; a missing match remains null.
  • Archive coverage is prospective and series-specific; the docs publish the stored date floors.
04Coverage

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-minuteHourlyDaily
05Quickstart

From key to backtest in minutes.

Hit the REST API to discover live markets and pull the full historical book. Clean JSON, epoch-millis timestamps, keyset pagination — no scraping.

  • Stable JSON schema
  • Receive timestamp per snapshot
  • Keyset pagination, per-plan limits
kalshi_quickstart.py
# Full-depth Kalshi book — REST API, Bearer key
import requests

H = {"Authorization": f"Bearer {KEY}"}
b = requests.get(
    "https://api.depthfeed.com/v3/kalshi/KXBTCD-26JUN05/orderbook/latest",
    headers=H,
).json()["data"]

best_yes = b["yes_prices"][0]   # full ladder in yes_prices[]
best_no  = b["no_prices"][0]
print(b["recv_ts_ms"], best_yes, best_no, b["yes_sizes"][0])

# Tickers (KXBTCD / KXETHD / KXSOLD) come from /v3/kalshi/markets.

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 order book under one shared, upstream-aware request budget. Each response requests up to 100 levels per side; realized cadence varies with the number of tracked markets, network latency, discovery work, and Kalshi's quota. The API exposes the observations that were actually stored rather than promising a universal refresh interval.

Replay it, then size your strategy

Pull Kalshi historical book observations through the API and model the fill against the displayed yes/no ladder. The Backtest Lab can report depth-aware VWAP, partial fills, unfillable entries, user-supplied fees, and slippage; those are simulation assumptions, not a guarantee of queue position or live execution.

06Pricing

Choose capacity, not venues.

Explorer

$0free, no card

A limited sample of the complete DepthFeed API.

  • 7-day unified history
  • Sports REST: Polymarket + Kalshi
  • Read-only API, 1 req/sec
  • Venue-specific recorded book observations
  • BTC markets (latest, capped)
  • Live WebSocket stream: 1 BTC subscription
  • Backtest Lab + 1 paper-trading strategy
  • Wallet Intelligence: 1 saved wallet + up to 3 next-book audits/refresh

Quant

Most popular
$29per month

Every venue, with room to build.

  • 30-day unified history, all assets
  • Every supported venue — no add-ons
  • Sports REST + injury webhooks + 1 live sports book
  • Full bid/ask book depth
  • Any interval: 1m, 5m, 1h… or raw ticks
  • API 25 req/sec, 1,000 req/min
  • Underlying price stamped per snapshot
  • Live WebSocket stream: 5 subscriptions, 1 connection, every venue
  • Backtest Lab + 5 paper-trading strategies (webhook signals)
  • Wallet Intelligence: 5 saved wallets + up to 10 next-book audits/refresh

Desk Lite

$79per month

3× the history, 2× the throughput of Quant.

  • 90-day unified history (3× Quant)
  • API 50 req/sec, 3,000 req/min
  • Everything in Quant
  • Every supported venue — no add-ons
  • Sports REST + 2 live sports books
  • Live WebSocket: 25 subscriptions, 2 connections
  • 15 paper-trading strategies
  • Wallet Intelligence: 10 saved wallets + up to 25 next-book audits/refresh

Desk

$200per month

Dedicated capacity for systematic desks.

  • Full historical archive — our deepest window
  • Sports full archive across every supported league
  • Dedicated capacity, 100 req/sec
  • 6,000 req/min sustained
  • Everything in Desk Lite
  • Priority backfill requests
  • Live WebSocket: 100 subscriptions, 5 connections, wildcards + 3 sports books
  • 7-day production-latency evaluation available on request
  • 40 paper-trading strategies
  • Wallet Intelligence: 20 saved wallets + up to 50 next-book audits/refresh

Questions, answered.

Kalshi crypto series for BTC, ETH, SOL, XRP, DOGE, BNB, and HYPE across supported 15-minute, threshold, and directional windows. The collector requests the full public REST order book up to depth 100; stored cadence and date floors vary by series and are documented rather than represented as one universal interval.

Start backtesting Kalshi on real depth.

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

Start free