Skip to main content
Candles are OHLCV bars at a chosen interval. Every venue family serves them. Unlike funding and open interest, candle values come back as numbers, not decimal strings.

Get candles

curl "https://api.0xarchive.io/v1/hyperliquid/candles/BTC?interval=1h" \
  -H "X-API-Key: $OXARCHIVE_API_KEY"
/v1/hyperliquid/candles/{symbol}. Plain perp symbols such as BTC.

Request parameters

ParameterInTypeRequiredDescription
symbolpathstringYesTrading pair symbol, e.g. BTC
intervalquerystringNoCandle interval. Default 1h. One of 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w
startqueryinteger (ms)NoStart time, Unix ms. Defaults to 24h ago
endqueryinteger (ms)NoEnd time, Unix ms. Defaults to now
limitqueryintegerNoMax results. Default 100, max 10000
cursorquerystringNoPagination cursor from meta.next_cursor
{
  "success": true,
  "data": [
    { "timestamp": "2026-06-04T18:00:00Z", "open": 63513, "high": 64117, "low": 63108, "close": 63788, "volume": 3507.95321, "quote_volume": 223506651.65, "trade_count": 44543 }
  ],
  "meta": { "count": 1, "next_cursor": "1780596000000", "request_id": "req_8b0d2f63c1a94e57" }
}

Response fields

Candle values are numbers, not decimal strings.
FieldTypeDescription
timestampstringCandle start time (ISO 8601 UTC)
opennumberOpening price
highnumberHighest price in the interval
lownumberLowest price in the interval
closenumberClosing price
volumenumberVolume in the base asset
quote_volumenumberVolume in the quote asset (USD)
trade_countintegerNumber of trades in the interval

Gaps and intervals

Pick the largest interval that still answers the question; finer candles return more rows and more requests. A missing bar is not a zero bar, so confirm coverage on Data Quality before a long historical pull, and treat a gap as a window to narrow or rebuild rather than fill. volume is in the base asset and quote_volume is in USD, so use quote_volume when comparing activity across symbols that trade at very different prices.

Stream it live

Only Lighter streams candles, on lighter_candles. Hyperliquid core, Spot, HIP-3, and HIP-4 have no candle channel: stream Trades and aggregate to your interval, or poll the REST route above.
ws.send(JSON.stringify({ op: "subscribe", channel: "lighter_candles", symbol: "BTC" }));
Connection and reconnect handling live in the WebSocket tab; see WebSocket Channels for the family matrix.

Export in bulk

Candles have no standalone export schema. For file-based history, export Trades with the trades schema and aggregate to candles downstream, or keep candle pulls on REST. Export schema details are on Export Schemas.

Next

Use Trades for the raw tape, Open interest for positioning, or Point-in-time backtesting to keep a candle pull reproducible.
Last modified on June 8, 2026