Recipe 26 of 65
Positions of a Hyperliquid wallet or coin at a past time
Pass start and end to /v1/hyperliquid/positions with a symbol or a wallet, and it returns the open positions of the snapshots inside that window, labelled as they stood then.
GET /v1/hyperliquid/positions answers it in one call, from history as soon as you pass start. Bound it by symbol
or wallet and a short window, and you get every open position of the snapshots taken inside it: size, entry, mark,
liquidation price, leverage and the wallet's cohorts as they were at that hour. History starts on 2026-05-01. The full
parameter list is on Positions.
Quick answer
Name the coin and a short window around the moment.
# every open BTC position in the snapshots between 12:00 and 12:05 UTC on 2026-10-01
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&start=2026-10-01T12:00:00Z&end=2026-10-01T12:05:00Z&limit=3"Example response
Captured from the live API on 2026-10-24 at 17:15 UTC, trimmed to 2 of 3 rows; the label_computed block is cut.
snapshot_ts is the snapshot the row comes from. pnl_cohort is the wallet's realized-PnL cohort at the hour named
by pnl_cohort_as_of, and pnl_cohort_basis: "point_in_time" says it is that hour's label, not today's. size_usd
is the notional at that snapshot's mark_price. A nextCursor means the snapshot holds more rows.
{
"positions": [
{
"wallet": "0x0000000000bdc2fd416def2d8688069052eb0f87",
"symbol": "BTC",
"direction": "long",
"size_token": 0.00553,
"size_usd": 464.258431,
"entry_price": 69452.7555153707,
"mark_price": 83952.7,
"liquidation_price": 0.0,
"unrealized_pnl": 80.18469299999998,
"leverage": 0.0,
"leverage_type": "cross",
"margin_used": 464.258431,
"size_cohort": "shrimp",
"liq_progress": 0.0,
"dex_name": "HL",
"snapshot_ts": "2026-10-01T12:00:00+00:00",
"pnl_cohort": "rekt",
"pnl_abs_cohort": "-$10k-$0",
"pnl_cohort_as_of": "2026-10-01T12:00:00+00:00",
"pnl_cohort_basis": "point_in_time",
"opened_at": "2026-04-02T08:36:00+00:00"
},
{
"wallet": "0x0000005178d55139ba21423218ea7290a7ccdc81",
"symbol": "BTC",
"direction": "long",
"size_token": 0.00333,
"size_usd": 279.562491,
"entry_price": 84375.85285285285,
"mark_price": 83952.7,
"liquidation_price": 79405.2971452465,
"unrealized_pnl": -1.4090990000000168,
"leverage": 37.0,
"leverage_type": "cross",
"margin_used": 7.5557430000000005,
"size_cohort": "shrimp",
"liq_progress": 0.08513190028336558,
"dex_name": "HL",
"snapshot_ts": "2026-10-01T12:00:00+00:00",
"pnl_cohort": "3x loser",
"pnl_abs_cohort": "-$10k-$0",
"pnl_cohort_as_of": "2026-10-01T12:00:00+00:00",
"pnl_cohort_basis": "point_in_time",
"opened_at": "2026-04-02T08:36:00+00:00"
}
],
"nextCursor": "eyJhIjoiQlRDIiwiZCI6MSwibSI6Imhpc3QiLCJ0IjoiMjAyNi0xMC0wMSAxMjowMDowMCIsInciOiIweDAwMDBmYjRlNzYzYTVhNjE3ZTEyOTMwYzY3ODc3ZTlkMjVmY2Y0NjAifQ"
}Variations
One wallet at a past hour. With wallet, history defaults to resolution=1h: the last snapshot of each hour.
# everything one wallet held in the last snapshot of the 12:00 UTC hour on 2026-10-01
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?wallet=0x25773676902085225ae5751075e4161369334897&start=2026-10-01T12:00:00Z&end=2026-10-01T13:00:00Z&limit=500"The rest of the snapshot. Follow nextCursor with the same window.
# next page: NEXT is the previous response's nextCursor, with the same start and end
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&start=2026-10-01T12:00:00Z&end=2026-10-01T12:05:00Z&limit=5000&cursor=$NEXT"One cohort at that time. A historical cohort filter uses the label each wallet had then.
# the BTC positions of the 3x smart wallets at that time
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&axis=pnl&cohort=3x_smart&start=2026-10-01T12:00:00Z&end=2026-10-01T12:05:00Z&limit=1000"Before you rely on it
A window can hold zero, one or two snapshots
Snapshots are 5 to 7 minutes apart and irregular, so a 5-minute window can miss every snapshot or catch two. For the
state at one moment, ask for 10 minutes ending at that moment and keep only the rows of the latest snapshot_ts.
The 5-minute snapshots begin 2026-05-08; a start before 2026-05-01 is refused with a 400, and end without start
is refused too.
History pages in key order
Rows come ordered by symbol, snapshot_ts and wallet, not by size, and one BTC snapshot holds tens of thousands of
positions, so read it in pages of 5,000. A window with no symbol and no wallet scans every coin and is slow. A historical pnl
or pnl_abs cohort filter needs symbol or wallet.
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 with view: positions, start and end, at 1 credit a call.
Which BTC positions were open on Hyperliquid at 12:00 UTC on 2026-10-01?