Recipe 23 of 33
How do I check Hyperliquid cohort data is fresh before I trade on it?
Read the freshness block of /symbols/{symbol}/cohort-metrics; stale is true when the newest hourly bucket is more than 3 hours behind, and the 5-minute snapshot time is latest.ts on /indices.
GET /v1/hl-cohorts/symbols/{symbol}/cohort-metrics answers it in one call. Ask for the newest hour without an
end and the envelope carries freshness: the newest bucket's newest_ts, how many whole hours it is
behind_hours the current hour, the settled_lag_ceiling_hours the service allows, and a stale verdict you can
test in one line. The full parameter list is on
Coin cohort metrics, and
Freshness explains the block.
Quick answer
No end, so the window reaches the present and the block is there.
# the newest settled hour of BTC's cohort matrix, with the freshness verdict in the envelope
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?hours=1"Example response
Captured from the live API on 2026-10-24 at 17:15 UTC, trimmed to 1 row of 12 (one per size cohort).
At 17:15 the newest settled hour was 16:00, one hour behind the current hour, so stale is false. A bucket up to
two hours behind is healthy, and stale turns true only above the ceiling of 3. Refuse to trade on the matrix while
stale is true.
{
"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
}
],
"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 5-minute snapshot time. latest.ts on /indices is the newest 5-minute position snapshot; compare it with your clock. It read 17:07 at a
17:14 UTC capture.
# the time of the newest 5-minute snapshot
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/indices?hours=1" \
| jq '.latest.ts'The latest positions file. The archive index says when the 5-minute positions file was last written: snapshot_ts was 17:07 and generated_at
17:12:20 at capture.
# the newest snapshot in the latest positions file and when the file was written
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/archive/datasets" \
| jq '.latest.positions | {snapshot_ts, generated_at}'The hour in progress. /symbols/{symbol}/metrics adds one provisional row for the hour still in progress, so it trails the clock by
minutes rather than hours. Drop that row before you store the series.
# the two newest hourly rows of BTC, the first one provisional
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/metrics?limit=2"Before you rely on it
No freshness block is not the same as fresh
freshness appears only on a window that reaches the present: a request with an end in the past gets none, so test
for the key before you read stale. grading=realized-pit reads a frozen research set and comes back days behind in
the same shape as a live answer; only freshness tells them apart. The hourly series of
/segments/{cohort}/history and the series of /indices can still change after an hour first appears: on 2026-10-24 the whale cohort's 16:00 row read $1.164B long at 17:15 UTC and $1.143B at 17:19 UTC.
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.
Is the Hyperliquid cohort data for BTC fresh right now? Show the freshness blockRelated
- Feed Hyperliquid cohort bias into a trading bot as an external signal
- Whales vs retail: alert when their positioning diverges
- Download the current open positions of every Hyperliquid asset, refreshed every 5 minutes
- Is a day of Hyperliquid snapshots complete? Count the 5-minute snapshots and spot gaps