Skip to main content
Under the hood every trade is a two-step request-for-quote: request a firm quote, then accept it: acceptance creates the order. Quick Trade and Sweep Trade wrap those two steps into one atomic call. The RFQ endpoints are generic building blocks for integrations that need quote-then-commit control or capabilities the wrappers do not expose: exact-receive targeting (BuyExact) and multi-asset baskets.
Most integrations should not call these directly. Prefer Trading API Guide for Quick Trade and Sweep Trade. The RFQ API is lower-level by design: explicit token addresses, aligned per-leg lists, and a quote that must be accepted within its 10-second validity window.

GET /trade/quote

Returns a firm quote. Parameters are query string fields. Exactly one of buy_amount or sell_amount must be set: that choice selects the quoting mode: Example: BuyExact: receive exactly 10,000 USDC on Ethereum by selling USDT on BNB Chain (fill token addresses from GET /trade/currencies):
Use live contract addresses from discovery: the sample addresses above are illustrative.

POST /trade/quote/{quote_id}/accept

Accepts a live quote and creates the order: this is the commit point. The call must land within the quote’s 10-second validity (400 Quote expired otherwise: request a fresh quote). Optional query parameters settlement_address or settlement_account_id can override the settlement target resolved at quote time. A pre-trade feasibility check runs at accept: 409 Trade not feasible: … means re-quote and retry shortly. The response is the created order plus the accepted quote and resolved instructions; track it via GET /trade/order like any other order.
Also available: reject a quote via POST /trade/quote/{quote_id}/reject when you abandon a quote deliberately (see OpenAPI).

Next