Skip to main content
Symbiosis is a block-execution venue for prediction markets. The REST API covers three services behind one hostname:

Auth

Accounts, sessions, API keys, and websocket tickets.

Custody

Deposit addresses, balances, and withdrawals.

RFQ

Quote requests, quotes, and matching.

Core concepts

Requests and quotes. A taker posts a quote request for an asset on a venue (Polymarket, Kalshi, or Limitless). Market makers see the request (without the requester’s identity, unless the requester opted into disclosure) and respond with quotes. The taker accepts a quote to match. Quotes expire; a match against an expired quote is rejected. Custody. Deposits arrive on per-user derived addresses. Balances are tracked per (venue, asset), with USDC held separately. Withdrawals are queued and processed asynchronously.

Wire formats

Identifiers and uniqueness

For integrators mirroring this API into their own storage:

Request ids

Every response carries an x-request-id header: a server-minted UUID that keys our logs. Include it when reporting a problem. The server never adopts an id you send; an inbound x-request-id is logged alongside ours, so if you attach your own ids, a request that never got a response can still be found.

Websockets

Market data, user events, and the RFQ stream are served over websockets (/ws/market, /ws/user, /ws/rfq), authenticated with short-lived tickets minted from POST /auth/ws-ticket. The protocol (tickets, handshakes, and event frames) is documented in Websockets.