vike

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.

cURL
# 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.

Example response
{
  "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.

cURL — one wallet
# 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.

cURL — next page
# 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.

cURL — one cohort
# 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.

Ask your agent
Which BTC positions were open on Hyperliquid at 12:00 UTC on 2026-10-01?
Example response
{  "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"}