Skip to main content
Changes to the public API surface, newest first.
This log starts on 18 July 2026. Earlier changes are not tracked here. Every retired path listed below still resolves through a redirect, so old bookmarks keep working, but the old paths are not supported surface.
AddedChangedRemoved
Position ids for makers, the fee rate echoed on quotes, stricter auth errors, and implied_probability removed.
Removed: implied_probability on quote requests. Quote requests and the market maker stream no longer carry the field. It was always 0 and never used for pricing. Drop it from any parser that requires it.Added: position_id on the market maker position reads. GET /v1/mm/positions and GET /v1/mm/positions/{id} now return the on-chain position_id, hex encoded and lowercase. It matches the position_id on a broadcast cashout_request, so a maker can tell whether an auction is on a position they back without keeping a side index.Added: taker_fee_bps on the submit quote response. PUT /v1/mm/quote-requests/{id}/quote echoes the fee rate the quote was priced at.Changed: submitting a quote now fails closed on the fee rate. If the taker fee rate cannot be read, the request returns 503 with details.reason: "fee_unavailable" instead of pricing at 0 bps. Previously a config read failure silently priced the quote against the gross bet instead of the net stake, so the maker underwrote a larger base than intended. Retry on this reason.Changed: a malformed API key now returns 403 everywhere. The SSE surface previously returned 401 for a credential that does not start with api_, while REST returned 403. Both now return 403 with details.reason: "wrong_api_key_type".Changed: every WebSocket auth:error now carries a code. The auth timeout path previously sent only a message. Branch on code, never on message. See WebSocket for the four values.Clarified: rate limits are three buckets, not one. Public market reads are keyed per IP and do not draw down the authenticated per-account budget, and sending an API key to a public read does not raise its limit. The quote service routes have their own per-IP limit. See Limits and fees.
Removed
The World Cup reward pool ended.
Removed: World Cup reward pool. The FIFA World Cup 10k reward pool challenge ended and its page was removed. /guides/world-cup-reward-pool now redirects to Referrals.
RenamedChanged
Early cashout replaces early exit, with one auction model.
Renamed: early exit auctions are now early cashout. The guide moved from /guides/early-exit-auctions to /guides/early-cashout.Changed: one auction model replaces two flows. The separate buyback and takeover flows are gone. A single broadcast auction now covers both outcomes. A winning bid from the maker who backs the position closes it. A winning bid from anyone else acquires it. Bids are one all-in price_micro figure, with no direction field and no separate fee term.If you still branch on the old buyback and takeover distinction, replace it with a comparison of the winning market_maker_id against counterparty_mm_id. See Cashout auctions.
Retired
The blockhash endpoint is gone.
Retired: GET /v1/wallet/blockhash. The endpoint was removed. Transactions are built and sponsored server side, so clients no longer fetch a blockhash.
Retired
Maker heartbeat is gone. Liveness comes from the stream.
Retired: POST /v1/mm/heartbeat. Market maker liveness now comes from the SSE stream connection. Remove any heartbeat loop. Holding the MM stream open is enough.
Added
Maker position reads and the referral program.
Added: market maker position reads. GET /v1/mm/positions and GET /v1/mm/positions/{id} return your active positions with their full parlay legs.Added: referral program. Earn 20% of the trading fees generated by traders you refer, claimable at 25 USDC.
AddedRenamed
Quote listing for makers, and the quote service paths moved.
Added: GET /v1/mm/quotes. Reconcile your quotes and their lifecycle status after a disconnect.Renamed: quote service paths. The quote service and market maker endpoints moved out of the flat /rfqs and /mm documentation roots:The /v1/... request paths did not change. Only the documentation routes moved.