Skip to main content
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 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 the X-API-Key header:
If your client cannot set custom headers, pass ?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.