Skip to main content
POST
/
v1
/
mm
/
quotes
Submit Quote
curl --request POST \
  --url https://api.convallax.com/v1/mm/quotes \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "requestId": "req-789",
  "quote": {
    "maker": "0x1234000000000000000000000000000000abcd",
    "side": "buy",
    "price": 0.18,
    "size": 100,
    "expires_in_ms": 5000
  }
}
'
{
  "success": true,
  "quoteId": "8f3c2b1a-1d2e-4c3b-9a8f-6e5d4c3b2a1f"
}
Submit or update a draft quote for an open quote request. This is channel 2 of the three-channel maker transport — you receive requests over the SSE stream and reply here over REST. Only the latest quote per maker per request is kept — re-POST for the same requestId to update your quote at any time while the request is open. The response returns a server-generated quoteId that is stable across updates for the same maker + request; you use it to confirm if you win.
You do not include your makerId — the relay derives it from your authenticated API key. The quote.maker wallet is required and is written into the on-chain order.

Quote validation

A quote must pass these checks to be eligible for winner selection:
CheckRequirement
requestIdMust match an active (open) quote request
quote.sideMust match the taker’s requested side
quote.size≥ 50% of requested size
quote.priceMust be in (0, 1)
No-arbitragePrice ≤ maximum payoff for the option type

Authorizations

X-API-Key
string
header
default:mk_live_alpha_xxx
required

Maker API key (env-issued or self-serve from the dashboard). Maps to a stable makerId.

Body

application/json
requestId
string
required

The requestId from the quote_request event you are quoting.

Example:

"req-789"

quote
object
required

Response

Quote accepted

success
boolean
quoteId
string

Server-generated quote ID, stable across updates.

Example:

"8f3c2b1a-1d2e-4c3b-9a8f-6e5d4c3b2a1f"