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.