API EndpointsHyperliquid
/coins/{coin}/liquidation-heatmap
Where liquidations would cluster if price moved — every open position's own liquidation price, binned and weighted by notional.
GET https://data.vike.io/v1/hyperliquid/coins/{coin}/liquidation-heatmapWhere liquidations would cluster if price moved: every open position's own liquidation price, binned and weighted by notional.
Truncated: bins holds 10 rows (bins=10); the first 3 are shown. window and coverage are
complete.
# a coarse ten-bin picture of where BTC liquidations would cluster
curl -s "https://data.vike.io/v1/hyperliquid/coins/BTC/liquidation-heatmap?bins=10" \
-H "X-API-KEY: $VIKE_API_KEY"
# the default 50 bins on ETH
curl -s "https://data.vike.io/v1/hyperliquid/coins/ETH/liquidation-heatmap" \
-H "X-API-KEY: $VIKE_API_KEY"
# finer resolution for a chart, then take the five heaviest price bins
curl -s "https://data.vike.io/v1/hyperliquid/coins/BTC/liquidation-heatmap?bins=100" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '.bins | sort_by(-.liquidation_value_usd) | .[:5] | map({price_bin_start, price_bin_end, liquidation_value_usd, long_value_usd, short_value_usd})'
# how much of the book the bins actually cover: positions with no liquidation price, or outside the price window, are not in any bin
curl -s "https://data.vike.io/v1/hyperliquid/coins/BTC/liquidation-heatmap?bins=50" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '{window, coverage}'
# the realized side of the same question
curl -s "https://data.vike.io/v1/hyperliquid/liquidations?coin=BTC&limit=100" \
-H "X-API-KEY: $VIKE_API_KEY"coinpathrequiredHL coin ticker
binsqueryoptionalNumber of price bins. Default 50, min 5, max 500
{
"coin": "BTC",
"mark_price": 78011.0,
"snapshot_ts": "2026-09-03T07:44:00+00:00",
"bins": [
{
"price_bin_index": 0,
"price_bin_start": 39005.5,
"price_bin_end": 46806.6,
"liquidation_value_usd": 136593494.62892,
"positions_count": 1669,
"long_value_usd": 136338635.03225002,
"short_value_usd": 254859.59667000003,
"most_impacted_cohort": "whale"
},
{
"price_bin_index": 1,
"price_bin_start": 46806.6,
"price_bin_end": 54607.7,
"liquidation_value_usd": 235951565.08872,
"positions_count": 2492,
"long_value_usd": 235829551.98417,
"short_value_usd": 122013.10455,
"most_impacted_cohort": "4x whale"
},
{
"price_bin_index": 2,
"price_bin_start": 54607.7,
"price_bin_end": 62408.8,
"liquidation_value_usd": 118453087.38709,
"positions_count": 2373,
"long_value_usd": 118391459.4772,
"short_value_usd": 61627.909889999995,
"most_impacted_cohort": "whale"
}
],
"total_value_usd": 1975949798.55437,
"cohort_axis": "size",
"window": {
"price_low": 39005.5,
"price_high": 117016.5,
"range_pct": 0.5,
"bin_width": 7801.1,
"spacing": "linear"
},
"coverage": {
"open_value_usd": 3034690460.1413383,
"open_positions": 36192,
"no_liq_price_value_usd": 104748153.91258995,
"no_liq_price_positions": 5383,
"outside_window_value_usd": 953992507.6743784,
"in_window_fraction_of_open": 0.6511207072046292,
"in_window_fraction_of_priced": 0.6743988761668478
}
}Hypothetical, not realized
This is the standing risk on the book right now, not a record of anything that happened.
/liquidations is the realized surface.
(Its path lives under /coins/, but it answers a liquidations question rather than a positioning
one, which is why it is filed here rather than beside the other /coins/ routes.)