Quotes channel
/ws/quotes is a subscribe-only stream of marks. It exists so a client that
needs a current price for many symbols doesn’t have to hold a full depth
subscription for each one.
What it carries
Section titled “What it carries”One Quote-Update per change, per venue and symbol:
{ "type": "Quote-Update", "venue": "hyperliquid", "symbol": "BTC.HL", "mid": "104213.5", "bid": null, "ask": null, "last": null, "source": "be_canonical", "ts": "2026-05-24T18:30:00.000Z"}symbol is the venue-suffixed ticker — the same canonical string
GET /api/v1/symbols/{venue} returns, not the bare asset. Asking for BTC
instead of BTC.HL is answered
Result { ok: false, error: "mark_unavailable" }, because there is no mark
cached under a symbol the platform does not use.
The mark is in mid, as a decimal string. bid, ask and last are
reserved and always null today — take the inside quote from BBO-Update on
/ws/market instead. ts is an ISO-8601 timestamp,
not an epoch number. Futures and B3 symbols additionally carry
marketStatus: "open" | "closed"; its absence means open.
Frames you can send
Section titled “Frames you can send”| Frame | Purpose |
|---|---|
Subscribe-Quote { venue, symbol } |
Start pushing one symbol. |
Subscribe-Quotes-Bulk { items } |
Up to 200 { venue, symbol } pairs in one frame. |
Unsubscribe-Quote { venue, symbol } |
Stop pushing one symbol. |
Unsubscribe-All |
Drop every subscription on the socket. |
Get-Quote { venue, symbol } |
One-shot read, no subscription. |
Authenticate, Ping |
Optional handshake; heartbeat. |
venue and symbol are separate fields — there is no venue:symbol string on
the wire. Get-Quote answers with the Quote-Update first and its
Result { ok: true } after, so read the quote off the update rather than
waiting for the ack to carry it; a symbol with no mark answers
mark_unavailable and no update at all.
Marks are public data, so no Authenticate frame is required; send one only to
attach a scope to the connection.
When to use it instead of /ws/market
Section titled “When to use it instead of /ws/market”| You need | Use |
|---|---|
| A price for a watchlist, a portfolio valuation, a PnL readout | /ws/quotes |
| The book, the tape, or bar updates | /ws/market |
Valuing 200 positions over the quotes channel is one subscription set. Doing it over depth subscriptions is 200 books you don’t read.
Marks are the settlement reference
Section titled “Marks are the settlement reference”The mark on this channel is the platform’s canonical price for a symbol — the same reference used for margin and for settling an internalised fill. Do not smooth or interpolate it before using it as a price of record; smooth it in your chart layer only.
Encoding
Section titled “Encoding”?encoding=msgpack applies here too. It is worth taking on a large bulk
subscription, where one frame per symbol adds up.