Beta
HyperCore APIs are in beta. Message fields, limits, and behavior may change, including breaking changes. To request access, contact [email protected].
Best bid and best ask for each market, sent whenever the top of the book changes: price, size, or number of orders.
{
"method": "subscribe",
"subscriptionId": "bbo_01",
"subscription": {
"type": "bbo",
"coins": [
"BTC",
"ETH"
]
}
}| Parameter | Type | Required | Description |
|---|---|---|---|
coins | string[] | No | Markets to include, up to 200. Omit, or send [], for every market (one unfiltered subscription per stream per connection). Unknown coins stay subscribed and return empty data until the market exists. |
{
"channel": "subscriptionResponse",
"subscriptionId": "bbo_01",
"data": {
"type": "bbo",
"coins": [
"BTC",
"ETH"
]
}
}{
"seq": 1,
"channel": "bbo",
"subscriptionId": "bbo_01",
"data": {
"blockNumber": 1183716828,
"blockTime": 1791996538119,
"isSnapshot": true,
"books": [
{
"coin": "BTC",
"bbo": [
{
"px": "81772.0",
"sz": "30.29109",
"n": 96
},
{
"px": "81773.0",
"sz": "0.02692",
"n": 2
}
]
},
{
"coin": "ETH",
"bbo": [
{
"px": "2442.5",
"sz": "36.3142",
"n": 7
},
{
"px": "2442.6",
"sz": "237.042",
"n": 44
}
]
}
]
}
}| Field | Description |
|---|---|
data.books[].bbo | [bid, ask]. Either side can be null when that side of the book is empty. |
px, sz, n | Price, total size at the level, and number of orders. |
The first message includes every subscribed market, in alphabetical order; later messages include only markets whose top of book changed.
{"method":"unsubscribe","subscriptionId":"bbo_01"}Book streams have no replay. After a disconnect, or if seq skips, resubscribe; the first message is a fresh snapshot. If you receive a book_reset error, drop local state for the subscription and rebuild from the snapshot that follows. See replay and recovery.