Overview
Best bid and ask price and size for each market at every tick. Each row represents the top-of-book state at the time of capture. 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 (RFC 3339, microsecond precision) |
bid_price | decimal | float64 (nullable) | Best bid price |
bid_size | decimal | float64 (nullable) | Best bid size |
ask_price | decimal | float64 (nullable) | Best ask price |
ask_size | decimal | float64 (nullable) | Best ask size |
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).