Skip to main content
GET
Price, open interest and funding in one call
Candles, open interest and funding for one symbol over one window, in a single request. Six series in one request: candles, open interest, funding, CVD on both the perpetual and spot aggregates, and liquidations. Use this instead of calling the individual endpoints. It is one round trip rather than six, and measured about 3x faster than making those calls separately. Pick a subset with series= when you do not need all six.

One shared time axis

Every series shares the response’s single timestamps array. Index i of any series corresponds to timestamps[i], so you can zip them positionally without joining on time. This matters more than it sounds. The series come from different tables and do not all carry every bucket. Measured over a year at 1d: candles 372, funding 364, liquidations 367, across the same first and last timestamp. Returned unaligned, a positional zip would pair one day’s open interest with another day’s price and every number would still look plausible. A bucket a series does not have is null at that position, never carried forward from the previous one. Filling it would invent a print that did not happen and bias any average computed over the column. meta.extra.coverage reports how many buckets each series actually filled, so sparsity is visible without counting nulls:
The individual endpoints still return their own timestamps. Only the bundle reindexes onto a shared axis, because doing that join is the reason it exists.
Quota is charged per series, not per request. Three series cost three units, exactly as three separate calls would, and the count is reported in meta.extra.quota_units_charged.The bundle saves you round trips and alignment work, never allowance. Ask only for the series you need.

Partial results

A series that cannot be served comes back as null, with its reason under meta.extra.errors. The rest of the bundle is unaffected. This is deliberate: one cold or unavailable series should not cost you the two that were ready.

Windows and cost

Long windows are read from continuous aggregates rather than raw one-minute rows, so a year at 1d is no more expensive than a day at 1m. The source actually used is reported in meta.extra.sources. Windows are capped at one year, matching retention. Your plan’s historical window applies on top of that: see history_depth and your_plan in /v2/meta.

See also

Candles

Rate limits

Authorizations

X-API-Key
string
header
required

Your BackQuant API key (same key as v1)

Headers

X-API-Key
string | null

Query Parameters

symbol
enum<string>
default:BTCUSDT

Trading symbol: BTCUSDT, ETHUSDT, SOLUSDT, or HYPEUSDT.

Available options:
BTCUSDT,
ETHUSDT,
SOLUSDT,
HYPEUSDT
interval
enum<string>
default:1h

Interval for the gridded series.

Available options:
1m,
5m,
15m,
30m,
1h,
4h,
1d
hours
integer
default:168

Lookback window in hours, applied to every series.

Required range: 1 <= x <= 8760
series
string | null

Comma-separated subset of candles, open_interest, funding, cvd_perp, cvd_spot, liquidations. Defaults to all six. Ask only for what you need - each one costs a quota unit.

Response

Successful Response