vike

Example 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.

cURL
# 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.

Example response
{
  "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.

cURL — a week earlier
# 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.

cURL — 168 hours
# 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.

cURL — whole book
# 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 includes the bucket it falls in

A bucket counts when its hour starts at or before end: end=2026-10-17T17:00:00Z returns 17:00 as its newest bucket, end=2026-10-17T16:59:59Z returns 16:00.

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.

Ask your agent
Show a Commitments-of-Traders style report for BTC on Hyperliquid: long and short by account size
Example response
{  "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  }}