vike

Recipe 24 of 65

Every open position on a Hyperliquid coin: who holds the biggest longs and shorts, and how much equity do they have?

/v1/hyperliquid/positions?symbol=BTC&sort=size returns the biggest open positions of one coin, largest first, each with the wallet's account value.

GET /v1/hyperliquid/positions answers it in one call: with symbol and sort=size it returns the open positions of one coin, biggest notional first, up to 500 of them. Each row has the wallet, the side, the size in coins and in USD, entry, mark and liquidation prices, leverage, and account_value: the wallet's perp account value in USD. Divide size_usd by account_value for how many times its equity the wallet has on this one coin. The full parameter list is on Positions.

Quick answer

Name the coin and sort by size.

cURL
# the 20 biggest open BTC positions, longs and shorts together, largest first
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&sort=size&limit=20"

Example response

Captured from the live API on 2026-10-24 at 17:15 UTC, trimmed to 3 of 20 rows; the label_computed block is cut.

size_usd is the notional at mark_price, in USD, and is never negative: the side is direction. The biggest BTC position in the capture is a $211.7M short held by a wallet with $142.9M of account value, so 1.48 times its equity on BTC alone. leverage is the leverage set on the position (5x here), which is not the same number. Of the 20 rows, 10 were longs and 10 shorts.

Example response
{
  "positions": [
    {
      "wallet": "0x5b5d51203a0f9079f8aeb098a6523a13f298c060",
      "symbol": "BTC",
      "direction": "short",
      "size_token": 2637.9539,
      "size_usd": 211722443.80939,
      "entry_price": 76327.4353021245,
      "mark_price": 80260.1,
      "liquidation_price": 145332.3757904606,
      "unrealized_pnl": -10374188.177153,
      "leverage": 5.0,
      "leverage_type": "cross",
      "margin_used": 42344488.761878,
      "size_cohort": "4x whale",
      "pnl_cohort": "3x smart",
      "pnl_abs_cohort": "$1m+",
      "liq_progress": 0.05699105991606848,
      "dex_name": "HL",
      "snapshot_ts": "2026-10-24T17:07:00+00:00",
      "pnl_cohort_as_of": null,
      "pnl_cohort_basis": "current",
      "opened_at": "2026-07-16T10:29:00+00:00",
      "account_value": 142888148.427184
    },
    {
      "wallet": "0xb83de012dba672c76a7dbbbf3e459cb59d7d6e36",
      "symbol": "BTC",
      "direction": "short",
      "size_token": 2515.94893,
      "size_usd": 201930312.716693,
      "entry_price": 78114.44369861991,
      "mark_price": 80260.1,
      "liquidation_price": 137003.0187169948,
      "unrealized_pnl": -5398361.675604999,
      "leverage": 5.0,
      "leverage_type": "cross",
      "margin_used": 40386062.543338604,
      "size_cohort": "4x whale",
      "pnl_cohort": "3x smart",
      "pnl_abs_cohort": "$1m+",
      "liq_progress": 0.03643586724098158,
      "dex_name": "HL",
      "snapshot_ts": "2026-10-24T17:07:00+00:00",
      "pnl_cohort_as_of": null,
      "pnl_cohort_basis": "current",
      "opened_at": "2026-07-09T06:11:00+00:00",
      "account_value": 129704230.674856
    },
    {
      "wallet": "0xfc27136e42af1732ddc9ce2605ea9bff1b959d9d",
      "symbol": "BTC",
      "direction": "short",
      "size_token": 1244.11428,
      "size_usd": 99852736.524228,
      "entry_price": 81790.771078304,
      "mark_price": 80260.1,
      "liquidation_price": 92614.1993014101,
      "unrealized_pnl": 1904329.7465009908,
      "leverage": 25.0,
      "leverage_type": "cross",
      "margin_used": 3994109.4609691203,
      "size_cohort": "4x whale",
      "pnl_cohort": "3x smart",
      "pnl_abs_cohort": "$1m+",
      "liq_progress": 0.0,
      "dex_name": "HL",
      "snapshot_ts": "2026-10-24T17:07:00+00:00",
      "pnl_cohort_as_of": null,
      "pnl_cohort_basis": "current",
      "opened_at": "2026-04-10T19:17:00+00:00",
      "account_value": 17787758.025393
    }
  ],
  "nextCursor": null
}

Variations

The 500 biggest. 500 is the most sort=size returns. Ask for all of it when you need enough rows of each side.

cURL — top 500
# the 500 biggest BTC positions
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&sort=size&limit=500"

Longs only, with equity multiple. There is no side filter, so split the rows yourself.

cURL — longs and their equity multiple
# the biggest BTC longs and how many times their account value each one holds on BTC
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&sort=size&limit=500" \
  | jq '[.positions[] | select(.direction == "long") | {wallet, size_usd, account_value, x_equity: (if (.account_value // 0) > 0 then .size_usd / .account_value else null end)}] | .[:20]'

Every open position, page by page. Without sort=size the route pages through every open position of the coin, 5,000 at a time, in wallet-address order. Pass nextCursor back until it is null.

cURL — every position
# every open BTC position: the first page of 5,000, ordered by wallet address, not by size
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&limit=5000"

A HIP-3 market. The same call works for a builder-dex market, spelled dex:TICKER.

cURL — HIP-3
# the biggest open xyz:TSLA positions
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/positions?symbol=xyz:TSLA&sort=size&limit=20"

Before you rely on it

account_value is the main-venue account only

account_value is the wallet's native perp account value at the newest snapshot. It leaves out the separate account a wallet holds on a builder dex, so a wallet that trades only xyz: markets reads about 0, and the equity multiple is meaningless there. It is null when unknown, never 0 for unknown, and it covers every position of the wallet, not just this coin.

A position closed in the last 15 minutes can still be listed

Current rows are the positions seen within 15 minutes of the newest snapshot, which runs about every 5 minutes. A position closed or flipped inside that window can still appear, so a wallet that flipped side shows twice. sort=size needs symbol, takes no cursor and refuses start and end. opened_at is the first snapshot that ever saw this wallet on this side of this coin, so a position closed and reopened keeps the older date.

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 and sort: size, at 1 credit a call.

Ask your agent
Who are the 20 biggest BTC longs and shorts on Hyperliquid right now, and how much account value does each wallet have?
Example response
{  "positions": [    {      "wallet": "0x5b5d51203a0f9079f8aeb098a6523a13f298c060",      "symbol": "BTC",      "direction": "short",      "size_token": 2637.9539,      "size_usd": 211722443.80939,      "entry_price": 76327.4353021245,      "mark_price": 80260.1,      "liquidation_price": 145332.3757904606,      "unrealized_pnl": -10374188.177153,      "leverage": 5.0,      "leverage_type": "cross",      "margin_used": 42344488.761878,      "size_cohort": "4x whale",      "pnl_cohort": "3x smart",      "pnl_abs_cohort": "$1m+",      "liq_progress": 0.05699105991606848,      "dex_name": "HL",      "snapshot_ts": "2026-10-24T17:07:00+00:00",      "pnl_cohort_as_of": null,      "pnl_cohort_basis": "current",      "opened_at": "2026-07-16T10:29:00+00:00",      "account_value": 142888148.427184    },    {      "wallet": "0xb83de012dba672c76a7dbbbf3e459cb59d7d6e36",      "symbol": "BTC",      "direction": "short",      "size_token": 2515.94893,      "size_usd": 201930312.716693,      "entry_price": 78114.44369861991,      "mark_price": 80260.1,      "liquidation_price": 137003.0187169948,      "unrealized_pnl": -5398361.675604999,      "leverage": 5.0,      "leverage_type": "cross",      "margin_used": 40386062.543338604,      "size_cohort": "4x whale",      "pnl_cohort": "3x smart",      "pnl_abs_cohort": "$1m+",      "liq_progress": 0.03643586724098158,      "dex_name": "HL",      "snapshot_ts": "2026-10-24T17:07:00+00:00",      "pnl_cohort_as_of": null,      "pnl_cohort_basis": "current",      "opened_at": "2026-07-09T06:11:00+00:00",      "account_value": 129704230.674856    },    {      "wallet": "0xfc27136e42af1732ddc9ce2605ea9bff1b959d9d",      "symbol": "BTC",      "direction": "short",      "size_token": 1244.11428,      "size_usd": 99852736.524228,      "entry_price": 81790.771078304,      "mark_price": 80260.1,      "liquidation_price": 92614.1993014101,      "unrealized_pnl": 1904329.7465009908,      "leverage": 25.0,      "leverage_type": "cross",      "margin_used": 3994109.4609691203,      "size_cohort": "4x whale",      "pnl_cohort": "3x smart",      "pnl_abs_cohort": "$1m+",      "liq_progress": 0.0,      "dex_name": "HL",      "snapshot_ts": "2026-10-24T17:07:00+00:00",      "pnl_cohort_as_of": null,      "pnl_cohort_basis": "current",      "opened_at": "2026-04-10T19:17:00+00:00",      "account_value": 17787758.025393    }  ],  "nextCursor": null}