vike

Recipe 51 of 65

Hyperliquid OHLCV from fills, incl. HIP-3 and spot; CSV/Parquet backfill

/v1/hyperliquid/ohlcv builds candles from Hyperliquid's own fills for core perps, HIP-3 builder-dex perps (dex=XYZ and the dex-prefixed symbol) and spot (market=spot); page it with start and turn it into CSV with jq.

GET /v1/hyperliquid/ohlcv answers it in one call per page, with candles for every market Hyperliquid runs, built from its executed fills: core perps (BTC), HIP-3 builder-dex perps (symbol=xyz:PLATINUM&dex=XYZ) and spot (symbol=HYPE&market=spot). Intervals are 1m to 1d, or Nt for bars of N trades. One call returns up to 5,000 bars; a backfill pages with start. The full parameter list is on Candles.

Quick answer

Pass the dex-prefixed symbol and its dex.

cURL
# hourly candles of a HIP-3 market: the dex-prefixed symbol and its dex
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=xyz:PLATINUM&dex=XYZ&interval=1h&limit=3"

Example response

Captured from the live API on 2026-10-24 at 17:16 UTC, all three rows shown.

ts is the start of the hour in epoch milliseconds; the last row (17:00 UTC) is the hour in progress. volume is in the underlying's units, volume_usd in USD, and both count each trade once. source names what built the bars.

Example response
{
  "symbol": "xyz:PLATINUM",
  "market": "perp",
  "dex": "XYZ",
  "interval": "1h",
  "tz": "UTC",
  "source": "1h fills rollup",
  "candles": [
    {
      "ts": 1792854000000,
      "open": 1545.1,
      "high": 1545.2,
      "low": 1539.9,
      "close": 1541.1,
      "volume": 114.03470000000002,
      "volume_usd": 175836.70153999998,
      "n_trades": 352
    },
    {
      "ts": 1792857600000,
      "open": 1541.2,
      "high": 1541.9,
      "low": 1539.8,
      "close": 1541.9,
      "volume": 17.1131,
      "volume_usd": 26357.34857000001,
      "n_trades": 70
    },
    {
      "ts": 1792861200000,
      "open": 1541.5,
      "high": 1541.5,
      "low": 1541.3,
      "close": 1541.4,
      "volume": 3.6252000000000004,
      "volume_usd": 5587.84044,
      "n_trades": 4
    }
  ]
}

Variations

Spot, by token name. The spot leg resolves a token name to its spot index; the response's symbol says which (@107 for HYPE).

cURL — spot
# a week of hourly HYPE spot candles
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=HYPE&market=spot&interval=1h&limit=168"

Write a page to CSV. The API answers JSON or NDJSON; a jq tail turns one page into CSV rows.

cURL — CSV
# 5,000 BTC minutes from 2026-10-01 as CSV rows: ts, open, high, low, close, volume
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=1m&start=2026-10-01T00:00:00Z&limit=5000" \
  | jq -r '.candles[] | [.ts, .open, .high, .low, .close, .volume] | @csv'

Tick bars. interval=100t closes a bar every 100 trades. Tick bars walk the raw fills, so pin a short window.

cURL — 100-trade bars
# 100-trade BTC bars over ten minutes
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=100t&start=2026-10-23T12:00:00Z&end=2026-10-23T12:10:00Z&limit=3"

On the same capture the first three bars opened at 12:00:00, 12:00:20 and 12:01:08 UTC, each with n_trades 100, and source read fills.

Every market's newest minute. To find which HIP-3 and spot symbols exist right now, list the newest candle of everything that traded in the hour.

cURL — what trades
# the newest 1-minute candle of every spot pair that traded in the last hour
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv/latest?market=spot"

Before you rely on it

A HIP-3 symbol needs its dex

dex defaults to HL, the core venue. symbol=xyz:PLATINUM without dex=XYZ asks for that symbol on the core venue, where it does not trade, and the candle list comes back empty. Pass the dex named by the prefix. An unknown dex is a 400 that lists the known set; builder dexes are added over time, so do not hard-code the list.

No candle file, and tick bars have a shorter history

There is no CSV or Parquet file of candles: candles come from this route as JSON or NDJSON. The Parquet archive holds fills (from 2026-05-01), from which you can build any bar yourself. Time bars reach back to 2026-01-01; tick bars are built from raw fills, which are kept 12 months, and source tells the two apart. There is no cursor: page with start.

Ask your agent

Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words. The hl_ohlcv tool answers with the dex for a HIP-3 market and market: spot for spot, at 1 credit a call.

Ask your agent
Get hourly candles for xyz:PLATINUM on the XYZ dex of Hyperliquid for the last day
Example response
{  "symbol": "xyz:PLATINUM",  "market": "perp",  "dex": "XYZ",  "interval": "1h",  "tz": "UTC",  "source": "1h fills rollup",  "candles": [    {      "ts": 1792854000000,      "open": 1545.1,      "high": 1545.2,      "low": 1539.9,      "close": 1541.1,      "volume": 114.03470000000002,      "volume_usd": 175836.70153999998,      "n_trades": 352    },    {      "ts": 1792857600000,      "open": 1541.2,      "high": 1541.9,      "low": 1539.8,      "close": 1541.9,      "volume": 17.1131,      "volume_usd": 26357.34857000001,      "n_trades": 70    },    {      "ts": 1792861200000,      "open": 1541.5,      "high": 1541.5,      "low": 1541.3,      "close": 1541.4,      "volume": 3.6252000000000004,      "volume_usd": 5587.84044,      "n_trades": 4    }  ]}