Skip to main content

Kalshi Trade Connector

Features​

fix-kalshiConnector Key
Instruments
FX
Request Types
SUBMITCANCELREPLACE
Order Types
LIMIT
Time In Force
GTCIOCGTDFOK
Order ID Mapper
COMPOSITE
✗
Order Status Request
✓
Cancel On Disconnect
✓
Commission
✓
Post Only
✓
Fast Cancel
✓
Fast Replace

Notes​

Description​

Kalshi FIX connector can be configured either for Predictions or Perps trading.

NameHostPortTarget Comp ID
Predictionsmm.fix.elections.kalshi.com8228KalshiNR
Perpsmargin-mm.fix.elections.kalshi.com8228KalshiNR

Cancel On Disconnect​

Kalshi supports Cancel On Disconnect and connector enables it by default: cancelOnDisconnect = true.

Connectivity​

Kalshi FIX API requires secure (TLS) connection:

[KALSHI]
client = yes
accept = 18228
connect = mm.fix.elections.kalshi.com:8228
verify = 0
note

Only one FIX connection is allowed per API key. Separate API keys are required for concurrent connections.

Private Connectivity​

For participants requiring network-level isolation, Kalshi supports private connectivity via AWS PrivateLink. With PrivateLink, FIX traffic is routed entirely within the AWS backbone and never traverses the public internet.

Symbology​

Kalshi FIX does not have any specific schedule.

Sessions may be disconnected during the maintenance window. Kalshi does not initiate sequence number resets during maintenance.

Configuration​

Connector settings​

ParameterDefault ValueDescription
targetCompIdKalshiNRTargetCompID(56). Allowed values: KalshiNR - OE session without retransmission, KalshiRT - OE session with retransmission.
senderCompIdSenderCompID(49). FIX API Key (UUID format).
senderSubIdSenderSubID(50). Assigned value used to identify message originator. Clearing FCM sponsored access only.
useTraderfalseThe flag to define whether to use order TraderId as SenderSubID(50) in preference of senderSubId setting.
privateKeyRSA private key.
cancelOnDisconnecttrueCancel orders on any disconnection, including graceful logout.
messageRetentionPeriod24How long session messages are stored for retransmission, in hours. Max 72.
selfMatchPreventionSelf-trade prevention behavior: CANCEL_NEWEST, CANCEL_OLDEST, or CANCEL_BOTH.
cancelOrderOnPausetrueCancel order if trading is paused.
accountDefault AllocAccount(79). Subaccount number (0–63).
useAccountfalseThe flag to define whether to use order account in preference of default account.
parties[].partyIdFCM only. Sub-account identifier.
parties[].partyRoleFCM only. Allowed values: 24 - Customer Account.

Supported order attributes​

KeyDescription
79AllocAccount(79). Subaccount number (0–63).
50SenderSubID(50). Overrides senderSubId setting for a particular order request.
18Post only. '6' value used for post only orders submission.
100Exchange index. On event-contract sessions, omit or use -1 to auto-route by market ticker. This field should not be included for margin. It will be ignored. See Exchange Sharding.
2964Self-Match Prevention Type. Allowed values: 1 - Cancel Taker, 2 - Cancel Maker.
21006Cancel order if trading is paused. Allowed values: Y, N.

Config sample​

connectors {
KALSHI : ${template.connector.fix.kalshi} {
settings : {
host = "<STUNNEL_HOST>"
port = <STUNNEL_PORT>

senderCompId = "<API_KEY_UUID>"
targetCompId = "KalshiNR"

privateKey = "<PRIVATE_KEY>"
}
}
}