Market data is available on the dedicated KalshiMD session. It supports order book snapshots and incremental updates for event-contract markets. Subscriptions are identified byDocumentation Index
Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt
Use this file to discover all available pages before exploring further.
Symbol<55>.
KalshiMD does not support message retransmission. Use ResetSeqNumFlag<141>=Y on Logon.
Message Flow
Market Data Request (35=V)
| Tag | Name | Type | Required | Description |
|---|---|---|---|---|
| 263 | SubscriptionRequestType | Char | Y | 0=Snapshot, 1=Snapshot plus updates, 2=Disable previous snapshot plus update request |
| 146 | NoRelatedSym | Integer | C | Required for 263=0 and 263=1. For 263=2, the listed symbols are unsubscribed; omit to cancel all of the session’s subscriptions. |
| 55 | Symbol | String | C | Repeating group field. The market tickers to subscribe to or cancel. |
Example snapshot request
Example snapshot-plus-updates subscription
Example cancel a symbol
Example cancel all subscriptions
Market Data Snapshot Full Refresh (35=W)
Sent in response to a snapshot request and immediately after a snapshot-plus-updates subscription is accepted. Correlate bySymbol<55>.
| Tag | Name | Type | Required | Description |
|---|---|---|---|---|
| 55 | Symbol | String | Y | Market ticker. |
| 268 | NoMDEntries | Integer | Y | Number of book levels. |
| 269 | MDEntryType | Char | Y | Repeating group field. 0=Bid, 1=Offer |
| 270 | MDEntryPx | Price | Y | Book level price in dollars. |
| 271 | MDEntrySize | Quantity | Y | Book level size in contracts. |
Example snapshot response
Market Data Incremental Refresh (35=X)
Sent after a subscribed market’s aggregated book levels change. Correlate bySymbol<55> on each entry.
| Tag | Name | Type | Required | Description |
|---|---|---|---|---|
| 268 | NoMDEntries | Integer | Y | Number of changed book levels. |
| 279 | MDUpdateAction | Char | Y | Repeating group field. 1=Change, 2=Delete |
| 55 | Symbol | String | Y | Repeating group field. Market ticker. |
| 269 | MDEntryType | Char | Y | Repeating group field. 0=Bid, 1=Offer |
| 270 | MDEntryPx | Price | Y | Changed book level price in dollars. |
| 271 | MDEntrySize | Quantity | Y | New book level size in contracts. 0.00 when deleting a level. |
Example incremental update
Market Data Request Reject (35=Y)
Sent when a market data request cannot be accepted. Unknown market tickers are not currently rejected; the server sends an empty snapshot if it has no order book for the requested symbol.| Tag | Name | Type | Required | Description |
|---|---|---|---|---|
| 281 | MDReqRejReason | Char | N | Reject reason. |
| 58 | Text | String | N | Human-readable rejection detail. |
Common Reject Reasons (281)
2=Insufficient bandwidth, including request or session symbol limits4=UnsupportedSubscriptionRequestType