Request for Quote (RFQ)


Returns an actionable one-sided quote for the specified currency pair.

After sending an RFQ, the API will return a quote with a price at which a trade can be executed. If you agree with the price, you can request the execution of the trade using the orders endpoint.

In the orders request, you will need to specify the same:

  • currency_pair

  • quantity

  • quote_id

  • and, if specified in the quote request, the client_quote_id

Quote requests are rate limited to 10 requests per second.

Request Body


pair required


The currency pair for the quote. e.g. btcusd

side required


The side for the quote (whether you are buying or selling). Possible values:

  • buy : You want to buy

  • sell: You want to sell

quantity required


The base currency quantity for the quote (e.g. 10 ). Must be <= the maximum quote quantity for the given pair.



The quote currency quantity for the quote (e.g. 300000.0000 ). Required if quantity is not included in the request.



An optional idempotent identifier for your quote. If specified, you must specify the same value in the client_order_id field of your order request to execute on the quote.

Response Body



Unique identifier for the quote. Note: to execute an order on this quote you will specify this quote_id in your order request


The base currency quantity of the quote


The quote currency amount of the quote


The currency pair for the quote request


The quote side–whether you are buying or selling


The datetime the quote will expire


The datetime the quote was generated


The quote price–the price to buy this quantity. Returned if side = buy, else not included.


The quote price–the price to sell this quantity. Returned if side = sell, else not included.


    "quote_id": "165c404c-ffe9-11ed-b8ed-0a170e3de1bd",
    "pair": "btcusd",
    "side": "BUY",
    "date_expiry": "2023-05-31T19:26:58.595Z",
    "date_quote": "2023-05-31T19:26:48.595Z",
    "amount": 27044.7156,
    "quantity": 1,
    "buy_price": 27044.7156
422: Unprocessable Entity
//Requested quote size greater than maximum quote size for the currency pair
    "error": "request USD value <USD_VALUE_OF_REQUESTED_QUOTE_SIZE> greater than max USD value <MAX_USD_VALUE> for pair <CURRENCY_PAIR>"

//Currency pair not currently supported for RFQ
    "error": "<CURRENCY_PAIR> not currently supported for RFQ. please contact support for more information."
503: Service Unavailable
//RFQ requests are temporarily unavailable
    "error": "quotes temporarily unavailable. please try again later."

//RFQ requests are temporarily unavailable for this currency pair
    "error": "<CURRENCY_PAIR> quotes temporarily unavailable. please try again later."

Example Request

curl -X POST \
  -H 'Content-type: application/json' \
  -H 'Authorization: Bearer <API_TOKEN>' \
  --data '{ "pair": "btcusd",
            "side": "buy",
            "quantity": 1 }'  \

End-to-End Example

The following example details the end-to-end process of requesting a quote from the RFQ endpoint and executing an order to trade on that quote


  • Request: Requested a quote to purchase 1 BTC on the BTC/USD pair

  • Response: Received a purchase price of 23243.49136824 for 1 BTC with Quote ID cb436399-9db7-11ed-8ea6-0e5724aafd6b which is later specified in the order



curl -X POST \
  -H 'Content-type: application/json' \ 
  -H 'Authorization: Bearer <API_TOKEN>' \ 
  --data '{ "pair": “btcusd”,
            "side": "buy",
            “quantity”: 1 }' \ 


  "quote_id": "cb436399-9db7-11ed-8ea6-0e5724aafd6b", 
  "quantity": 1,
  "pair": "btcusd",
  "side": "BUY",
  "date_expiry": "2023-01-26T20:27:18.310Z", 
  "date_quote": "2023-01-26T20:27:03.310Z", 
  "buy_price": 23243.49136824

Order Execution

  • Request: Placed an order to buy 1 BTC on the BTC/USD pair and specified the previously received quote ID cb436399-9db7-11ed-8ea6-0e5724aafd6b

  • Response: Received an “Order Filled” response, purchasing 1 BTC at the previously quoted unit price of 23243.49136824

  • RFQ orders are Fill-or-Kill (FOK): Will be responded to with a “Done” (filled) or “Canceled” (rejected) order. The entire quantity will be filled or none at all

  • Receive synchronous response: The response will reflect a terminal state of an order

  • Are not guaranteed to be filled if placed within the quote expiry

  • Only one order will be accepted per quote

  • The order quantity must be less than or equal to the quote quantity

  • Will settle immediately to your sFOX account if filled


curl -X POST \
  -H 'Content-type: application/json' \ 
  -H 'Authorization: Bearer <API_TOKEN>' \ 
  --data '{ "currency_pair": “btcusd”,
            "quantity": 1,
            "quote_id": "cb436399-9db7-11ed-8ea6-0e5724aafd6b" }' \ 


  "id": 1754344,
  "side_id": 500,
  "action": "Buy",
  "algorithm_id": 150,
  "algorithm": "Instant",
  "type": "Instant",
  "pair": "btcusd",
  "quantity": 1,
  "price": 23243.49136824,
  "amount": 0,
  "net_market_amount": 0,
  "filled": 1,
  "vwap": 23243.49136824,
  "filled_amount": 23243.49136824,
  "fees": 0,
  "net_proceeds": -23243.49136824,
  "status": "Done",
  "status_code": 300,
  "routing_option": "BestPrice",
  "routing_type": "None",
  "time_in_force": "FOK",
  "expires": null,
  "dateupdated": "2023-01-26T20:27:06.000Z", "client_order_id": "",
  "user_tx_id": "",
  "o_action": "Buy",
  "algo_id": 150,
  "algorithm_options": null,
  "destination": "",
  "quote_id": "cb436399-9db7-11ed-8ea6-0e5724aafd6b"

Last updated