Position snapshots
Open Hyperliquid positions captured every 5 minutes — the latest snapshot, or history by window.
Open Hyperliquid positions captured every 5 minutes — the latest snapshot, or history by window.
Coverage and cadence
Cadence. Snapshot every 5 minutes; archive one file per UTC day
API: latest open positions (freshness-gated to the newest 15 minutes of snapshots) or historical 5-minute snapshots: pass start (and optionally end), and bound the read by symbol or wallet. Every row says which pnl-cohort label it carries (pnl_cohort_basis). Keyset pagination: nextCursor back as cursor, limit up to 5,000. Archive: positions.parquet per UTC day from 2026-05-08 (CC BY 4.0), every open position at every snapshot of the day, plus one file of the current open positions replaced every 5 minutes (date=latest). Each file comes as a temporary link from /archive/url; /archive/datasets lists the days and the file's own columns.
Fields
| Field | Type | Description |
|---|---|---|
wallet | string | Account address, 0x-prefixed |
symbol | string | Symbol; HIP-3 DEX symbols carry their DEX prefix, e.g. xyz:SILVER |
direction | string | long | short |
size_token | number | Position size in coin units |
size_usd | number | Notional at mark, USD |
entry_price | number | Average entry price |
mark_price | number | Mark price at the snapshot |
liquidation_price | number | Liquidation price as reported; 0.0 when none is reported |
unrealized_pnl | number | Mark-to-market PnL, USD |
leverage | number | Position leverage as reported |
leverage_type | string | cross | isolated |
margin_used | number | Margin backing the position, USD |
size_cohort | string | Account-value rung, e.g. whale (size ladder) |
pnl_cohort | string | Realized-PnL percentile rung, or unknown under 10 closed trades |
pnl_abs_cohort | string | Realized-PnL dollar band, e.g. -$10k-$0 |
liq_progress | number | How far price has moved toward liquidation (0 = none); > 0.5 counts as at risk |
dex_name | string | HL, or the HIP-3 DEX the position is on |
snapshot_ts | string | Snapshot instant, ISO-8601 UTC |
pnl_cohort_basis | string | point_in_time | current — which label the row carries |
pnl_cohort_as_of | string|null | Hour the point-in-time label was computed at; null for current |
opened_at | string|null | When the position was first seen open, ISO-8601 UTC; null when unknown |
How to get it
- REST —
GET /v1/hyperliquid/positions - Archive — one Parquet file per UTC day:
GET /v1/hyperliquid/archive/urlhands out a temporary link to one file,GET /v1/hyperliquid/archive/datasetslists the days and columns; free samples need no key (manifest); see Download the Hyperliquid file archive.
Sample call
The call the dataset explorer builds:
curl -s "https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&limit=10" \
-H "X-API-KEY: $VIKE_API_KEY"Analytics built on it
- Cohort positioning — What one cohort holds across every symbol: long and short notional, bias, wallets in profit and leverage over native perp equity at the latest snapshot, or long, short and bias hour by hour from 2026-04-07 (axis=size or pnl), with the leverage ratios on request.
- Cohort heatmap — Every symbol against every cohort of one ladder (size, pnl or pnl_abs) at the latest 5-minute snapshot: the whole positioning board in one call.
- Symbol cohort series — One symbol's hourly open interest, position count and bias (all cohorts or one), its current split by position-size bucket, and the Smart Money and Whale-vs-Shrimp indices as ratios.
- Large fills — One symbol's fills of $50,000 or more from the last 24 hours, newest first, with the wallet's size and PnL cohort; the feed keeps the newest 200 per symbol, so on a busy symbol it reaches back minutes.