Skip to main content

RFQs

This page explains how API clients can listen to new RFQs and RFQ updates happening on the exchange. RFQ order placement information can be found on the order placement page.

Register for RFQs

API clients, Web UI users and Mobile users can place RFQs or "indicative orders" to express their interest in a particular symbol or multi leg structure.

In API requests and responses, these orders will have a "market_id": "none" property. More info on the order placement page.

These orders cannot be matched or executed against but provide the user with a composite tradeable_entity_id and symbol.

Existing Snapshots

  • After the initial request to register for RFQs is sent, a list of snapshots for existing RFQs will be received.
  • These snapshots contain the full indicative order books for all currently active RFQs on the exchange.
  • One snapshot per symbol / structure.

Update Messages

  • While registered for RFQs, if an indicative RFQ order is created, an "order_added" message with "market_id": "none" will be received which can be inserted to any existing RFQ book or used to create a new one.

  • If an indicative RFQ order is deleted on the exchange an "order_deleted" message with "market_id": "none" will be received so that the clients can update their book.

Register for RFQ Message

NameTypeComments
user_tagstringClient defined tag used to identify the request

Examples

Request

{
"register_for_rfqs": {
"user_tag": "unique_request_id"
}
}

Snapshot Message

{
"snapshot": {
"server_utc_timestamp": "1670228560424362",
"market_id": "none",
"tradeable_entity_id": "484",
"symbol": "ETH-USD-PERPETUAL",
"buy": [
{
"utc_timestamp": "1669643400000098",
"price": "1301.28",
"quantity": "0.1",
"order_id": "8910362"
}
],
"sell": []
}
}

Order Added Message

{
"order_added": {
"server_utc_timestamp": "1670228560847090",
"utc_timestamp": "1670228560813554",
"market_id": "none",
"tradeable_entity_id": "6",
"symbol": "PTF-USD",
"side": "buy",
"order_id": "9544537",
"price": "0",
"quantity": "10000.0"
}
}

Deregister for RFQs

This message is used stop receiving any further RFQ update messages. This does not prevent a user from quoting on any RFQ they already know about.

Deregister for RFQs Message

NameTypeComments
user_tagstringClient defined tag used to identify the request

Examples

Request

{
"deregister_for_rfqs": {
"user_tag": "unique_request_id"
}
}

Acknowledgement

A generic acknowledgement message is sent:

{
"command_response": {
"error_code": "0",
"error_text": "success",
"user_tag": "unique_request_id"
}
}

Refresh Interest

The system will time out an indicative order after a set timeout period, currently 30 minutes, so to keep a multi leg indicative order active the user must periodically send a refresh interest message.

Each time a refresh interest message is sent, the timeout period will be reset.

Refresh Interest Message

NameTypeComments
user_tagstringClient defined tag used to identify the request
order_idstringExchange generated order id
client_order_idstringUnique Order Id generated by the client

Example

{
"refresh_interest": {
"order_id": "exchange_generated_order_id",
"client_order_id": "client_generated_order_id",
"user_tag": "unique_request_id"
}
}