vike

Recipe 42 of 65

List every Hyperliquid instrument that traded in the last hour, including HIP-3 dexes and spot

/v1/hyperliquid/ohlcv/latest without dex returns one row for every perp that traded in the last 60 minutes on every dex, each naming its dex; market=spot does the same for spot pairs.

GET /v1/hyperliquid/ohlcv/latest answers it in one call: the newest 1-minute candle of every symbol with a trade in the last 60 minutes. Leave out dex and it answers for the core venue and every HIP-3 builder dex at once; each row carries its dex. The list of rows is the list of instruments that traded in the last hour. A second call with market=spot gives the spot pairs. The full parameter list is on Latest candle of every coin.

Quick answer

Leave out dex to cover every dex at once.

cURL
# every perp that traded in the last hour, on every dex, one row each
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv/latest"

Example response

Captured from the live API on 2026-10-24 at 17:16 UTC, trimmed to 3 of 594 rows: one each from the core venue and two builder dexes.

Rows come ordered by dex, then symbol. The capture held 594 instruments: 456 on the core venue (HL), 104 on XYZ, 21 on PARA, 9 on IO and 4 on MKTS. A builder-dex symbol carries its dex as a lower-case prefix. ts is the start of the candle's minute in epoch milliseconds.

Example response
{
  "market": "perp",
  "dex": null,
  "interval": "1m",
  "tz": "UTC",
  "source": "1m fills rollup",
  "lookback_minutes": 60,
  "candles": [
    {
      "symbol": "BTC",
      "dex": "HL",
      "ts": 1792862160000,
      "open": 80115.0,
      "high": 80116.0,
      "low": 80101.0,
      "close": 80101.0,
      "volume": 6.755890000000001,
      "volume_usd": 541168.0063000001,
      "n_trades": 101
    },
    {
      "symbol": "mkts:US500",
      "dex": "MKTS",
      "ts": 1792861800000,
      "open": 759.55,
      "high": 759.55,
      "low": 759.55,
      "close": 759.55,
      "volume": 0.02,
      "volume_usd": 15.190999999999999,
      "n_trades": 1
    },
    {
      "symbol": "xyz:SP500",
      "dex": "XYZ",
      "ts": 1792862160000,
      "open": 7613.8,
      "high": 7614.2,
      "low": 7613.8,
      "close": 7614.2,
      "volume": 0.5650000000000001,
      "volume_usd": 4301.9453,
      "n_trades": 8
    }
  ]
}

Variations

Spot pairs. Pass market=spot.

cURL — spot
# 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"

It returned 56 spot pairs, each named by its raw index such as @107.

A count per dex. Group the rows by dex.

cURL — per dex
# how many instruments traded in the last hour on each dex
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv/latest" \
  | jq '.candles | group_by(.dex) | map({dex: .[0].dex, instruments: length})'

One dex. Pass dex.

cURL — one dex
# only the markets of the PARA dex
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv/latest?dex=PARA"

Before you rely on it

Traded in the last hour, not listed

A market with no trade in the last 60 minutes is absent, so this is the active list, not every listed market. Call it at a quiet hour and the list is shorter. New builder dexes appear without notice, so read the dex values from the response instead of keeping your own list.

Not every symbol is a ticker

Spot rows are named by raw index (@107); /ohlcv accepts a spot token's name, such as symbol=HYPE&market=spot, and answers with its index, but no route lists every index with its name. On the core venue 278 of the 456 rows were named # and a number, such as #14730: these are outcome contracts, not perps, priced between 0 and 1 and numbered in pairs (#14730 and #14731 are the two sides of one market). They come back tagged market: perp and never appear in positions; filter on the first character if you want tickers only.

Ask your agent

No MCP tool lists every instrument at once; hl_ohlcv reads one symbol per call.

Example response
{  "market": "perp",  "dex": null,  "interval": "1m",  "tz": "UTC",  "source": "1m fills rollup",  "lookback_minutes": 60,  "candles": [    {      "symbol": "BTC",      "dex": "HL",      "ts": 1792862160000,      "open": 80115.0,      "high": 80116.0,      "low": 80101.0,      "close": 80101.0,      "volume": 6.755890000000001,      "volume_usd": 541168.0063000001,      "n_trades": 101    },    {      "symbol": "mkts:US500",      "dex": "MKTS",      "ts": 1792861800000,      "open": 759.55,      "high": 759.55,      "low": 759.55,      "close": 759.55,      "volume": 0.02,      "volume_usd": 15.190999999999999,      "n_trades": 1    },    {      "symbol": "xyz:SP500",      "dex": "XYZ",      "ts": 1792862160000,      "open": 7613.8,      "high": 7614.2,      "low": 7613.8,      "close": 7614.2,      "volume": 0.5650000000000001,      "volume_usd": 4301.9453,      "n_trades": 8    }  ]}