Skip to main content
GET
/
api
/
v1
/
kalshi
/
market
/
orderbook-summary
Get Kalshi Orderbook Summary
curl --request GET \
  --url https://api.entityml.com/api/v1/kalshi/market/orderbook-summary \
  --header 'Authorization: <authorization>'
{
  "market_ticker": "<string>",
  "date": "<string>",
  "resolution_seconds": 123,
  "data_points": 123,
  "data": [
    {
      "timestamp": 123,
      "quote_count": 123,
      "is_forward_filled": true,
      "best_bid": 123,
      "best_bid_size": 123,
      "best_ask": 123,
      "best_ask_size": 123,
      "mid_price": 123,
      "spread": 123,
      "best_bid_ohlc": {},
      "best_ask_ohlc": {},
      "mid_price_ohlc": {},
      "spread_ohlc": {}
    }
  ]
}

Request

Headers

Authorization
string
required
Bearer token. Example: Bearer YOUR_API_KEY

Query Parameters

ticker
string
required
The Kalshi market ticker. Values are normalized to uppercase.
date
string
The UTC date to summarize, formatted as YYYY-MM-DD. Required unless start_timestamp and end_timestamp are provided.
start_timestamp
integer
Inclusive lower timestamp bound in Unix seconds or milliseconds. Must be provided with end_timestamp.
end_timestamp
integer
Inclusive upper timestamp bound in Unix seconds or milliseconds. Must be provided with start_timestamp.
resolution
integer
Time bucket resolution in seconds. Default: 60. Valid range: 1 to 3600.
Use date for a full UTC day, or use start_timestamp and end_timestamp for a custom UTC window. Custom windows hydrate book state from earlier records in the loaded UTC date partitions and emit buckets inside the requested range.

Response

market_ticker
string
The Kalshi market ticker.
date
string
The requested date.
resolution_seconds
integer
The bucket size used to build the summary.
data_points
integer
Number of summary points returned.
data
array
Array of time buckets. Each bucket includes close values and OHLC candles:
Kalshi records from 2026-03-31 through 2026-04-24 can have null price payloads for affected tickers. In that window, summaries can show quote_count without populated bid, ask, midpoint, or spread values. See Data Quality.

Example

from entityml import EntityMLClient

client = EntityMLClient(api_key="YOUR_API_KEY")

summary = client.kalshi.get_orderbook_summary(
    ticker="KXBTC-26FEB2606-B60125",
    start_timestamp=1772103600000,
    end_timestamp=1772107199999,
    resolution=60,
)

print(summary["data_points"])

Example response

{
  "market_ticker": "KXBTC-26FEB2606-B60125",
  "date": null,
  "start_timestamp": 1772103600000,
  "end_timestamp": 1772107199999,
  "resolution_seconds": 60,
  "data_points": 1,
  "data": [
    {
      "timestamp": 1772103660000,
      "quote_count": 3,
      "is_forward_filled": false,
      "best_bid": 0.58,
      "best_bid_size": 12,
      "best_ask": 0.6,
      "best_ask_size": 14,
      "mid_price": 0.59,
      "spread": 0.02,
      "best_bid_ohlc": { "open": 0.57, "high": 0.58, "low": 0.57, "close": 0.58 },
      "best_ask_ohlc": { "open": 0.61, "high": 0.61, "low": 0.6, "close": 0.6 },
      "mid_price_ohlc": { "open": 0.59, "high": 0.595, "low": 0.585, "close": 0.59 },
      "spread_ohlc": { "open": 0.04, "high": 0.04, "low": 0.02, "close": 0.02 }
    }
  ]
}