← Back to blog

Where to Get Historical Polymarket & Kalshi Order-Book Data (2026): An Honest Comparison

By the ZenHodl team — we run the trading bots this blog writes about, and the qualifying live-position record, including losses, is public with its admission rules at /results.

If you've searched for historical order-book data on Polymarket or Kalshi, you've probably already hit the wall: the public APIs give you prices and trades, but not the historical order book — the full bid/ask depth, snapshotted over time, as each market actually moved. This guide is an honest map of where that data does and doesn't exist in 2026, what the real options cost, and how to pick the one that fits your project.

Full disclosure up front: we (ZenHodl) sell one of the datasets compared below. We've tried to write this the way we'd want a competitor to write about us — facts, not spin. Where another vendor is cheaper or better for your use case, we say so. If you only need raw Polymarket depth, you should probably buy from someone else on this list, and we'll point you at them.

First: why this data isn't just sitting in an API

The single most important thing to understand before you spend a dollar: historical order-book depth is not reconstructable after the fact.

Polymarket's CLOB API will hand you historical mid-prices and trade prints. It will not hand you the historical book — the resting bids and asks at each level, over time. Kalshi's public API is the same story: live order book is available, but the historical-data endpoints don't ship a time series of the full book. Trades tell you where a transaction happened; they don't tell you the depth that was sitting there a moment before, or how a different-sized order would have filled.

That depth only exists if someone was recording it, level by level, in real time, while the market was live. Once the moment passes, it's gone — you can't backfill it from any public endpoint. This is why every option below is either "run a capture rig yourself" or "buy from someone who already ran one." There is no third path, no clever query that reconstructs it. (We wrote a longer explainer on exactly why it's non-reconstructable here: How to get historical Polymarket order-book data.)

The honest comparison table

Option Venues What you get Score-sync (game state per row) Cross-venue (same window) Settled outcome labels Price Best for
Build it yourself Anything you record Exactly what you capture Only if you build it Only if you build it Only if you build it Your time + infra Teams who want full control and have eng time
Telonex Polymarket (+ Binance) Tick trades, tick-by-tick book depth, top-of-book quotes, on-chain fills No No Resolution metadata Free trial (5 files); $79/mo unlimited (personal); enterprise custom Deepest, cheapest raw Polymarket depth at scale
PolymarketData.co Polymarket L2 book snapshots, price series, spread/volume/liquidity metrics, resolved outcomes No No Yes (outcomes) Free tier to test; paid tiers (see their /pricing) Researchers who want a clean Polymarket-only archive + metrics
PMData Polymarket (crypto up/down) Tick L2 book + updates + trades, on-chain fills, Parquet-over-HTTP No No — "Start for free"; paid (unlisted) Crypto up/down microstructure, high-frequency
PolyHistorical Polymarket (BTC/ETH/SOL up/down) 300ms L2 snapshots, Binance/Chainlink reference prices, replay tooling No No Resolved markets archived Free starter; $17/mo Pro Crypto up/down replay/backtest on a budget
ZenHodl Polymarket + Kalshi Score-synced top-of-book quotes for sports, live game state on every row Yes Yes Yes (Kalshi settled labels) $9 MLB tryout; flagship $150 one-time Sports backtest/research where game context + cross-venue matter

Vendor prices and features are as of mid-2026 from each provider's public site — check the source links for current terms before buying.

A few honest caveats on our own row so the table isn't misleading:

The Kalshi side specifically

Kalshi is where the market gets thin, because Kalshi's public API does not ship a historical order-book time series — same wall as Polymarket. A few providers capture it themselves:

Note the pattern: the Kalshi specialists are crypto-only, and none of them join Kalshi to Polymarket on a shared timeline, or to sports game state. (For Kalshi sports order-book depth specifically, we also record L2 books ourselves and sell them as per-sport slices — tennis, MLB, WNBA, or esports.) That gap is the reason ZenHodl exists as a row at all — not because we're "better," but because we're recording a different slice (sports, both venues, with context) that nobody else is. Since late June we've also been recording Kalshi L2 depth and the executed trade tape directly — the write-up, including every capture gap and the print-lag measurements, is in how we built our Kalshi microstructure tape.

So what actually makes the datasets different?

Strip away the marketing and there are really three axes that matter:

  1. Depth resolution & breadth — how many levels, how often, how many markets. This is where the raw-depth specialists (Telonex, PMData, PolyHistorical) win. If your research is pure microstructure on Polymarket, start there.
  2. Outcome labels — do you get the settled YES/NO result joined to the market? Critical for any supervised/ML or calibration work. PolymarketData and ZenHodl both have this; some trade-only feeds don't.
  3. Context joined to each row — this is the axis almost nobody covers. For a sports market, "the bid was 0.54 at 9:42:07pm" is far more useful when the same row tells you it was Q4, 2 minutes left, home team up by 3. That join has to happen at capture time — you can't bolt the score onto an old order-book row afterward, because you'd need a second perfectly-timestamped feed of game state that you also didn't record.

ZenHodl's whole reason to exist is axis #3 for sports, plus doing it on Polymarket and Kalshi over the same window so you can study cross-venue lead/lag and price discovery. That's the moat — not depth, not price. If axis #3 doesn't matter to your project, one of the cheaper raw-depth vendors above is the right call, and we'd rather you buy the right thing.

One honesty note that applies to all of these

None of this — ours or anyone else's — is a trading signal. Prediction markets are broadly efficient; a historical book won't hand you alpha. What this data is good for is research, backtesting, slippage/execution modeling, calibration studies, and ML training features. Anyone selling you historical order-book data as "the edge" is overselling. We sell it as what it is: hard-to-get research data that saves you the months of capture infrastructure it would take to record yourself.

See the data before you decide

The best way to judge any of these is to look at a real sample, not a feature list. Most vendors here have a free tier — use them. Ours are fully open, no signup:

If, after looking, the sports + cross-venue + game-state angle is what you need, the full archive and the $9 MLB tryout are on the data page and the products catalog. The flagship archive can also be bought programmatically by an AI agent over x402, if that's your workflow. If it's not what you need, the table above should point you to whoever is — that's the honest outcome we're after.

Related reading: Why historical Polymarket order-book data is non-reconstructable · Backtesting Polymarket strategies: tools, datasets, and the depth-data problem · The state of prediction markets in 2026

Related reading

Get ZenHodl Weekly

One weekly email with live results, one model insight, and product updates.

Tuesday mornings. No spam.

See the ZenHodl archive contract

Coverage dates, snapshot fields, limitations, schema, and a free sample are published on one page.

Join the community

Discuss strategies, share results, get help.

Join Discord