Two ways to use the network
Request liquidity
Submit one normalized RFQ to Kairos. Kairos selects the venue-adjacent gateway, fans the request out through enabled venue-native RFQ rails, normalizes the responses, and returns the quotes to you.User → Kairos → venue RFQ systems → venue market makers → Kairos → User
Gotcha: requester-side fanout is not live yet. Venue submission is enabled
only after each adapter completes venue certification, and no venue reports
requester_rfq today. A venues entry therefore comes back as an excluded
target with a reason rather than a live fanout. Read the runtime capability
matrix at /v1/venues/capabilities before selecting a venue; Kairos does not
synthesize RFQs from order books.Provide liquidity
Market makers receive a normalized stream of open RFQs discovered on supported venues. A response retains itsorigin_venue and origin_rfq_id, allowing
Kairos to route the quote back to the exact native request.
Venue RFQs → Kairos aggregation → Market maker → Kairos → originating venue
The initial Kalshi integration listens over FIX rather than WebSocket. It
reports responder_rfq: true, two_way: false, partials: false, and USD
only.
Gotcha: a maker quote is recorded but not yet relayed. Native maker quote
submission remains disabled until venue conformance testing is complete, so a
quote you post against a venue-originated RFQ is stored by Kairos and does not
reach the venue.
polymarket, opinion, predictfun, and polymarket_us
are registered but disabled pending adapter conformance.Where to connect
The public API is active-active — submit to either hostname. FIX clients connect
to the separate
fix.kairos.trade edge rather than to these hostnames.
Regional routing
priority_venue requests routing through the region closest to the selected
venue and fixes the RFQ’s home_region. If it is omitted, Kairos uses the
ingress gateway region. It must name a venue Kairos knows and, when venues is
also supplied, must be one of them; otherwise the request is rejected as
invalid.
Consistency and safety
These five rules hold across REST, WebSocket, and FIX. 1. Every mutation requires an idempotency key. 2. Quotes carry a revision and a per-side expiry that may not outlive the RFQ. 3. Acceptance is a reservation, not a fill. It atomically binds revision, side, quantity, expected price, and the immutable mapping snapshot, and reserves the quantity on both the RFQ and the price level. The acceptance starts atpending_routing and settles asynchronously.
4. WebSocket events support cursor-based replay and may be processed
idempotently after reconnect.
5. Cross-venue mapping is a routing hint, not a guarantee that contract
rules or settlement terms are equivalent.
Next
- REST and streaming — authentication, scopes, every endpoint, lifecycle states, errors, and the replayable event stream.
- FIX protocol — session setup, application messages, extension tags, and reject codes.

