Recipe 2 of 33
How are crypto speculators positioned? A Commitments-of-Traders view for crypto
Split one Hyperliquid market's open interest into long and short by account-size category with one call, then repeat it with an earlier end for the weekly change.
GET /v1/hl-cohorts/symbols/{symbol}/cohort-metrics with axis=size answers it in one call. A
Commitments-of-Traders report splits a market's open interest by trader category; this splits one Hyperliquid
perp's open interest by account size, one row per category with its long notional, total notional and position
counts for the newest settled hour. The full parameter list is on
Coin cohort metrics.
Quick answer
BTC here; any Hyperliquid ticker works in the path.
# BTC open interest by account-size category, long and short, newest settled hour
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&hours=1"Example response
Captured from the live API on 2026-10-24 at 17:11 UTC, trimmed to 5 of 12 categories.
Long is total_position_value_long, short is total_position_value minus it, both in USD; the
_size fields are the same split in BTC. The largest accounts (4x whale, $10m and up) were 21%
long on $1.16B, while the smallest (shrimp, under $1k) were 67% long across 29,075 positions.
{
"axis": "size",
"label_basis": "point_in_time",
"metrics": [
{
"ts": "2026-10-24T16:00:00+00:00",
"cohort": "4x whale",
"position_count": 22,
"position_count_long": 7,
"total_position_value": 1163976506.0,
"total_position_value_long": 246682718.2,
"total_unrealized_pnl": -7969237.26,
"total_position_size": 14570.28685,
"total_position_size_long": 3087.89563,
"bias": -0.576137977,
"label_basis": "point_in_time",
"grading": null
},
{
"ts": "2026-10-24T16:00:00+00:00",
"cohort": "whale",
"position_count": 104,
"position_count_long": 58,
"total_position_value": 460673104.4,
"total_position_value_long": 274952948.7,
"total_unrealized_pnl": -16449223.58,
"total_position_size": 5766.61979,
"total_position_size_long": 3441.80325,
"bias": 0.1937008958,
"label_basis": "point_in_time",
"grading": null
},
{
"ts": "2026-10-24T16:00:00+00:00",
"cohort": "dolphin",
"position_count": 574,
"position_count_long": 372,
"total_position_value": 163566953.2,
"total_position_value_long": 112704228.8,
"total_unrealized_pnl": -2336336.234,
"total_position_size": 2047.50014,
"total_position_size_long": 1410.81401,
"bias": 0.3780806769,
"label_basis": "point_in_time",
"grading": null
},
{
"ts": "2026-10-24T16:00:00+00:00",
"cohort": "fish",
"position_count": 1805,
"position_count_long": 1173,
"total_position_value": 134061757.2,
"total_position_value_long": 94985957.83,
"total_unrealized_pnl": -1754803.384,
"total_position_size": 1678.15134,
"total_position_size_long": 1189.01294,
"bias": 0.4170477819,
"label_basis": "point_in_time",
"grading": null
},
{
"ts": "2026-10-24T16:00:00+00:00",
"cohort": "shrimp",
"position_count": 29075,
"position_count_long": 20534,
"total_position_value": 58006945.99,
"total_position_value_long": 38762227.59,
"total_unrealized_pnl": -349867.7977,
"total_position_size": 726.50801,
"total_position_size_long": 485.55114,
"bias": 0.3364684842,
"label_basis": "point_in_time",
"grading": null
}
],
"hours": 1,
"nextCursor": "eyJtIjoiY29ob3J0X21ldHJpY3MiLCJ0IjoiMjAyNi0xMC0yNCAxNjowMDowMCJ9",
"grading": null,
"freshness": {
"newest_ts": "2026-10-24T16:00:00+00:00",
"behind_hours": 1,
"settled_lag_ceiling_hours": 3,
"stale": false
}
}Variations
The same report a week earlier. end without start returns the newest hours at or before it, so the week-on-week change is a
second call; ending at 16:59:59 keeps the 16:00 hour. On 2026-10-17 at 16:00 UTC 4x whale was 23% long on $936M and shrimp 71% long.
# the same report at an earlier hour: end is ISO-8601 UTC
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&end=2026-10-17T16:59:59Z&hours=1"Every hour of the week. hours=168 returns a week of hourly buckets, every category in each.
# a week of hourly reports for BTC, newest first
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&hours=168"One category across every market. /segments/{cohort}/summary sums one category over every perp at the newest 5-minute snapshot.
# what the $10m-and-up accounts hold across all of Hyperliquid
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/segments/4x_whale/summary?axis=size"Before you rely on it
Categories are account sizes, on one venue
These are Hyperliquid wallets only, grouped by the account value of each wallet, not by trader type as in a regulator's report. Every long has a short on the other side, so the categories net to roughly zero across the market: read a category's bias against the others. Rows are hourly and settled, so the newest one is one to two hours old.
End a window at HH:59:59
An hourly bucket is stamped with its hour but matched against the time of its last snapshot, which falls inside
the hour, so an end exactly on the hour leaves that hour out: end=2026-10-17T17:00:00Z returns 16:00 as its
newest bucket. End at HH:59:59 to keep hour HH.
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, at 1 credit a call.
Show a Commitments-of-Traders style report for BTC on Hyperliquid: long and short by account size