Skip to main content
POST
/
quote-requests
Create Quote Request
curl --request POST \
  --url https://api.convallax.com/quote-requests \
  --header 'Content-Type: application/json' \
  --data '
{
  "market": {
    "conditionId": "0xa4ddc18895cc7b14810283ef8f113939abffd3969c6a0e37f1897110c67e6f73",
    "yesTokenId": "51508280778202349361616850684455231843716212176724253736363122559269229712002",
    "question": "Will there be a Hantavirus outbreak in 2026?"
  },
  "option": {
    "strikeBps": 50,
    "expiryMs": 1735689600000,
    "optionType": "call"
  },
  "trade": {
    "side": "buy",
    "budgetUsd": 100,
    "size": 10
  },
  "wallet": "0xTrader0000000000000000000000000000000000"
}
'
{
  "success": true,
  "requestId": "req-789",
  "expiresAt": "2026-06-15T12:05:00.000Z",
  "makersConnected": 3
}
Open a live quote request to start receiving competitive quotes from market makers. The relay broadcasts the trade parameters to all connected makers over the quote-request SSE stream and returns a requestId that you use to stream or poll for quotes and eventually commit. Quote requests are long-lived (default 5-minute TTL, configurable via QUOTE_REQUEST_TTL_MS) and require no wallet signature — the trader’s authorization happens at the on-chain fill() step.

Body

application/json
market
object
required
option
object
required
trade
object
required

On a buy, the taker submits a USDC budget (budgetUsd) and the fill is floor(budgetUsd / price) whole options, capped by the maker's quoted size. On a sell, the taker submits a contract count (size).

wallet
string | null

Taker wallet (checksummed). Optional at creation; can be provided at commit.

Example:

"0xTrader0000000000000000000000000000000000"

Response

Quote request created

success
boolean
requestId
string
Example:

"req-789"

expiresAt
string<date-time>
Example:

"2026-06-15T12:05:00.000Z"

makersConnected
integer

Makers subscribed to the quote-request stream at broadcast time.

Example:

3