Skip to main content
GET
/
api
/
v1
/
kalshi
/
market
/
data
/
range
Get Kalshi Market Data Range
curl --request GET \
  --url https://api.entityml.com/api/v1/kalshi/market/data/range \
  --header 'Authorization: <authorization>'
{
  "market_ticker": "<string>",
  "start_timestamp": 123,
  "end_timestamp": 123,
  "data_count": 123,
  "data": [
    {}
  ],
  "pagination": {
    "limit": 123,
    "has_more": true,
    "next_cursor": "<string>"
  }
}

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.
start_timestamp
integer
required
Inclusive lower timestamp bound. Accepts Unix seconds or milliseconds.
end_timestamp
integer
required
Inclusive upper timestamp bound. Accepts Unix seconds or milliseconds.
cursor
string
Opaque cursor returned by the previous page for the same ticker and timestamp range.
limit
integer
Maximum number of records to return per page. Default: 10000. Max: 100000.

Response

market_ticker
string
The normalized Kalshi market ticker.
start_timestamp
integer
Inclusive lower timestamp bound normalized to milliseconds.
end_timestamp
integer
Inclusive upper timestamp bound normalized to milliseconds.
data_count
integer
Number of records returned in the current page.
data
array
Array of raw Kalshi records matching the requested range. Record shapes vary by event type.
pagination
object
Cursor pagination metadata.

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.entityml.com/api/v1/kalshi/market/data/range?ticker=KXBTC-26FEB2606-B60125&start_timestamp=1772103600000&end_timestamp=1772107199999&limit=500"

Example response

{
  "market_ticker": "KXBTC-26FEB2606-B60125",
  "start_timestamp": 1772103600000,
  "end_timestamp": 1772107199999,
  "data_count": 1,
  "data": [
    {
      "type": "snapshot",
      "ticker": "KXBTC-26FEB2606-B60125",
      "timestamp": "2026-02-26T11:01:16.000623+00:00",
      "epoch_ms": 1772103676000,
      "seq": null,
      "yes": [],
      "no": [[40, 14], [39, 290.81]]
    }
  ],
  "pagination": {
    "limit": 500,
    "has_more": false,
    "next_cursor": null
  }
}
next_cursor is opaque. Pass it back unchanged with the same ticker, start_timestamp, and end_timestamp to continue paging when has_more is true.