HL Cohorts REST
Every endpoint under /v1/hl-cohorts — the Hyperliquid cohort ladders, point-in-time cohort labels and positioning by cohort, from one cohort's hourly history to the symbol × cohort board.
10 operations, every one a GET, all under https://data.vike.io/v1/hl-cohorts/.
HL Cohorts is Hyperliquid positioning grouped by cohort. Every wallet sits on ladders — its
account size, the percentile of its realized PnL, the same PnL in dollar bands — and these routes
answer how each rung is positioned: at the latest snapshot, hour by hour, per symbol or across the
whole book.
Every path in this namespace is written relative to https://data.vike.io/v1/hl-cohorts. The
fenced line at the top of each endpoint's page carries the full path.
Start here
| Task | Endpoint |
|---|---|
Get the exact label strings ?cohort= accepts, per ladder | /cohorts |
| Read every ladder's bounds and slugs, and which axes can group | /segments |
| See how one cohort is positioned right now | /segments/{cohort}/summary |
| Chart one cohort's long, short and bias across the whole book by the hour, with its leverage against equity | /segments/{cohort}/history |
| Chart how whales and smart money are positioned on BTC by the hour | /symbols/{symbol}/cohort-metrics |
| Read a symbol's Smart Money and Whale-vs-Shrimp indices | /symbols/{symbol}/indices |
| See every symbol × every cohort in one call | /heatmap |
| Watch a symbol's large fills with the wallets' cohorts | /symbols/{symbol}/large-fills |
What it looks like in use
# orient: the exact labels of every ladder, the strings ?cohort= accepts
curl -s "https://data.vike.io/v1/hl-cohorts/cohorts" \
-H "X-API-KEY: $VIKE_API_KEY"
# now: how the largest accounts are positioned at the latest snapshot
curl -s "https://data.vike.io/v1/hl-cohorts/segments/4x_whale/summary?axis=size" \
-H "X-API-KEY: $VIKE_API_KEY"
# history: the same cohort across the whole book, hourly, for the last week
curl -s "https://data.vike.io/v1/hl-cohorts/segments/4x_whale/history?axis=size" \
-H "X-API-KEY: $VIKE_API_KEY"
# one symbol: every size cohort on BTC, hourly, in one call
curl -s "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&hours=24" \
-H "X-API-KEY: $VIKE_API_KEY"Before you call anything
Auth. The same key and the same shared hourly counter as every other namespace — see Authentication and Rate limits.
Errors. Input the service rejected is a 400 (an unknown cohort on
/segments/{cohort}/history is a 404), an upstream data failure is a 503, and a rate-limit
trip is a 429. A failure is never reported as a 200 with an empty body. See
Errors.
Paging. /symbols/{symbol}/metrics and /symbols/{symbol}/cohort-metrics return nextCursor
— pass it back verbatim. /segments/{cohort}/history and /symbols/{symbol}/indices page back by
end and say has_more. /symbols/{symbol}/large-fills has no paging: its view holds at most 200
fills per symbol.
The ladders and the labels
axis picks the ladder and cohort one rung on it: size (account value), pnl (percentile of
cumulative realized PnL), pnl_abs (the same PnL in dollar bands) and the per-position tier.
Cohorts and axes defines them and says which axes can group.
A cohort label is a fact about a wallet at one moment, so the routes that return history say which
moment their labels come from (label_basis, and label_computed where a PnL grading is
involved). /symbols/{symbol}/cohort-metrics with labelBasis=point_in_time serves each hour's label as it
stood that hour, which is what a backtest needs; Label basis has the
rules.
Ladders
| Path | What it answers |
|---|---|
/cohorts | The canonical cohort ladders as flat label sets — the exact strings ?cohort= accepts. |
/segments | The detailed catalogue: every bucket on every axis with its boundaries, slug, rank, basis and a groupable flag. |
One cohort
| Path | What it answers |
|---|---|
/segments/{cohort}/summary | Aggregate positioning for one cohort at the latest snapshot. |
/segments/{cohort}/history | One cohort's hourly long, short and bias summed over every symbol, and with include=leverage its perp bias and exposure against equity. |
The board
| Path | What it answers |
|---|---|
/heatmap | The coin × cohort positioning matrix — the whole board in one call. |
Symbols
{symbol} is an HL ticker such as BTC.
| Path | What it answers |
|---|---|
/symbols/{symbol}/metrics | Hourly open-interest / position-count / bias series for one coin, optionally sliced to a single cohort. |
/symbols/{symbol}/cohort-metrics | The full cohort matrix for one coin — every bucket on an axis, hourly. |
/symbols/{symbol}/size-breakdown | Positioning for one coin split by the canonical ten position-size buckets. |
/symbols/{symbol}/indices | The Smart Money Index, Whale-vs-Shrimp Index and whale and smart bias, as ratios: the newest snapshot and the hourly series. |
/symbols/{symbol}/large-fills | The asset page's Whale Activity feed: the newest fills over $50,000, with each wallet's cohorts. |
How this differs from the Hyperliquid namespace
/v1/hyperliquid is wallet- and market-level: one wallet's history,
positions, leaderboards, liquidations, builders, candles and the file archive. A cohort there is a
filter — /positions, /leaderboard and /liquidations/risk take axis and cohort to
narrow their rows, and /wallets/{address} reports one wallet's labels. Here the cohort is the unit
the answer is grouped by.
Seven of these routes used to be documented under /v1/hyperliquid/. All ten still answer at
/v1/hyperliquid/<path>, served by the same handler with the same parameters and the same body, but
only the /v1/hl-cohorts/ paths are in the OpenAPI document. The older
/v1/hyperliquid/coins/{symbol}/... spellings of three of them have no /v1/hl-cohorts/ twin.
Related
- Cohorts and axes and Label basis — the ladders, and when a label was computed.
- Hyperliquid MCP tools —
hl_segments,hl_cohort_metricsandhl_marketserve these routes as tools, calling the same query functions. - Backtest cohort positioning without lookahead — the point-in-time matrix joined to candles.
- Rate limits — the shared hourly counter these calls spend.
- Errors — the status codes and the error envelope.
/archive/url
Asks for a temporary download link to one Hyperliquid archive file — a fills or positions day, or the 5-minute latest positions file. The link needs no key, names exactly one file and works for 300 seconds.
/cohorts
The canonical cohort ladders as flat label sets — the exact strings ?cohort= accepts.