Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt

Use this file to discover all available pages before exploring further.

Market data is available on the dedicated KalshiMD session. It supports order book snapshots and incremental updates for event-contract markets. Subscriptions are identified by Symbol<55>. KalshiMD does not support message retransmission. Use ResetSeqNumFlag<141>=Y on Logon.

Message Flow

Market Data Request (35=V)

TagNameTypeRequiredDescription
263SubscriptionRequestTypeCharY0=Snapshot, 1=Snapshot plus updates, 2=Disable previous snapshot plus update request
146NoRelatedSymIntegerCRequired for 263=0 and 263=1. For 263=2, the listed symbols are unsubscribed; omit to cancel all of the session’s subscriptions.
55SymbolStringCRepeating group field. The market tickers to subscribe to or cancel.
Example snapshot request
8=FIXT.1.1|35=V|49=your-api-key|56=KalshiMD|263=0|146=1|55=KXNBAGAME-26MAY25NYKCLE-NYK|
Example snapshot-plus-updates subscription
8=FIXT.1.1|35=V|49=your-api-key|56=KalshiMD|263=1|146=1|55=KXNBAGAME-26MAY25NYKCLE-NYK|
Example cancel a symbol
8=FIXT.1.1|35=V|49=your-api-key|56=KalshiMD|263=2|146=1|55=KXNBAGAME-26MAY25NYKCLE-NYK|
Example cancel all subscriptions
8=FIXT.1.1|35=V|49=your-api-key|56=KalshiMD|263=2|

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 by Symbol<55>.
TagNameTypeRequiredDescription
55SymbolStringYMarket ticker.
268NoMDEntriesIntegerYNumber of book levels.
269MDEntryTypeCharYRepeating group field. 0=Bid, 1=Offer
270MDEntryPxPriceYBook level price in dollars.
271MDEntrySizeQuantityYBook level size in contracts.
Example snapshot response
8=FIXT.1.1|35=W|49=KalshiMD|56=your-api-key|55=KXNBAGAME-26MAY25NYKCLE-NYK|268=2|269=0|270=0.3500|271=10.00|269=1|270=0.6500|271=5.00|

Market Data Incremental Refresh (35=X)

Sent after a subscribed market’s aggregated book levels change. Correlate by Symbol<55> on each entry.
TagNameTypeRequiredDescription
268NoMDEntriesIntegerYNumber of changed book levels.
279MDUpdateActionCharYRepeating group field. 1=Change, 2=Delete
55SymbolStringYRepeating group field. Market ticker.
269MDEntryTypeCharYRepeating group field. 0=Bid, 1=Offer
270MDEntryPxPriceYChanged book level price in dollars.
271MDEntrySizeQuantityYNew book level size in contracts. 0.00 when deleting a level.
Example incremental update
8=FIXT.1.1|35=X|49=KalshiMD|56=your-api-key|268=1|279=1|55=KXNBAGAME-26MAY25NYKCLE-NYK|269=0|270=0.3500|271=15.00|

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.
TagNameTypeRequiredDescription
281MDReqRejReasonCharNReject reason.
58TextStringNHuman-readable rejection detail.

Common Reject Reasons (281)

  • 2=Insufficient bandwidth, including request or session symbol limits
  • 4=Unsupported SubscriptionRequestType