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:
- We are one-time-purchase, sports-focused, and not unlimited. If you want everything on Polymarket forever, updated daily, as cheap as possible, Telonex's $79/mo unlimited plan is a better deal than us — go buy it. We're a fixed archive for a specific job, not a firehose.
- Our depth is not deeper than the raw-depth specialists. Telonex, PMData and PolyHistorical capture book depth at tick / sub-second resolution and that's their whole focus. If raw L2 depth is all you need, they do it well and often cheaper. Our differentiator isn't "more depth" — it's what's joined to each row (below).
- We're strongest on sports, thin elsewhere. The crypto up/down specialists (PMData, PolyHistorical) own that niche; we don't compete there. (On the sports side, that focus includes one-off event captures like our World Cup 2026 order-book archive.)
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:
- Lychee — every trade + market since launch (~36GB), no-code query UI. Trades, not full book depth.
- Kalshi BackTest — L2 snapshots + trade prints for Kalshi crypto (BTC/ETH/SOL/DOGE/XRP) 15-min markets at 100ms, ~$19.90/mo.
- DepthFeed — whole-day Kalshi crypto order book (up to 100 levels/side) as Parquet, joined to underlying price.
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:
- 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.
- 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.
- 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:
- Score-synced orderbook sample (one complete NBA overtime game, top-of-book paired with live game state on every row): huggingface.co/datasets/Coyevans/polymarket-kalshi-scoresync-orderbook-sample — this is the clearest proof of the per-row score-sync described above.
- Cross-venue matched-book sample (MLB, Polymarket + Kalshi same window): huggingface.co/datasets/Coyevans/mlb-polymarket-kalshi-matched-book-sample · DOI: 10.5281/zenodo.20816908
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