Quickstart
This page shows the shortest safe path for a client integration. It does not cover local deployment or operator setup.
What you need
Before the first request, line up:
- The base URL for your environment (shown as
{API_BASE_URL}in examples). - A JWT for any protected route, sent as
Authorization: Bearer <jwt>. - A wallet address or approved agent wallet for trading. Reads usually need only a JWT.
- An HTTP client for REST and a WebSocket client for live data.
Everything below assumes those are ready. Public reads need no wallet and no JWT; protected reads follow the route's policy, and a JWT-protected read may still require a wallet-bearing identity. Only signed writes need a signature.
1. Check enabled features
curl -s "{API_BASE_URL}/v1/runtime-config"
Example response:
{
"waitlist_enabled": false,
"outcomes_enabled": true,
"outcomes_ws_enabled": true,
"outcome_conversions_enabled": false,
"default_outcome_network": "testnet",
"outcome_networks": [
{ "network": "testnet", "read_enabled": true, "ws_enabled": true }
]
}
Abbreviated: each outcome_networks entry carries more status fields, and the top-level outcomes_enabled / outcomes_ws_enabled flags are derived from whether any network has read_enabled / ws_enabled.
If waitlist_enabled is true, protected routes require a valid JWT and allowlist access.
Runtime config exposes waitlist and outcome feature flags. Probe scalar and
binary market endpoints before showing those market families.
2. Read the market clock
For scalar temperature markets:
curl -s "{API_BASE_URL}/v1/markets"
curl -s "{API_BASE_URL}/v1/bucket"
For binary markets:
curl -s "{API_BASE_URL}/v1/binary/markets" \
-H "Authorization: Bearer $JWT"
curl -s "{API_BASE_URL}/v1/binary/bucket" \
-H "Authorization: Bearer $JWT"
For outcome markets:
curl -s "{API_BASE_URL}/v1/outcomes/meta"
3. Subscribe to live data
Connect to:
wss://{HOST}/v1/ws
Then subscribe:
{
"type": "subscribe",
"channels": ["book", "trades", "activeAssetCtx"],
"coins": ["NYCTMP1", "NYCTMP2"]
}
For outcome markets, use outcome coins returned by /v1/outcomes/meta and
include a network selector (mainnet/testnet). When network is omitted the
server routes to the configured outcome default from /v1/runtime-config:
{
"type": "subscribe",
"channels": ["outcomePrices", "outcomeBook", "outcomeTrades"],
"coins": ["#36010"],
"network": "mainnet"
}
Outcome responses are enveloped and network-scoped, e.g.
{ "channel": "outcomePrices", "network": "mainnet", "data": {...}, "last_update_ts": ... }.
4. Authenticate before trading
Send the JWT in the Authorization header:
Authorization: Bearer <jwt>
Trading routes also require a wallet signature or an approved agent wallet, depending on the flow. See Authentication and Trading overview.
5. Place a first trade
Choose the workflow that matches the market:
| Market | Entry flow |
|---|---|
| Scalar temperature | /v1/predict, /v1/orders, or the agent order prepare/submit flow |
| Binary | /v1/binary/setup, then /v1/binary/predict |
| Outcome | /v1/outcomes/orders/prepare, sign, then /v1/outcomes/orders/submit |
Outcome flows are gated. Check /v1/runtime-config, and note that outcome
prepare routes need an active approved agent — see Outcome markets.
Do not assume all flows are enabled in every environment. Check /v1/runtime-config, watch route responses, and fail closed in your client when a market is hidden or unavailable.
6. Know the non-happy path
Before you ship an integration, read: