Endpoints
- Production
- Demo
Order Entry Host:
mm.fix.elections.kalshi.comMarket Data Host: marketdata.fix.elections.kalshi.comSession Configuration
All connections use FIXT.1.1 with application version FIX50SP2.
Only one FIX connection is allowed per API key. Separate API keys are required for concurrent connections.
SSL/TLS
You must use TLS 1.2 or higher (not plain TCP) to connect to the FIX gateway. Cipher suites follow AWS Network Load Balancer TLS policies. If your FIX implementation does not support native TLS connections, use a local proxy such as stunnel. To obtain the server certificate for pinning on the initiator side: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. Members on the Premier tier or above can contact institutional@kalshi.com to provision a PrivateLink endpoint for their AWS account. Members on the Prime tier or above can also contact institutional@kalshi.com to discuss VPC peering for production connectivity from their AWS VPC.Rate Limits
- Limit: FIX application messages use the same token model, token costs, and Read/Write buckets as the equivalent REST API operations.
- Scope: Application messages only (from client to server)
- Excluded: Logout (35=5), Heartbeat (35=0), TestRequest (35=1)
- Logon (35=A) is rate-limited.
- Order-entry and RFQ messages use the Write bucket. See Rate Limits and Tiers for tier budgets and token-cost behavior.
- Order-entry messages (35=D, 35=F, 35=G) carrying
ExDestination(tag 100) with a value>= 1are billed to a per-shard Write budget. RFQ quote accepts (35=D carryingQuoteID) always bill the unscoped Write budget. - Mass Cancel Request (35=q) is limited to 1 request/second.
Maintenance Window
See Maintenance and Pauses for scheduled maintenance times and the difference between trading pauses and exchange pauses. Sessions may be disconnected during the maintenance window. Kalshi does not initiate sequence number resets during maintenance; clients should reset sequence numbers on their side when reconnecting. KalshiRT sessions retain message continuity across the maintenance window. If your KalshiRT session is disconnected, you can request retransmission of any messages missed during the downtime after reconnecting.CancelOrderOnPause
To control what happens to your resting orders during a pause, set tag21006 (CancelOrderOnPause) on your New Order Single (35=D) messages: