Prediction markets are fragmented across exchanges. Each one has its own authentication, rate limits, data formats, and settlement mechanics. Building serious infrastructure means maintaining five separate integrations.
Kairos collapses that complexity into a single enterprise REST and WebSocket API, the institutional layer for prediction markets. Market data, order execution, portfolio analytics, and on-chain settlement, unified across Kalshi, Polymarket, and every major venue.
Most providers ship one of these. Kairos ships all three in a single institutional prediction market trading API, so exchanges, apps, and quant desks stop stitching together separate data vendors to cover one asset class.
Orders, batch operations, and the full on-chain settlement layer across four venues through one integration.
client_order_id idempotency, so replays never double-fillA full prediction market data API, from trending markets and search down to the raw tape, normalized across every venue.
The social and analytics layer that powers copy trading, independently useful for research tools and whale watching.
Split USDC into YES and NO inventory, quote both sides, merge to recycle capital without waiting months for resolution. The full settlement layer, exposed as API primitives: an institutional platform for prediction markets.
trade:execute, trade:read, position:read) + IP whitelisting# Recycle matched inventory, no waiting
# for resolution
POST /exchanges/polymarket/ctf/merge
{
"condition_id": "0x1a2b3c...",
"market_id": "570362",
"amount": 500
}
# burns 500 YES + 500 NO, returns 500 USDC
# booked as two synthetic sells at 0.50
A single API integration gives your product access to live order books, execution, and market data across all major venues, without direct exchange relationships, venue-specific authentication, or fragmented data pipelines. Build a prediction markets tab, a dedicated trading product, or embed event contracts directly into your existing app.
wss://stream.kairos.trade/ws# One query. Every venue.
GET /api/markets/discover/v2
?sort_by=volume_1h
{
"markets": [
{ "provider": "kalshi",
"ticker": "FED-23SEP", "price": 0.47 },
{ "provider": "polymarket",
"ticker": "570362", "price": 0.55 },
{ "provider": "predictfun",
"ticker": "gov-shut", "price": 0.18 }
],
"total": 4812, "offset": 0, "limit": 50
}
# Discover markets across all venues
curl https://data.kairos.trade/api/markets/discover/v2 \
-H "X-Client-Id: kairos_ck_your_id" \
-H "X-Api-Key: your_api_key" \
-H "X-Api-Secret: your_secret"
# Submit a limit order (custodial lane)
curl -X POST https://execution.kairos.trade/orders \
-H "X-Client-Id: kairos_ck_your_id" \
-H "X-Api-Key: your_api_key" \
-H "X-Api-Secret: your_secret" \
-H "Content-Type: application/json" \
-d '{
"exchange_id": "kalshi",
"market_id": "FED-23SEP",
"outcome": "Yes",
"side": "buy",
"kind": "limit",
"quantity": "500",
"price": "0.47",
"time_in_force": "GTC",
"client_order_id": "desk-001"
}'
# 200 = validated + enqueued. Track the fill on
# GET /orders/{order_id} or the /ws stream.
// Same three headers on the upgrade
// request. No query-string tokens.
const ws = new WebSocket(
'wss://execution.kairos.trade/ws',
{ headers: {
'X-Client-Id': 'kairos_ck_your_id',
'X-Api-Key': 'your_api_key',
'X-Api-Secret': 'your_secret'
} }
);
ws.send(JSON.stringify({
type: "submit_order",
request_id: "order-001",
payload: {
exchange_id: "polymarket",
market_id: "570362",
outcome: "Yes",
side: "buy",
kind: "limit",
quantity: "100",
price: "0.45",
time_in_force: "GTC"
}
}));
// order_response, then order_update / fill
// frames stream back on the same socket.
Fees are set per credential against your volume, venue mix, and whether you are taking or making. Talk to the team and we will quote yours.
Exchange and network fees pass through at cost. GET /orders/fee-quote returns the platform fee, the venue fee, and the all-in cost of a trade before you submit it, priced off the live book by the same engine that computes the fee at fill time.
An institutional prediction market API gives trading firms and apps programmatic access to event markets: market data, order execution, and settlement, with production-grade controls like scoped keys, IP whitelisting, and rate limits. Kairos provides all of this across four venues through one REST and WebSocket integration.
Order entry runs on Kalshi (custodial and self-custody lanes), Polymarket, Predict.fun, and Hyperliquid, and market data covers every venue Kairos ingests. Cross-venue matching and identifier resolution mean the same event is addressable through one canonical Kairos market id on every venue.
Both, plus a third layer most providers skip. The API covers execution (orders, batch cancel, cancel-all, CTF split/merge/redeem), market data (OHLCV candles, the full trade tape, discovery, search, resolutions, sports, perpetuals), and trader intelligence (realized-PnL time series, positions, exposure, top holders, wallet fill history) in one integration.
Direct venue APIs each have their own authentication, rate limits, data formats, and settlement mechanics, so four venues means four integrations. Kairos consolidates them behind one set of credentials. For a deep dive on the individual venue APIs, see our Kalshi API guide and Polymarket API guide.
Pricing is set per credential against your volume, venue mix, and whether you are taking or making, so it is quoted rather than published. Talk to the team for yours. Exchange and network fees always pass through at cost, and GET /orders/fee-quote returns the platform fee, the venue fee, and the all-in cost of a prospective trade before you submit it, priced off the live book by the same engine that computes the fee at fill time.
Data API limits are per route on a sliding window: 100 requests per minute by default, up to 500 on candles and down to 30 on the heaviest discovery feeds, with 429s carrying Retry-After. Execution is capped at 5 orders per second per user, and idempotent replays of the same client_order_id never consume a slot. WebSocket connections are capped at 10 per user. Higher limits are available per credential. Talk to the team.
Three headers on every request: X-Client-Id (your kairos_ck_… client id), X-Api-Key, and X-Api-Secret. The same three headers authenticate the WebSocket upgrade, and there are no query-string tokens. Credentials carry scopes (trade:execute, trade:read, position:read) and optional IP whitelisting, both enforced per request.
No. There are two lanes. The custodial lane (POST /orders) has Kairos sign and route on your behalf, acknowledging asynchronously once the order is validated and enqueued. The self-custody lane, for allow-listed institutional accounts, has Kairos build the EIP-712 payload (POST /v2/orders/intent), you sign it with your own key, and submission (POST /v2/orders/submit) returns the venue result synchronously.
Schedule a demo with the team. You will get scoped API keys, IP whitelisting for production, and integration support across all four venues.
Talk to the team about enterprise API access, integration support, and venue coverage.
Schedule DemoBacked by a16z crypto · Built by ex-Cboe engineers