Live volume footprint stream
On subscription the stream forwards an initial historical snapshot starting at since (profile frames ended by an isLast boundary) and then live complete-profile replacements. Without since the snapshot is empty (a bare isLast boundary frame) and the first live profile arrives when the next timeframe period opens; the period already in progress is not streamed. Before the first profile one rowSize frame announces the price grid resolved for this subscription; echo that value as the rowSizeValue query parameter of the REST endpoint GET /api/v1/marketdata/footprint to receive history on the identical grid. If the grid ever changes on an open subscription, a new rowSize frame is sent and every affected profile is re-sent in full.
History depth is limited per timeframe, counted back from the security’s newest candle (by default 30 days for minute frames below 5m, rising with the timeframe to 3 years for 1w and above). When that limit moves the requested start forward, a rangeTruncated frame is sent before the initial snapshot; its presence is the flag that distinguishes a trimmed answer from a security with no data that far back. The initial snapshot is also capped at a bounded number of profiles, and a since exceeding that cap is rejected at the handshake. Historical range parameters (from, to, period, limit) are rejected. Live profile replacements are additionally rate-limited upstream by a small minimum delay even when throttlingDelay is 0. A terminal upstream error is delivered as an error frame and closes the socket.
Cost: 25 credits per subscription, charged again in every quota window the connection stays open in.
{
"type": "rowSize",
"meta": {
"exchange": "CXBNCE",
"symbol": "BTC/USDT",
"timeframe": "1h"
},
"rowSize": "100"
}{
"type": "rangeTruncated",
"meta": {
"exchange": "CXBNCE",
"symbol": "BTC/USDT",
"timeframe": "1h"
},
"firstBoundTime": 1774800000
}{
"type": "footprint",
"meta": {
"exchange": "CXBNCE",
"symbol": "BTC/USDT",
"timeframe": "1h"
},
"isLast": false,
"profile": {
"profileStart": "2026-09-21T10:00:00Z",
"profileEnd": "2026-09-21T11:00:00Z",
"sessionType": "MAINSESSION",
"rowSize": "100",
"rows": [
[
"84100",
"66.32422",
"63.42842",
8305,
6430
],
[
"84200",
"185.50922",
"151.98043",
25221,
22635
],
[
"84300",
"103.05549",
"75.71044",
13722,
12348
],
[
"84400",
"67.85132",
"72.35893",
10385,
10509
],
[
"84500",
"349.05247",
"260.16653",
34101,
27199
],
[
"84600",
"108.17618",
"98.62807",
13821,
13449
],
[
"84700",
"55.2806",
"34.94816",
5132,
4522
],
[
"84800",
"1.75602",
"2.40955",
229,
186
]
],
"totalVolumeSell": "759.63053",
"totalVolumeBuy": "937.00552",
"totalTradesCountSell": 97278,
"totalTradesCountBuy": 110916
}
}{
"type": "error",
"meta": {
"exchange": "CXBNCE",
"symbol": "UNKNOWN",
"timeframe": "1h"
},
"error": {
"code": "not_found",
"message": "security not found"
}
}API key sent on the WebSocket upgrade request. Exactly one header value is required; duplicate or comma-combined values are rejected.
GET
The price grid resolved for this subscription.
The history depth limit moved the requested start forward.
One complete volume footprint profile.
Terminal error converted from an upstream status; closes the socket.
Was this page helpful?
{
"type": "rowSize",
"meta": {
"exchange": "CXBNCE",
"symbol": "BTC/USDT",
"timeframe": "1h"
},
"rowSize": "100"
}{
"type": "rangeTruncated",
"meta": {
"exchange": "CXBNCE",
"symbol": "BTC/USDT",
"timeframe": "1h"
},
"firstBoundTime": 1774800000
}{
"type": "footprint",
"meta": {
"exchange": "CXBNCE",
"symbol": "BTC/USDT",
"timeframe": "1h"
},
"isLast": false,
"profile": {
"profileStart": "2026-09-21T10:00:00Z",
"profileEnd": "2026-09-21T11:00:00Z",
"sessionType": "MAINSESSION",
"rowSize": "100",
"rows": [
[
"84100",
"66.32422",
"63.42842",
8305,
6430
],
[
"84200",
"185.50922",
"151.98043",
25221,
22635
],
[
"84300",
"103.05549",
"75.71044",
13722,
12348
],
[
"84400",
"67.85132",
"72.35893",
10385,
10509
],
[
"84500",
"349.05247",
"260.16653",
34101,
27199
],
[
"84600",
"108.17618",
"98.62807",
13821,
13449
],
[
"84700",
"55.2806",
"34.94816",
5132,
4522
],
[
"84800",
"1.75602",
"2.40955",
229,
186
]
],
"totalVolumeSell": "759.63053",
"totalVolumeBuy": "937.00552",
"totalTradesCountSell": 97278,
"totalTradesCountBuy": 110916
}
}{
"type": "error",
"meta": {
"exchange": "CXBNCE",
"symbol": "UNKNOWN",
"timeframe": "1h"
},
"error": {
"code": "not_found",
"message": "security not found"
}
}