Market Maker
Quote Request Stream
Server-Sent Events stream that pushes live quote requests to market makers. Authenticated via the X-API-Key header.
GET
Subscribe to the maker quote-request stream over Server-Sent Events. This is channel 1 of the three-channel maker transport — it pushes a
If your client cannot set custom headers, pass
connected event, an initial snapshot of open requests, and then live quote_request / quote_request_expired events. See the Quote Request Stream guide for the full walkthrough.
The response has Content-Type: text/event-stream. Use the browser EventSource API or any SSE-capable client.
Authentication
Provide your per-MM API key in theX-API-Key header:
?apiKey=<your-key> as a query parameter instead.
Headers
string
required
Your per-MM API key (or pass
?apiKey= as a query parameter).string
The last SSE event
id you processed. On reconnect, the server replays events after this id if they are still in the buffer; otherwise it falls back to a fresh snapshot. The browser EventSource API sets this automatically.Events
event
Sent once on connect. Data:
{ "makerId": "mm-alpha", "serverTime": "<iso>" }.event
Marks the start of the initial snapshot of open requests. Data:
{}.event
A new (or replayed/snapshot) quote request. Each carries an SSE
id: (monotonic integer). Data contains requestId, expiresAt, and params (wallet, market, option, trade).event
Marks the end of the initial snapshot. Data:
{}. Live events follow.event
A request closed (committed, expired, or cancelled). Data:
{ "requestId": "req-789" }.quote_request Data Fields
On a buy, the taker enters a USDC amount, not a contract count — so the request carries
trade.budgetUsd and no trade.size. You quote a per-option price; the number of options the taker receives is floor(budgetUsd / price). Size your collateral accordingly: floor(budgetUsd / price) × (1 − K) for a call, × K for a put.Keep-alive: the server sends SSE comment lines (
: ping) about every 25 seconds. SSE clients ignore them automatically.