vike
API EndpointsHyperliquid

/positions/match

"Who else is in this trade" — open positions matching a coin/side/leverage/entry profile, the reverse lookup from a shared position card.

GET https://data.vike.io/v1/hyperliquid/positions/match

"Who else is in this trade" — open positions matching a coin/side/leverage/entry profile, the reverse lookup from a shared position card. Runs the same implementation as the hl_position_match tool on the Data MCP server.

cURL
# who else holds this trade: a 40x BTC long entered at 78,001.68, ranked by closeness to the mark
curl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=long&leverage=40&entry_price=78001.68&mark_price=77710&limit=3" \
  -H "X-API-KEY: $VIKE_API_KEY"

# the same lookup for a short; mark_price omitted, so ranking uses entry_price
curl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=short&leverage=25&entry_price=78500&limit=10" \
  -H "X-API-KEY: $VIKE_API_KEY"

# ask for what the route will actually serve: limit is clamped into 1-50
curl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=long&leverage=10&entry_price=78000&limit=50" \
  -H "X-API-KEY: $VIKE_API_KEY"

# how crowded is a low-leverage short: count the matches (at most 50)
curl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=short&leverage=5&entry_price=78000&limit=50" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.matches | length'
coinqueryrequired
HL coin ticker, e.g. BTC
sidequeryrequired
long | short
leveragequeryrequired
Numeric, positive. Matched within ±0.5 absolute
entry_pricequeryrequired
Numeric, positive
mark_pricequeryoptional
Ranks the matches. Defaults to entry_price when omitted
limitqueryoptional
Declared default 50 and max 500, but clamped into 1–50 — a larger request is served at 50, not rejected
Example response
{
  "matches": [
    {
      "address": "0x0000005178d55139ba21423218ea7290a7ccdc81",
      "coin": "BTC",
      "side": "long",
      "snapshot_ts": 1788422340,
      "size_token": 0.00467,
      "size_usd": 362.90569999999997,
      "entry_price": 78001.6773019272,
      "mark_price": 77710.0,
      "leverage": 40.0,
      "liquidation_price": 77064.4662131028,
      "unrealized_pnl": -1.362132999999992,
      "entry_dist_pct": 0.0
    },
    {
      "address": "0xf94d1cfd380bbaa0d7ca33e00700e7e6be836ab1",
      "coin": "BTC",
      "side": "long",
      "snapshot_ts": 1788422340,
      "size_token": 0.035,
      "size_usd": 2719.8500000000004,
      "entry_price": 78001.85714285714,
      "mark_price": 77710.0,
      "leverage": 40.0,
      "liquidation_price": 0.0,
      "unrealized_pnl": -10.215000000000074,
      "entry_dist_pct": 0.0002
    },
    {
      "address": "0x76d81fdfc8226f371529d596f52d208279127663",
      "coin": "BTC",
      "side": "long",
      "snapshot_ts": 1788422340,
      "size_token": 0.00015,
      "size_usd": 11.6565,
      "entry_price": 78002.0,
      "mark_price": 77710.0,
      "leverage": 40.0,
      "liquidation_price": 77077.3805907173,
      "unrealized_pnl": -0.0438,
      "entry_dist_pct": 0.0004
    }
  ],
  "match_count": 3,
  "tolerance_used": "tight",
  "query": {
    "coin": "BTC",
    "side": "long",
    "leverage": 40.0,
    "entry_price": 78001.68,
    "mark_price_hint": 77710.0
  }
}

limit is documented as max 500 and clamped to 50

The parameter is accepted up to 500 and then clamped into 1–50. A larger request is served at 50, not rejected.

It walks three widening tolerance bands on entry price — tight 0.05%, then 0.5%, then a 1.0% fallback — and returns the first band that matches, ranked by mark-price proximity. So a match is not necessarily a 0.05% match; check the reported band.

Only positions seen within 15 minutes of the newest snapshot batch are matched, which is why this returns fewer rows than the history holds: Freshness.

cURL
# who else holds this trade: a 40x BTC long entered at 78,001.68, ranked by closeness to the markcurl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=long&leverage=40&entry_price=78001.68&mark_price=77710&limit=3" \  -H "X-API-KEY: $VIKE_API_KEY"# the same lookup for a short; mark_price omitted, so ranking uses entry_pricecurl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=short&leverage=25&entry_price=78500&limit=10" \  -H "X-API-KEY: $VIKE_API_KEY"# ask for what the route will actually serve: limit is clamped into 1-50curl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=long&leverage=10&entry_price=78000&limit=50" \  -H "X-API-KEY: $VIKE_API_KEY"# how crowded is a low-leverage short: count the matches (at most 50)curl -s "https://data.vike.io/v1/hyperliquid/positions/match?coin=BTC&side=short&leverage=5&entry_price=78000&limit=50" \  -H "X-API-KEY: $VIKE_API_KEY" \  | jq '.matches | length'
Example response
{  "matches": [    {      "address": "0x0000005178d55139ba21423218ea7290a7ccdc81",      "coin": "BTC",      "side": "long",      "snapshot_ts": 1788422340,      "size_token": 0.00467,      "size_usd": 362.90569999999997,      "entry_price": 78001.6773019272,      "mark_price": 77710.0,      "leverage": 40.0,      "liquidation_price": 77064.4662131028,      "unrealized_pnl": -1.362132999999992,      "entry_dist_pct": 0.0    },    {      "address": "0xf94d1cfd380bbaa0d7ca33e00700e7e6be836ab1",      "coin": "BTC",      "side": "long",      "snapshot_ts": 1788422340,      "size_token": 0.035,      "size_usd": 2719.8500000000004,      "entry_price": 78001.85714285714,      "mark_price": 77710.0,      "leverage": 40.0,      "liquidation_price": 0.0,      "unrealized_pnl": -10.215000000000074,      "entry_dist_pct": 0.0002    },    {      "address": "0x76d81fdfc8226f371529d596f52d208279127663",      "coin": "BTC",      "side": "long",      "snapshot_ts": 1788422340,      "size_token": 0.00015,      "size_usd": 11.6565,      "entry_price": 78002.0,      "mark_price": 77710.0,      "leverage": 40.0,      "liquidation_price": 77077.3805907173,      "unrealized_pnl": -0.0438,      "entry_dist_pct": 0.0004    }  ],  "match_count": 3,  "tolerance_used": "tight",  "query": {    "coin": "BTC",    "side": "long",    "leverage": 40.0,    "entry_price": 78001.68,    "mark_price_hint": 77710.0  }}