Skip to main content

Overview

As trading activity on Kalshi grows, so does the volume of settled markets, completed trades, and fulfilled orders. To keep the live API fast and responsive, Kalshi partitions exchange data into live and historical tiers. Live endpoints return current and recent data: open and recently closed markets, active orders, and recent fills. Older data that is no longer actively referenced is made available through a separate set of historical endpoints. This separation means that if you query for data that is older than the cutoff (described below), you’ll need to use the historical API instead of the standard live endpoints. The partitioning happens for markets, market_candlesticks, trades, orders, and market_positions. Old Events and Series will always still be available through their original endpoints.

How It Works

The boundary between live and historical data is defined by a set of cutoff timestamps, which you can retrieve at any time via GET /historical/cutoff. Any record older than the relevant cutoff must be queried through the corresponding historical endpoint. The cutoff timestamps will be regularly updated, advancing forward over time. The target window for live data is 3 months.

Cutoff Timestamps

Resting (active) orders are unaffected and always appear in GET /portfolio/orders, regardless of the cutoff. Likewise, unsettled positions always appear in GET /portfolio/positions.

Historical Endpoints

Impacted Live Endpoints

The following live endpoints will no longer return data older than the corresponding cutoff:

Migration Guide

  1. Fetch the cutoff: call GET /historical/cutoff to get the current timestamps.
  2. Route queries accordingly: if the data you need is older than the relevant cutoff, use the corresponding GET /historical/... endpoint instead.
  3. Combine results if needed: for use cases like building a complete fill history, query both the live and historical endpoints and merge the results.
The historical endpoints support the same cursor-based pagination as their live counterparts.