Skip to main content
Prefer WebSocket for order submission. Placing and cancelling orders over the persistent /ws socket is lower-latency (one round trip instead of the REST submit/poll pair) and simpler to build: one connection, one auth handshake, and pushed order_update/fill events instead of polling. See Order Execution over WebSocket.
Kairos gives you two tiers of access: a completely free, unauthenticated Market Data API you can call right now, and authenticated Data and Execution APIs that unlock trading, analytics, and auctions. This guide walks you through both — from your first unauthenticated request all the way to placing your first order.
1

Fetch live markets — no signup needed

The Market Data API (md.kairos.trade) requires no API key. Call it directly from your terminal, browser, or code. The example below fetches one page of active Polymarket markets.
You should receive a cursor page of active markets:
provider accepts polymarket, kalshi, or predictfun. Pass the returned next_cursor back as the cursor query parameter to page through results, and stop when has_more is false. Prices in this response are not included — see Markets, Resolutions & Marks for marks and metadata.
2

Get your API key

The Data API and Execution API require authentication. To get a key:
  1. Go to app.kairos.trade and create an account.
  2. Navigate to Settings → API Keys.
  3. Click Create API Key, give it a name, and select the scopes you need.
  4. Copy the three values immediately — the secret is only shown once.
A Kairos API key is a triple of headers, sent together on every authenticated request:
Store the triple in an environment variable or secrets manager. Never hardcode it in source files or commit it to version control.
The web app also accepts a first-party session JWT as Authorization: Bearer <jwt>, but JWTs are not issued to API consumers — use the header triple for integrations. Full detail: Authentication.
3

Make an authenticated Data API call

With your credentials in hand, confirm they work by listing active markets from the authenticated Data API.
A 200 with a markets array means your credentials are working. A 401 means a missing or invalid header triple; a 403 means the key lacks the required scope for that route.
4

Submit your first order

Before you can trade, enable trading on the venue once — this provisions credentials and sets on-chain approvals.
A successful submission returns the internal order id and its initial status:
queued means the order is accepted and in flight — not live on the venue yet. Track it with GET /orders/{order_id}, or (lower latency) subscribe to the /ws socket’s order_update and fill events. price is required on every order, including market orders, where it is the limit you are willing to cross. See Placing Orders for time-in-force and per-venue rules.

What’s next?

Order Execution over WebSocket

The lowest-latency way to place and cancel orders, with pushed fills instead of polling.

Authentication

API key scopes, the session JWT, rate limits, and auth error handling.

Market Data API

All 15 free endpoints for markets, candles, trades, and perpetuals.

Placing Orders

Required fields, order kinds, time-in-force, statuses, and cancellation.