Kalshi API 資料
Kalshi API 資料:市場、委託簿、K 線與交易
Kalshi 公開 API 回傳系列、事件、市場、當前訂單簿、燭台與交易,且這些呼叫皆不需 API 金鑰。它不回傳過去時刻的訂單簿。本頁將 Kalshi 各類數據對應至端點,展示呼叫方式,並以 1.5 十億筆記錄訂單簿填補此缺口。
Kalshi API 資料是由 Kalshi 的 Trade API(位於 https://external-api.kalshi.com/trade-api/v2.)提供的交易所資料。公開市場資料涵蓋系列、事件、市場、當前委託簿、K 線與交易;結算後超過公布截止時間的資料移至 /historical 端點。帳戶資料(訂單、成交、持倉)需 RSA 簽名的 API 金鑰請求。
一個 Kalshi 訂單簿,錄製版本
複製自 DepthFeed 檔案庫中一筆 BTC 15 分鐘觀察。Kalshi 訂單簿回應帶有相同兩組當前買盤梯隊。
價格為 p 的 yes bid 等同於價格為 1 − p 的 no offer,因此隱含的 yes ask 為 1 − 最佳 no bid。: 完整深度 REST 輪詢.
- 是美元 / 是價格
- 靜態 yes 買單為價格與合約數量,最佳優先。
- 無美元 / 無價格
- 靜態 no 買單。每個為 yes 報價 1 − 價格,產生隱含 yes 賣價(此處為 0.33)。
- 代號
- 確切的市場代號,包含行權價。
- recv_ts_ms
- DepthFeed 的接收時間為 epoch 毫秒;Kalshi 的訂單簿回應無交易所時間戳。
Kalshi API 資料一覽
- 基礎 URL
- https://external-api.kalshi.com/trade-api/v2
- 市場數據認證
- 系列、事件、市場、訂單簿、K 線與交易皆無。
- 帳戶數據驗證
- RSA 簽名 API 金鑰標頭
- 訂單簿
- 目前買賣盤梯隊;賣盤 = 1 − 最佳對手買盤
- K 線期間
- 1 分鐘 · 1 小時 · 1 天
- 較舊的已結算資料
- 公布的截止時間之後的 /historical 端點
- 過去訂單簿
- Kalshi 未提供;DepthFeed 自 2026-01-08 開始錄製。
使用 curl 抓取 Kalshi API 資料
以下所有呼叫均為公開。請以第一個回應的代號替換;時間戳為 Unix 秒。
# Open markets in one series
curl -s "https://external-api.kalshi.com/trade-api/v2/markets?series_ticker=KXBTC15M&status=open&limit=5"
# The current order book for one exact market
curl -s "https://external-api.kalshi.com/trade-api/v2/markets/<market_ticker>/orderbook"
# Hourly candles for that market
curl -s "https://external-api.kalshi.com/trade-api/v2/series/KXBTC15M/markets/<market_ticker>/candlesticks?start_ts=1793232000&end_ts=1793318400&period_interval=60"
# Recent trades, then the cutoff for older ones
curl -s "https://external-api.kalshi.com/trade-api/v2/markets/trades?ticker=<market_ticker>&limit=100"
curl -s "https://external-api.kalshi.com/trade-api/v2/historical/cutoff"- 追蹤游標欄位直到回傳空值。
- 將 yes 賣價讀作 1 − 最佳 no 買價;訂單簿無賣價陣列。
- 截止前結算的市場僅在 /historical 端點提供。
Kalshi API 資料
Kalshi API 回傳內容及來源
系列、事件與市場:階層結構
一個序列是重複出現的問題(KXBTC15M 是每 15 分鐘的比特幣),一個事件是它的單一實例,而一個市場是事件中的一個可交易的 yes/no 合約,其履約價在代碼中。GET /series/{series_ticker}、GET /events/{event_ticker} 和 GET /markets?series_ticker=… 會返回它們。使用完整的市場代碼作為連接鍵:事件代碼會命名多個價格差異很大的市場。
無 API 金鑰的市場數據
Kalshi 文件說明其市場資料端點為公開:系列、事件、市場、委託簿、K 線與交易不需 API 金鑰標頭。正式基底 URL 為 https://external-api.kalshi.com/trade-api/v2; 舊 api.elections.kalshi.com 主機提供相同市場,不僅限選舉。帳戶端(訂單、成交、持倉)與 WebSocket 資料流需金鑰。
委託單簿:僅買價,且僅限當前
GET /markets/{ticker}/orderbook 回傳兩個買方梯隊,yes 和 no,以美元價格及合約數量表示(orderbook_fp.yes_dollars 和 no_dollars)。無賣方陣列:no 買單價格 p 即為 yes 賣單價格 1 − p,因此本頁記錄範例中最佳 yes 買單為 0.32,最佳 no 買單為 0.67,隱含 yes 賣單為 0.33。回應為當前訂單簿;稍後再次呼叫不會告知過去狀態。
K 線:1 分鐘、每小時或每日
GET /series/{series_ticker}/markets/{ticker}/candlesticks 接受 start_ts、end_ts 和週期間隔,單位為 1、60 或 1440 分鐘。每根 K 線包含 yes 買單、yes 賣單及成交價的開、高、低、收,還有成交量與未平倉合約數。這是繪製市場圖表最便宜的方式,但記錄的是成交價格及訂單簿頂端收盤價,非可用掛單量。
交易,以及舊數據的流動
GET /markets/trades 列出已執行交易,支援游標分頁。Kalshi 將資料分為即時與歷史層級:市場在 GET /historical/cutoff 公布的截止時間前結算,該市場及其 K 線由 GET /historical/markets 和 /historical/markets/{ticker}/candlesticks 提供,較舊交易由 GET /historical/trades 提供。使用前請閱讀各資料類型截止時間,勿假設即時端點包含全部資料。
速率限制與輪詢
Kalshi 的限制為每層級的代幣預算,分別有讀取與寫入配額,而非單一請求速率。對每個開放市場輪詢訂單簿端點會迅速耗盡讀取配額。遇到 429 回應時採用指數退避,使用游標分頁直到空頁,並在需要每筆訂單簿變動即時更新時使用認證 WebSocket。
Kalshi API 無法提供的內容
沒有任何 Kalshi 端點會返回一小時、一天或一個月前的 Yes 與 No 委託梯子。需要在過去決策時間點的價差與掛單量的回測,必須使用當時實時記錄的委託簿。DepthFeed 自 2026 年一月起已輪詢完整深度的 Kalshi 委託簿:截至 21 六月 2026 年,累積超過 1.5 億快照,涵蓋 2,600,000+ 市場,透過 REST 或 197 個封存的每日 Parquet 檔案提供。
添加 Kalshi API 未保留的訂單簿
Kalshi 公開 API 免費提供市場、燭台與交易資料。當回測需要過去時刻的靜態 Yes 與 No 訂單梯隊時,請使用免費金鑰查詢 DepthFeed 記錄的訂單簿,或購買整個 UTC 日的 Parquet 檔案。
