vike

Recipe 5 of 33

When funding spikes, how do whale and retail cohorts split?

Pull a coin's hourly funding rate and its hourly size-cohort matrix over the same window, join them on the hour, and compare whale and shrimp bias in the high-funding hours.

GET /v1/hyperliquid/symbols/hourly and GET /v1/hl-cohorts/symbols/{symbol}/cohort-metrics answer it in two calls over the same 30 days. The first returns one row per hour with the close, open interest and funding_rate (Coins hourly); the second returns the same hours split by account-size cohort (Coin cohort metrics). Join them on the hour, keep the hours where funding is highest, and compare the whale rows with the shrimp rows.

Quick answer

Both calls cover the last 720 hours of BTC.

cURL
# BTC hourly close, open interest and funding rate for 30 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&days=30"

# the same 720 hours of BTC positioning by account-size cohort
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&hours=720"

Example response

Captured from the live API on 2026-10-24 at 17:12 UTC from the first call with days=1, trimmed to the newest 4 of 24 rows. Rows are arrays in columns order. ts is the hour's start in Unix seconds (1792857600 is 2026-10-24 16:00 UTC), open_interest is in BTC, and funding_rate is the hourly rate as a fraction: 1.25e-05 is 0.00125% an hour, the value most hours carry. On the cohort side the same hour is "ts": "2026-10-24T16:00:00+00:00", so convert one key before you join.

Example response
{
  "symbols": [
    "BTC"
  ],
  "tz": "UTC",
  "source": "1h fills rollup + hourly asset summary",
  "start": 1792775536,
  "end": 1792861936,
  "columns": [
    "ts",
    "asset",
    "close",
    "open_interest",
    "funding_rate",
    "premium"
  ],
  "rows": [
    [
      1792850400,
      "BTC",
      80180.0,
      43756.59462166664,
      1.2500000000000004e-05,
      -0.000251164475
    ],
    [
      1792854000,
      "BTC",
      79789.0,
      43080.143939999805,
      9.31456935483871e-06,
      -0.00045313535134408595
    ],
    [
      1792857600,
      "BTC",
      80175.0,
      43345.12522166666,
      1.0013016666666666e-05,
      -0.000436831925
    ],
    [
      1792861200,
      "BTC",
      80110.0,
      43647.63115,
      3.3841e-06,
      -0.00023684045
    ]
  ]
}

Variations

Several coins in one call. symbols takes up to 64 tickers; the cohort matrix is still one call per coin.

cURL — basket
# funding for BTC, ETH and HYPE over 30 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC,ETH,HYPE&days=30"

Split by profitability instead of size. For a realized-PnL split, pass axis=pnl with labelBasis=point_in_time, so each hour carries the cohort labels it had then.

cURL — pnl axis
# 720 hours of BTC positioning by realized-PnL cohort, labelled point-in-time
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=pnl&labelBasis=point_in_time&hours=720"

A pinned window. Fixed start and end make the two calls cover exactly the same hours. On /symbols/hourly end is exclusive.

cURL — pinned
# funding for a fixed September window
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/symbols/hourly?symbols=BTC&start=2026-09-01T00:00:00Z&end=2026-10-01T00:00:00Z"

Before you rely on it

Drop the hour in progress before you join

The funding panel includes the current, unfinished hour: in this capture the 17:00 row was 12 minutes old. The cohort matrix serves settled hours only, so its newest hour is one to two hours back, and the two series end at different hours. A missing market-state value arrives as null, not 0. hours=720 returns about 720 x 12 rows, so expect a large response.

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_cohort_metrics tool answers the cohort side, at 1 credit a call; the funding rate comes from the REST call.

Ask your agent
In the last 30 days, when BTC funding on Hyperliquid was highest, were whales or small accounts more long?
Example response
{  "symbols": [    "BTC"  ],  "tz": "UTC",  "source": "1h fills rollup + hourly asset summary",  "start": 1792775536,  "end": 1792861936,  "columns": [    "ts",    "asset",    "close",    "open_interest",    "funding_rate",    "premium"  ],  "rows": [    [      1792850400,      "BTC",      80180.0,      43756.59462166664,      1.2500000000000004e-05,      -0.000251164475    ],    [      1792854000,      "BTC",      79789.0,      43080.143939999805,      9.31456935483871e-06,      -0.00045313535134408595    ],    [      1792857600,      "BTC",      80175.0,      43345.12522166666,      1.0013016666666666e-05,      -0.000436831925    ],    [      1792861200,      "BTC",      80110.0,      43647.63115,      3.3841e-06,      -0.00023684045    ]  ]}