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.
# 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.
{
"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.
# 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.
# 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.
# 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.
In the last 30 days, when BTC funding on Hyperliquid was highest, were whales or small accounts more long?