Kalshi historical orderbook
curl --request GET \
--url https://api.probsights.com/v1/historical/kalshi/orderbook \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.probsights.com/v1/historical/kalshi/orderbook"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.probsights.com/v1/historical/kalshi/orderbook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"snapshots": [
{}
],
"pagination": {},
"market_id": "<string>",
"timestamp": 123,
"yes_bids": [
{}
],
"no_bids": [
{}
],
"best_yes_bid": 123,
"best_yes_ask": 123,
"mid": 123,
"spread": 123
}Historical
Kalshi historical orderbook
Full orderbook snapshots for Kalshi markets.
GET
/
v1
/
historical
/
kalshi
/
orderbook
Kalshi historical orderbook
curl --request GET \
--url https://api.probsights.com/v1/historical/kalshi/orderbook \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.probsights.com/v1/historical/kalshi/orderbook"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.probsights.com/v1/historical/kalshi/orderbook', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"snapshots": [
{}
],
"pagination": {},
"market_id": "<string>",
"timestamp": 123,
"yes_bids": [
{}
],
"no_bids": [
{}
],
"best_yes_bid": 123,
"best_yes_ask": 123,
"mid": 123,
"spread": 123
}Returns full orderbook snapshots with YES bids, NO bids, and derived best bid/ask
from the YES perspective. Reads stored snapshots — no live Kalshi API calls on read.
Without
start_time / end_time, returns the most recent snapshots. With a time
range, downsampled to granularity buckets.
Request
https://api.probsights.com/v1/historical/kalshi/orderbook
Query parameters
string
required
Kalshi market ticker (e.g.
KXBTC15M-26JUL111100).string
Range start in Unix milliseconds. Must be set together with
end_time.string
Range end in Unix milliseconds.
string
default:"1m"
Bucket size for range queries:
1m or 5m.integer
default:"100"
Max rows per page (1–200).
string
Cursor from the previous response
pagination.pagination_key.Response
array
Array of orderbook snapshot objects.
object
Pagination metadata (
limit, count, has_more, pagination_key).Snapshot fields
string
Kalshi market ticker.
integer
Snapshot time in Unix milliseconds.
array
YES bid ladder (
price string, size number).array
NO bid ladder.
number
Top-of-book YES bid.
number
Top-of-book YES ask.
number
Mid price when both sides exist.
number
best_yes_ask - best_yes_bid.Examples
Latest snapshots
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.probsights.com/v1/historical/kalshi/orderbook?market_id=KXBTC15M-26JUL111100&limit=5"
import requests
response = requests.get(
"https://api.probsights.com/v1/historical/kalshi/orderbook",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"market_id": "KXBTC15M-26JUL111100", "limit": 5},
)