Market data is available on the dedicated KalshiMD session. It supports order book snapshots and incremental updates for margin 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 margin 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 | Margin 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. Margin 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