Skip to main content
PUT
Submit or replace your bid on an early cashout auction. Auctions arrive as a cashout_request event on the MM stream you already subscribe to. They are broadcast to every market maker, including on positions you do not back. An auction lives about 10 seconds. Bid one all-in price_micro: the microUSDC the user receives. There is no direction field and no fee term. The highest live bid wins, and ties go to the earliest bid. To pass, submit nothing; there is no decline endpoint. Re-submitting replaces your bid atomically and also re-times it. Re-sending the same price puts you behind any bid that has since matched it. Do not re-PUT an unchanged price just to refresh the TTL: you would hand away a tie you were winning. For the payload and auction mechanics, see Cashout auctions.

Authentication

API key required, with the mm:quote scope. Pass it in the X-API-Key header.

Path parameters

string
required
The cashout request ID (UUID). Called cashout_request_id on the push.

Request body

integer
required
The all-in amount the user receives, in microUSDC (1_000_000 = $1.00). Integer, minimum 1. May be below the user’s stake: a losing parlay exits for less than it cost.Two ceilings apply, both in microUSDC. user_stake and total_payout arrive as decimal USDC on the push, so scale them by 1e6 first.Every bid must satisfy price_micro <= round(total_payout * 1e6) (price_above_max_payout). If you are the position’s current counterparty, a tighter fee-aware ceiling binds (price_above_buyback_bound). It is derived from total_payout - user_stake, not from the mm_risk field, because the two drift by up to 0.0001 USDC:
integer
default:"15000"
How long your bid stays live, in milliseconds. Range 5000-60000. A bid may outlive the auction. One that lapses mid-auction stops being the best bid, and nothing tells you when, so age bids out locally.
The body is strict: an unknown field is a 400.

Withdrawing a bid

DELETE /v1/mm/cashout-requests/{id}/quote pulls your live bid. It is idempotent. There is no partial withdraw. Re-PUT to change a price.

Response

Returns 201 Created for your first bid on an auction, or 200 OK when replacing your own.
object

Errors

Winning is not the same as being paid. The user is only filled at a price they explicitly accepted, so a fill can fail if the book moves down between their tap and their commit. If you win by acquiring a position, your funding and eligibility are checked at that commit, not when you bid. An underfunded or ineligible winning bid fails there with insufficient_buyer_balance, buyer_no_vault, or buyer_is_counterparty.