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.
Kalshi’s FIX implementation uses FIXT.1.1 with application version FIX50SP2. Members on the Premier tier or above have FIX access by default. For all other tiers, contact institutional@kalshi.com to inquire about access.
FIX Dictionary
Download the Kalshi-specific FIX dictionary for import into your FIX engine:
If you are using a FIX engine such as QuickFIX/J, QuickFIX/N, or quickfix-go, the standard header and trailer fields below are managed automatically by the library. This section is primarily a reference for custom implementations or debugging.
Standard Header
Every FIX message begins with the following fields:
| Tag | Name | Type | Required | Description |
|---|
| 8 | BeginString | String | Y | Always FIXT.1.1 |
| 9 | BodyLength | Int | Y | Message length in bytes, from the tag after BodyLength up to (but not including) the CheckSum field. Must be the second field. |
| 35 | MsgType | String | Y | Identifies the message type. Must be the third field. |
| 49 | SenderCompID | String | Y | Your FIX API Key (UUID format) when sending; Kalshi when receiving. |
| 56 | TargetCompID | String | Y | Session identifier (e.g. KalshiRT, KalshiNR) when sending; your API key when receiving. |
| 34 | MsgSeqNum | Int | Y | Monotonically increasing sequence number, starting at 1. |
| 52 | SendingTime | UTCTimestamp | Y | Time the message was sent, in UTC. Format: YYYYMMDD-HH:MM:SS.mmm. Must be within 30 seconds of server time or the message is rejected (SessionRejectReason=10). |
| 43 | PossDupFlag | Boolean | N | Y if the message is a possible duplicate of a previously sent message (used during retransmission). |
| 97 | PossResend | Boolean | N | Y if the message may contain information that has already been sent under a different sequence number. |
| 122 | OrigSendingTime | UTCTimestamp | N | Original SendingTime of a message being resent. Required when PossDupFlag=Y. |
Standard Trailer
Every FIX message ends with:
| Tag | Name | Type | Required | Description |
|---|
| 10 | CheckSum | String | Y | Three-character checksum. Calculated by summing every byte in the message up to (but not including) the CheckSum field, then taking modulo 256. Always three digits, zero-padded (e.g. 007). |
Supported MsgTypes
Session-Level (all sessions)
| MsgType | Name | Direction |
|---|
| A | Logon | Both |
| 0 | Heartbeat | Both |
| 1 | TestRequest | Both |
| 2 | ResendRequest | Both (KalshiRT/KalshiRFQ only) |
| 3 | Reject | Server -> Client |
| 4 | SequenceReset | Both (KalshiRT/KalshiRFQ only) |
| 5 | Logout | Both |
Application-Level
Order Entry
| MsgType | Name | Sessions | Direction |
|---|
| D | NewOrderSingle | KalshiNR, KalshiRT | Client -> Server |
| F | OrderCancelRequest | KalshiNR, KalshiRT | Client -> Server |
| G | OrderCancelReplaceRequest | KalshiNR, KalshiRT | Client -> Server |
| q | OrderMassCancelRequest | KalshiNR, KalshiRT | Client -> Server |
| 8 | ExecutionReport | KalshiNR, KalshiRT, KalshiDC | Server -> Client |
| 9 | OrderCancelReject | KalshiNR, KalshiRT | Server -> Client |
| r | OrderMassCancelReport | KalshiNR, KalshiRT | Server -> Client |
| j | BusinessMessageReject | All | Server -> Client |
Order Groups
| MsgType | Name | Sessions | Direction |
|---|
| UOG | OrderGroupRequest | KalshiNR, KalshiRT | Client -> Server |
| UOH | OrderGroupResponse | KalshiNR, KalshiRT | Server -> Client |
Drop Copy
| MsgType | Name | Sessions | Direction |
|---|
| AD | TradeCaptureReportRequest | KalshiDC | Client -> Server |
| AE | TradeCaptureReport | KalshiDC | Server -> Client |
| U1 | EventResendRequest | KalshiDC | Client -> Server |
| U2 | EventResendComplete | KalshiDC | Server -> Client |
| U3 | EventResendReject | KalshiDC | Server -> Client |
Post Trade
| MsgType | Name | Sessions | Direction |
|---|
| UMS | MarketSettlementReport | KalshiPT | Server -> Client |
RFQ
| MsgType | Name | Sessions | Direction |
|---|
| R | QuoteRequest | KalshiRT, KalshiRFQ | Both |
| b | QuoteRequestAck | KalshiRT | Server -> Client |
| S | Quote | KalshiRT, KalshiRFQ | Both |
| AI | QuoteStatusReport | KalshiRFQ | Server -> Client |
| Z | QuoteCancel | KalshiRFQ | Client -> Server |
| U9 | QuoteCancelStatus | KalshiRFQ | Server -> Client |
| AG | QuoteRequestReject | KalshiRFQ | Server -> Client |
| UA | AcceptQuote | KalshiRT | Client -> Server |
| UC | AcceptQuoteStatus | KalshiRT | Server -> Client |
| U7 | QuoteConfirm | KalshiRFQ | Client -> Server |
| U8 | QuoteConfirmStatus | KalshiRFQ | Server -> Client |
| UE | RFQCancel | KalshiRT | Client -> Server |
| UB | RFQCancelStatus | KalshiRT | Server -> Client |