Discovering Kalshi Markets
Useclient.markets.search() with venue="Kalshi" to retrieve available Kalshi instruments. Filter by status or keyword to narrow results.
client.markets.match() to look up a specific Kalshi market by ticker or slug when you already know its identifier:
instrument_id. Both instruments share a common generic_asset_id that you can use for cross-venue routing.
You can inspect the live order book for a specific Kalshi instrument or retrieve the aggregated view across all venues:
Submitting Orders to Kalshi
DIRECT routing to Kalshi
Userouting.mode = "DIRECT" with a Kalshi instrument_id to route an order to a specific Kalshi contract. Retrieve the instrument_id from a prior search() or match() call.
Cross-venue routing with BEST_PRICE
Userouting.mode = "BEST_PRICE" with a generic_asset_id to let Molecule select whichever connected venue — including Kalshi — currently offers the best available price for the asset.
SPLIT:
Notes
- Kalshi instruments require a venue-specific
instrument_idforDIRECTrouting. Retrieve this fromclient.markets.search(venue="Kalshi")orclient.markets.match(). - To route across Kalshi and other connected venues without targeting a specific instrument, use
generic_asset_idwithBEST_PRICEorSPLITrouting mode. - Each binary Kalshi market produces two separate instruments (YES and NO). Confirm the
outcomefield on the instrument before submitting aDIRECTorder to ensure you are trading the intended side. - The
client_order_idfield acts as the idempotency key for simple orders. Resubmitting the sameclient_order_idwith an identical payload is safe; resubmitting with a different payload returns aConflictError.
Use the Demo venue to validate your integration before sending orders to
live Kalshi. Demo provides the same API surface without live execution risk.
Switch to Kalshi by changing
venue="Kalshi" in your market queries and
using a Kalshi instrument_id or a generic_asset_id that maps to Kalshi
instruments.