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", "mid": "104213.5", "bid": null, "ask": null, "last": null, "source": "be_canonical", "ts": "2026-05-24T18:30:00.000Z"}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. 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.