Skip to main content
POST
Execute quote

Authorizations

x-app-id
string
header
required

Your application ID. Required for all app-tier and user-tier routes.

Authorization
string
header
required

JWT access token returned by POST /auth/verify. Required for user-tier routes.

Body

application/json
quoteId
string
required

quoteId from GET /orderbook/{venueMarketOutcomeId}/route.

mode
enum<string>

live (default) or paper to fill against the user's paper account.

Available options:
live,
paper
fallbackToLatest
object

Used only when quoteId has expired: the server fills against the user's latest quote with this same intent instead of returning 400. A different spend, mode or venue scope is a different intent and does not match.

signingAddress
string

Self-custody: the wallet that signs this fill. Must already be linked to the account. Omit for managed custody (the default).

Required string length: 42
fundingAddresses
string[]

Self-custody: other linked wallets this fill may spend from (signingAddress is always included). Order does not matter: per token, the wallet with the largest balance is used first. Omit to fund from the signing wallet only.

Required string length: 42
approveMode
enum<string>

Self-custody, cross-chain fills only: how the token approval a bridge needs is made. sponsored (default): the wallet does not send the approve itself; it signs a one-time EIP-7702 authorization per chain, over a raw digest (not EIP-191 or EIP-712), which many wallets cannot produce. user_broadcast: the user sends the approve transaction from their wallet and pays its gas, on every bridge. Pick based on what the wallet software supports. Neither mode makes bridging free: quote with deepEstimate and read feeBreakdown.bridgeFees and feeBreakdown.setupCosts.

Available options:
sponsored,
user_broadcast

Response

200

quoteId
string
required

The quote being filled. Poll GET /execution/status with it.

orderIds
string[]
required

Orders created for the fill, including tracking orders for shares redeemed instead of sold.

status
enum<string>
required

Always pending: accepted, not yet executed. Poll GET /execution/status.

Available options:
pending
alreadyAccepted
boolean

true when this quote was already accepted; the call had no new effect.

redeemId
string

Present when a sell quote includes resolved shares that are redeemed rather than sold.

message
string

Readable note about redemption, when relevant.

pendingSignatures
object[]

Self-custody only: requests the user's wallet must sign before execution continues. Absent for managed custody. Answer them on POST /execution/fill/{quoteId}/signatures.