Kalshi hourly Bitcoin price order book, live
Measure quoted spreads and depth in Kalshi hourly Bitcoin price-threshold markets. This event-driven history records one-second book states for active tickers since 8 September 2026, keeping the final changed state in each second. Use the YES ladders to study liquidity, imbalance, and probability across strikes near the hourly close.
A strike enters the recording only after it has a resting YES bid, and quiet seconds do not create rows. Three checkpoint windows on 9 September 2026 are missing or sparse. Later recorder gaps are backfilled automatically.
Coverage
- Window: from 2026-09-08 19:20 UTC onward, growing with every refresh, in UTC.
- Grain: one row per market ticker and second, holding the book after the last event of that second.
- Cadence: a new hourly event opens every hour with about 190 strikes. The recording follows every open strike that carries a resting YES bid, about 170 markets at a time. Busy strikes near the current Bitcoin price produce several rows a minute. Far strikes produce a row only when their book changes.
- Known gaps: three windows on 9 September 2026 are missing or sparse because a worker refresh blocked recorder checkpoints.
- Missing windows: 06:30–08:39 UTC, 11:27–13:24 UTC and 13:54–16:01 UTC. The three 9 September 2026 checkpoint windows were not backfilled. Gaps after 9 September 2026 are backfilled automatically.
Columns
ticker: the Kalshi market ticker, for example KXBTCD-26SEP0815-T78599.99, naming the hour and the strike.timestamp_ms: the venue event time of the last book event in the second, in epoch milliseconds.sequence: the final book event's position in the recording's arrival order.best_bid,best_ask: the best resting YES bid and ask, in cents from 0 to 100.bid_depth,ask_depth: the total resting contracts on the YES bid side and the YES ask side.yes_bids,yes_asks: JSON arrays of {price, size} for every resting level, best price first, in cents and whole contracts.ingest_time_ms: when the recorder received the frame, in epoch milliseconds.
Missing values
A side with no resting orders has a null best price, a depth of 0 and an empty ladder. Strikes with no resting YES bid are not recorded until a bid appears. A settled market stops producing rows. Any minute when the recorder was disconnected is a gap. The three 9 September 2026 checkpoint windows were not backfilled. Gaps after 9 September 2026 are backfilled automatically.
Suitable for
- Reconstructing the full limit order book of any hourly Bitcoin strike at any second.
- Measuring spread, depth and imbalance across strikes as the hour approaches settlement.
- Comparing hourly and 15-minute Bitcoin contracts on Kalshi at a shared timestamp.
- Studying how order flow reacts to moves in the CF Benchmarks Bitcoin reference price.
Source and rights
Kalshi's public trade API websocket, orderbook_snapshot and orderbook_delta channels, recorded under the workspace's own Kalshi API key. Settlement follows the CF Benchmarks BRTI print at the top of each hour. Use is governed by Kalshi's API terms. No open licence is claimed.
Tables
| Name | Rows (est.) | Updated | Get the data |
|---|---|---|---|
Table overviewPublished rows18,084,897Columns10 rows10 cols Update detailsStatusLiveLast published22 Sept 2026 | Table overviewPublished rows18,084,897Columns10 | Update detailsStatusLiveLast published22 Sept 2026 |
Sources
1 publisherapi.elections.kalshi.comapi.elections.kalshi.com1 endpoint
- Website
- api.elections.kalshi.com
- Usage rights
- Allowed by terms of service.
- Requests
- 1 request across 1 endpoint
Details
- Contents
- 1 table · 18,084,897 rows (est.) · 10 columns
- Updated
- 22 September 2026
- Published
- 12 September 2026
- Version
- 2026-09-22
- License
- CC BY 4.0 — attribution
- Visibility
- Public
- Publisher
- Mostly Right
- Topics
- prediction markets · kalshi · bitcoin +3


Comments
0No comments yet. Questions about coverage, licensing, or how a column is derived belong here, in the open, beside the data.
Sign in to join the conversation.