Skip to main content
UWSuws.kraken.com/v2/privatequotes
The quotes channel streams your side of the request for quote (RFQ) workflow. It sends two types of entry:
  • rfq: an RFQ you created, with the best bid and best ask offered on it so far.
  • offer: an offer you placed on another account’s RFQ.
For the public list of all open RFQs, see the rfqs channel. That channel never shows offers or who made a request. When the requester accepts an offer, the trades it produces are sent as ordinary executions with order_type rfq on the executions channel. There is one fill per leg. They are not sent on this channel. The order in which the RFQ status update, the executions and the positions updates arrive is not guaranteed. The channel does not carry mark prices. To get them, subscribe to the ticker channel.
Messages on this channel carry no sequence numbers. To recover after a gap, resubscribe with snapshot set to true.
The asset_class parameter is required on every subscribe and unsubscribe request for the quotes channel. Requests that omit it are not accepted. This channel contains account specific data, an authentication token is required in the request.

Subscribe

string
required
Value: subscribe
object
required
integer
Optional client originated request identifier sent as acknowledgment in the response.

Snapshot / Update

The snapshot and update messages share the same schema. The snapshot lists your open RFQs and your open offers. After that, an update is sent each time one of them changes:
  • The best offers on your RFQ change: an offer is placed, re-quoted or withdrawn.
  • You re-quote one of your offers. The update keeps the same offer_id.
  • You withdraw one of your offers, or it is cancelled because it failed its checks when the requester tried to accept it. Your offer gets a final update with status cancelled.
  • An RFQ closes. Your RFQ, and each offer on it, gets a final update with the RFQ’s status: expired, cancelled, filled_bid_side or filled_ask_side.
After its final update, an entry is no longer sent.
When an RFQ is filled, every offer on it gets the status filled_bid_side or filled_ask_side, including offers that were not accepted. This status does not mean your offer traded. To see whether it did, check the executions channel.
If the closing message is lost, the RFQ and its offers are closed with status expired 10 seconds after the RFQ’s expiry. A snapshot never includes an RFQ that is past its expiry, or its offers. You may receive another snapshot after the first one if you subscribed with snapshot set to true. This happens when the feed recovers from a connection loss or the trading engine restarts. When you receive one, replace your RFQs and offers with its contents. After an engine restart, every open RFQ and offer first receives an update with status cancelled, then you receive an empty snapshot. Each entry in data has a type field, rfq or offer, that tells you which fields it carries.
string
Value: quotes
string
One of: snapshot, update
object[]
A list of RFQ and offer entries.
string
One of: snapshot_too_large
Condition: if the snapshot exceeded the maximum message size.
The snapshot could not be delivered, and data is empty. Resubscribe to request the snapshot again.
Fields that do not apply to an entry are omitted. For example, best_ask is omitted while no offer has an ask, and an offer’s bid is omitted when it quoted only the ask side.

Unsubscribe

string
required
Value: unsubscribe
object
required
integer
Optional client originated request identifier sent as acknowledgment in the response.