/ohlcv/export
Streams the same single page as NDJSON — one header line naming what answered, then one line per bar.
GET https://data.vike.io/v1/hyperliquid/ohlcv/exportStreams the same single page as NDJSON: one header line naming what answered (symbol, asset,
market, dex, interval, tz, source), then one line per bar. Sent with a
Content-Disposition attachment filename. Lines arrive as they are produced rather than buffered
until the response is complete, and a stream is allowed to stay open for up to 300 seconds — long
enough for the largest page this route will return.
Shown as sent — NDJSON, one object per line rather than a single JSON document: the header line
first, then one line per bar. Nothing is truncated: all 6 lines are shown — the header plus the 5
bars limit=5 asked for.
# five hourly BTC bars as NDJSON: a header line, then one line per bar
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=BTC&interval=1h&limit=5" \
-H "X-API-KEY: $VIKE_API_KEY"
# a year of daily bars saved to a file
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=BTC&interval=1d&limit=365" \
-H "X-API-KEY: $VIKE_API_KEY" \
-o btc-1d.ndjson
# exactly one day of minute bars: 1,440 bars plus the header line (end is exclusive)
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=BTC&interval=1m&start=2026-08-17T00:00:00Z&end=2026-08-18T00:00:00Z&limit=1440" \
-H "X-API-KEY: $VIKE_API_KEY" \
-o btc-1m-day.ndjson
# spot candles: a spot token by name
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=HYPE&market=spot&interval=1h&limit=168" \
-H "X-API-KEY: $VIKE_API_KEY"
# 100-trade bars are built from raw fills. With no start the window is the 24 hours before end and limit
# keeps the OLDEST bars, so name the slice you want: here the last hour of a pinned day
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=BTC&interval=100t&start=2026-08-17T23:00:00Z&end=2026-08-18T00:00:00Z&limit=1000" \
-H "X-API-KEY: $VIKE_API_KEY"
# a window wider than one page: save the first page, then restart one bar after its last line
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=BTC&interval=1m&start=2026-08-17T00:00:00Z&limit=5000" \
-H "X-API-KEY: $VIKE_API_KEY" \
-o page1.ndjson
# page 2 starts one minute after page 1's last bar: start accepts epoch milliseconds
START=$(( $(tail -n 1 page1.ndjson | jq .ts) + 60000 ))
curl -s "https://data.vike.io/v1/hyperliquid/ohlcv/export?symbol=BTC&interval=1m&start=$START&limit=5000" \
-H "X-API-KEY: $VIKE_API_KEY" \
-o page2.ndjsonsymbolqueryrequired/ohlcvintervalqueryoptional/ohlcv. Default 1hmarketqueryoptional/ohlcv. Default perpdexqueryoptional/ohlcv. Default HLstartqueryoptional/ohlcvendqueryoptional/ohlcvlimitqueryoptional{"symbol":"BTC","asset":"BTC","market":"perp","dex":"HL","interval":"1h","tz":"UTC","source":"1h fills rollup"}
{"ts":1788408000000,"open":77685.0,"high":77826.0,"low":77518.0,"close":77761.0,"volume":1638.383539999999,"volume_usd":127187806.34586997,"n_trades":11502}
{"ts":1788411600000,"open":77767.0,"high":77827.0,"low":77090.0,"close":77799.0,"volume":2381.401280000001,"volume_usd":184414000.1971202,"n_trades":20200}
{"ts":1788415200000,"open":77800.0,"high":77839.0,"low":77679.0,"close":77822.0,"volume":742.5236199999999,"volume_usd":57737530.938200004,"n_trades":11927}
{"ts":1788418800000,"open":77823.0,"high":78177.0,"low":77569.0,"close":77635.0,"volume":2354.81572,"volume_usd":183533988.69679,"n_trades":23209}
{"ts":1788422400000,"open":77636.0,"high":78019.0,"low":77636.0,"close":78018.0,"volume":415.8346900000001,"volume_usd":32390151.983540002,"n_trades":3954}Billed 2 credits up front
The charge is recorded before the first byte. The response is a stream, so the row count is unknown at that moment — it is a flat 2 credits whatever the page turns out to hold, and it is not reconciled afterwards.
Not an unbounded whole-window export
Despite the name, it streams exactly the same single clamped page
/ohlcv returns — only the encoding
differs. To cover a window wider than one page, walk it yourself with start / end.