Overview
Top 5 bid and ask price levels at every tick. Prices and sizes are stored as comma-separated strings, best level first. Available as both CSV (gzip-compressed) and Parquet (zstd-compressed).Columns
Column | CSV type | Parquet type | Description |
|---|---|---|---|
exchange | string | string | Always kalshi |
ticker | string | string | Market ticker |
local_timestamp | integer | int64 | Capture timestamp (nanoseconds since epoch) |
exchange_timestamp | string | timestamp_micros (nullable) | Exchange timestamp |
bid_prices | string | string | Comma-separated bid prices (best first) |
bid_sizes | string | string | Comma-separated bid sizes at each price level |
ask_prices | string | string | Comma-separated ask prices (best first) |
ask_sizes | string | string | Comma-separated ask sizes at each price level |
Fetching Data
Use thepath from the list response. The download endpoint returns a 302 redirect to a signed URL; follow it with curl -L or equivalent.
Notes
- The orderbook is the YES orderbook. Bids are the raw YES bids from Kalshi. Asks are calculated by taking
1 - priceof the NO bids. If you need the raw, unconverted data, contact calder@predictiondata.dev. - Prices and quantities are rounded to 4 decimal places.
local_timestampis nanoseconds since Unix epoch (when our servers captured the message).exchange_timestampis when the event occurred on Kalshi. In CSV it is an RFC 3339 string; in Parquet it is stored asTimestampMicros.- Each export covers one UTC day (00:00:00 to 23:59:59).