vike

Recipe 3 of 33

Whales vs retail: alert when their positioning diverges

Poll a coin's Whale-vs-Shrimp Index, the whales' long share minus the small accounts' long share, and alert when it crosses your threshold.

GET /v1/hl-cohorts/symbols/{symbol}/indices answers it in one call. Its wsi, the Whale-vs-Shrimp Index, is the long share of the whale accounts ($1m and up) minus the long share of the shrimp accounts (under $10k), from -1 to +1; 0 means both groups are equally long. latest is the newest 5-minute snapshot and series the settled hours, so one call gives the reading and its recent range. The full parameter list is on Coin indices.

Quick answer

hours=24 adds the last day of settled readings to the current one.

cURL
# BTC whale-vs-shrimp divergence now, plus the last 24 settled hours
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/indices?hours=24"

Example response

Captured from the live API on 2026-10-24 at 17:12 UTC, trimmed to 4 of 24 series rows. At the 17:07 UTC snapshot wsi was -0.33: the whales' long share was 33 points below the shrimps'. Values are ratios; the website shows them multiplied by 100. An alert is a rule on this number, for example "fire when latest.wsi is below -0.3 or above +0.3".

Example response
{
  "symbol": "BTC",
  "label_basis": "point_in_time",
  "latest": {
    "ts": "2026-10-24T17:07:00+00:00",
    "smi": -0.105745,
    "wsi": -0.333305,
    "whale_bias": -0.196333,
    "smart_bias": -0.1028,
    "label_basis": "current"
  },
  "series": [
    {
      "ts": "2026-10-24T16:00:00+00:00",
      "smi": -0.099091,
      "wsi": -0.306365
    },
    {
      "ts": "2026-10-24T15:00:00+00:00",
      "smi": -0.111421,
      "wsi": -0.377369
    },
    {
      "ts": "2026-10-24T14:00:00+00:00",
      "smi": -0.116197,
      "wsi": -0.371108
    },
    {
      "ts": "2026-10-24T13:00:00+00:00",
      "smi": -0.137182,
      "wsi": -0.335198
    }
  ],
  "has_more": false
}

Variations

Poll one number. Keep only the field the rule needs.

cURL — one value
# the current divergence and the snapshot it was read at
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/indices?hours=1" \
  | jq '{ts: .latest.ts, wsi: .latest.wsi}'

Pick a threshold from history. A year of hourly wsi shows how far the index usually swings on this coin. limit caps a page at 5000 rows and has_more says older ones remain.

cURL — a year
# up to a year of hourly readings, newest first
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/indices?hours=8760" \
  | jq '[.series[].wsi | select(. != null)] | {n: length, min: min, max: max}'

Your own groups, with a freshness verdict. The size matrix lets you define "whale" and "retail" yourself, and its freshness.stale says whether the newest settled hour is late.

cURL — size matrix
# every account-size cohort on BTC for the newest settled hour, with freshness
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&hours=1" \
  | jq '{freshness, rows: [.metrics[] | {cohort, bias}]}'

Before you rely on it

You poll; nothing is pushed

There is no push or webhook for this index: an alert is your own job that polls the endpoint and checks the rule. latest moves with the 5-minute snapshot, while series and the size matrix are settled hours that land one to two hours late. Check latest.ts, or freshness.stale on /cohort-metrics, before you fire on an old reading. A value is null, never 0, when one group holds no position on the coin.

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_market tool answers (view indices), at 1 credit a call.

Ask your agent
Is the Whale-vs-Shrimp Index on BTC below -0.3 right now?
Example response
{  "symbol": "BTC",  "label_basis": "point_in_time",  "latest": {    "ts": "2026-10-24T17:07:00+00:00",    "smi": -0.105745,    "wsi": -0.333305,    "whale_bias": -0.196333,    "smart_bias": -0.1028,    "label_basis": "current"  },  "series": [    {      "ts": "2026-10-24T16:00:00+00:00",      "smi": -0.099091,      "wsi": -0.306365    },    {      "ts": "2026-10-24T15:00:00+00:00",      "smi": -0.111421,      "wsi": -0.377369    },    {      "ts": "2026-10-24T14:00:00+00:00",      "smi": -0.116197,      "wsi": -0.371108    },    {      "ts": "2026-10-24T13:00:00+00:00",      "smi": -0.137182,      "wsi": -0.335198    }  ],  "has_more": false}