Skip to main content
Cross-venue routing lets you buy or sell a large prediction market position by splitting the order across matched markets on Polymarket and Kalshi at the same time. Instead of exhausting a thin book on one venue or moving the price against yourself, Kairos splits your size across both legs simultaneously — giving you a better average fill price and deeper effective liquidity.
All routing endpoints require the API key triple (X-Client-Id / X-Api-Key / X-Api-Secret). Base URL: https://execution.kairos.trade.

How cross-venue routing works

When Kairos identifies that a market on Polymarket and a market on Kalshi are tracking the same event, it creates a market link — a verified mapping between the two venues. When you route through a link, Kairos:
  1. Computes an optimal split between the two legs based on available liquidity and prices.
  2. Submits orders on both venues simultaneously.
  3. Tracks a parent routed order with two leg orders underneath.
  4. Lets you close the full position in one call.

Before routing, you need a market link connecting the two venues. Use POST /orders/market-links to create or preview one.
Example response:
Pass "preview": true to validate the link and see the matched outcomes without persisting it. Use this to confirm the mapping is correct before committing.
Many popular matched markets already have pre-approved links. Use GET /orders/route-quote with existing link_id values to check — you may not need to create a new one.

Step 2 — Get a route quote

Before committing to a routed trade, fetch a price quote across both legs. This shows you the expected split, prices on each venue, and total cost.
Example response:
Review the blended_avg_price and total_cost_usdc before deciding to execute.

Step 3 — Check the fee model

View the per-leg fee structure for a market link before trading:
Example response:

Step 4 — Execute the route

When you’re ready to trade, call POST /orders/route-buy. Kairos executes both legs simultaneously.
Example response:
The max_slippage field (expressed as a decimal, e.g. 0.005 = 0.5%) protects you from adverse fills if prices move between quote and execution. If either leg would exceed the slippage limit, the route order is rejected.

Step 5 — List your routed orders

Retrieve all your routed parent orders and their individual legs:

Step 6 — Close a routed position

To unwind your cross-venue position, call POST /orders/route-close. Kairos submits sell orders across both legs simultaneously, mirroring the same split logic used on entry.
Example response:

Full workflow at a glance

Trading

Single-venue order entry and lifecycle management.

Combos & Parlays

Multi-market combo positions on Polymarket.