Polymarket & Kalshi historical data
Prediction Market Historical Data: Polymarket and Kalshi Sources
A last-price series does not show the spread or displayed size a strategy faced. DepthFeed stores the full bid/ask ladder at each stored observation (up to 100 levels per side on Kalshi) for the markets and date ranges listed in its coverage documentation.
Polymarket & Kalshi historical order-book data is a sequence of recorded full-book observations over time. DepthFeed uses event-driven websocket capture on Polymarket and Limitless, and continuous full-depth polling on Kalshi and serves the stored observations through REST; it does not claim observations for markets, timestamps, or gaps outside the documented archive.
Choose a venue
Each venue has its own page with coverage by category, a comparison of every source, and a free sample of real recorded books.
| Venue | What DepthFeed holds | Books from | Free sample |
|---|---|---|---|
| Polymarket historical data | 2.2 billion recorded books across 2.1 million markets; 3.45 million markets with results | 2025-12-30 | 3 settled markets, 11,951 books |
| Kalshi historical data | 10.8 million markets with results in every category; 134 million candles; 1.9 billion recorded books | 2026-01-08 | 4 settled markets, 1,020 books |
Polymarket & Kalshi historical data at a glance
- Venues
- Polymarket · Kalshi · Limitless
- Capture
- Event-driven WS (Poly) · full-depth poll (Kalshi)
- Cadence
- Venue-specific; documented by source
- Depth
- Full ladder, both sides (≤100 levels Kalshi)
- Assets
- 7 — BTC · ETH · SOL · XRP · DOGE · BNB · HYPE
- Timestamps
- Millisecond observation time; venue-specific source stamps
- Underlying price
- Nearest preceding Binance reference when available
- History
- 7/30/90-day windows + full archive (Desk)
- Delivery
- REST history + normalized live WebSocket frames
- Resolution
- Raw stored observations or ?interval= 1s–1d
Discover Polymarket and Kalshi markets before requesting history
Use the identifiers returned by each venue's discovery route. Replace the placeholders below with real identifiers from the response; do not construct Kalshi tickers from timestamps.
# Polymarket: discover a market, then request its recorded snapshots.
curl -s "https://api.depthfeed.com/v3/btc/markets?limit=5" \
-H "Authorization: Bearer df_your_key"
curl -s "https://api.depthfeed.com/v3/btc/markets/<market_id>/snapshots?include_orderbook=true&interval=1m" \
-H "Authorization: Bearer df_your_key"
# Kalshi: use an exact market ticker returned by discovery.
curl -s "https://api.depthfeed.com/v3/kalshi/markets?series=KXBTC15M&limit=5" \
-H "Authorization: Bearer df_your_key"
curl -s "https://api.depthfeed.com/v3/kalshi/<exact_market_ticker>/snapshots?include_orderbook=true" \
-H "Authorization: Bearer df_your_key"- Replace df_your_key with your own API key. These requests are examples, not a claim that a particular market or day is available on every plan.
- REST history uses the documented plan and coverage limits. Daily Parquet purchases use the separate catalogue's available dates and schemas.
Polymarket & Kalshi historical data
What's in the archive
Kalshi: start from the exact market ticker
Kalshi series codes identify a family; a historical request needs the exact market ticker returned by discovery. DepthFeed records the Yes/No order book through paced REST polling and normalizes prices to 0–1 dollars. Coverage by category, the source comparison and the free sample are on the Kalshi historical data page.
Polymarket: keep the market identifier
Discover the Polymarket market before requesting its recorded snapshots. Keep its identifier, asset, market window and outcome metadata with the full bid/ask ladder. Coverage by category, the source comparison and the free sample are on the Polymarket historical data page.
Daily Parquet downloads or historical REST requests
Use a listed daily file when a research job repeatedly scans a fixed archive, and REST when market filters, bounded time windows or pagination suit the workflow. The public bulk catalogue shows actual available dates, native schemas and pricing. Inspect those entries before buying; a synthetic sample demonstrates the file format and is not proof of captured coverage.
The full book, not a last price
A historical last price does not expose the spread or displayed size. DepthFeed's archive holds the full bid/ask ladder at each stored observation (up to 100 levels per side on Kalshi) for supported polymarket & kalshi markets, so you can inspect the recorded ladder and model an order against the liquidity visible at that observation.
Resolution that survives short-dated markets
Short-dated crypto markets can settle within minutes, so an hourly archive may capture only a small part of their path. DepthFeed uses event-driven source capture on Polymarket and paced full-depth REST polling on Kalshi; stored cadence is venue-specific; use the returned timestamps and documented series floors to determine whether a particular study has sufficient resolution.
REST history and live updates: separate contracts
Pull stored depth through the REST API and subscribe to normalized current-book frames over WebSocket. The two surfaces share documented book concepts but can have different envelopes and venue-specific fields. Plans serve rolling 7-, 30-, and 90-day windows; Desk is bounded by the archive actually held.
Choose daily files or the historical API
Inspect available dates, native schemas and prices in the public file catalogue, or use the snapshot API for bounded requests. Choose the delivery path that fits the research job.
More on Polymarket & Kalshi dataMore on Polymarket & Kalshi data
Polymarket historical data
Kalshi historical data
Daily Parquet datasets and available dates
Prediction-market data downloads: CSV, Parquet, and API
Compare prediction-market data APIs
Polymarket & Kalshi order book data
Polymarket & Kalshi price data
Polymarket & Kalshi market data
Polymarket & Kalshi data API
Best prediction-market data: buyer's guide
Guides & resources
