GET /liquidations/{coin}
GET /liquidations/{coin}
Section titled “GET /liquidations/{coin}”Where liquidations would cluster if open interest were spread across leverage tiers the way the model
assumes. This is a model, not observed liquidations: Hyperliquid publishes no per-leverage open
interest, so the shares per tier are assumptions, stated in meta.assumptions.
How it is built: every position is assumed to have entered at the 24-hour VWAP. For each leverage tier from
3x up to the market’s maximum leverage, the liquidation price follows Hyperliquid’s isolated-margin rule with
its maintenance margin of 1 / (2 × max leverage). The USD open interest is split 50:50 between longs and
shorts (every perp position has a counterparty) and across the tiers by the assumed shares.
Request
Section titled “Request”GET https://api.cerebruspulse.xyz/liquidations/{coin}Path Parameters
Section titled “Path Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
coin | string | Yes | Market symbol, case-insensitive (BTC, ETH, SOL). GET /coins lists them. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
endpoint | string | liquidations |
coin | string | The symbol, upper-case |
market_symbol | string | Hyperliquid’s name for the market (kPEPE for PEPE) |
price_unit | string | What prices are quoted per: 1 BTC, or 1000 PEPE for a 1000-token market |
timestamp_iso | string | When the response was computed (UTC) |
model_estimate | boolean | true: every figure below is modelled |
price | number | Hyperliquid mid price |
liquidation_zones.longs[].price | number | Liquidation price of long positions at this tier, below the current price (5 significant figures) |
liquidation_zones.longs[].leverage | string | The tier, e.g. 25x |
liquidation_zones.longs[].estimated_liq_usd | number | USD open interest the model places at this tier on this side |
liquidation_zones.longs[].proximity_pct | number | Distance from the current price, in percent. Zones are sorted nearest first |
liquidation_zones.shorts[].price | number | Liquidation price of short positions at this tier, above the current price |
liquidation_zones.shorts[].leverage | string | The tier |
liquidation_zones.shorts[].estimated_liq_usd | number | USD open interest placed at this tier on this side |
liquidation_zones.shorts[].proximity_pct | number | Distance from the current price, in percent |
summary.cascade_risk | string | From the nearest zone’s distance: EXTREME (< 1%), HIGH (< 2%), MODERATE (< 5%), LOW, or UNKNOWN with no zone |
summary.total_oi_usd | number | Open interest in USD: contracts × price |
summary.long_short_ratio | string | Always 50:50: open interest is equal on both sides of a perp |
summary.total_at_risk_5pct | number | Modelled USD in zones within 5% of the price |
summary.nearest_cluster.side | string | long or short |
summary.nearest_cluster.price | number | The nearest zone’s price |
summary.nearest_cluster.distance_pct | number | Its distance in percent |
summary.nearest_cluster.estimated_volume | number | Its modelled USD. nearest_cluster is null when there is no zone |
meta | object | Common metadata (Response Schemas) |
meta.offering | string | pulse_liquidations |
meta.methodology | string | The model in one sentence |
meta.assumptions.max_leverage | number | The market’s maximum leverage on Hyperliquid |
meta.assumptions.maintenance_margin_rate | number | 1 / (2 × max_leverage) |
meta.assumptions.assumed_oi_share_by_leverage.<leverage> | number | The assumed share of open interest per tier (3x, 5x, 10x, 25x, 50x, up to the maximum), summing to 1 |
meta.assumptions.entry_price | number | The 24-hour VWAP used as every position’s entry |
meta.assumptions.long_short_split | string | 50:50, with the reason |
Example
Section titled “Example”GET /liquidations/BTC: real engine output on market data captured at 2026-09-24 17:05 UTC. Lists are cut to 3 items. Live responses may also carry meta.disclaimer, which the gateway adds.
{ "endpoint": "liquidations", "coin": "BTC", "market_symbol": "BTC", "price_unit": "1 BTC", "timestamp_iso": "2026-09-24T17:05:00Z", "model_estimate": true, "price": 84512.5, "liquidation_zones": { "longs": [ { "price": 81670, "leverage": "25x", "estimated_liq_usd": 462159554, "proximity_pct": 3.36 }, { "price": 76566, "leverage": "10x", "estimated_liq_usd": 554491646, "proximity_pct": 9.4 }, { "price": 68059, "leverage": "5x", "estimated_liq_usd": 462159554, "proximity_pct": 19.47 } ], "shorts": [ { "price": 86292, "leverage": "25x", "estimated_liq_usd": 462159554, "proximity_pct": 2.11 }, { "price": 91270, "leverage": "10x", "estimated_liq_usd": 554491646, "proximity_pct": 8 }, { "price": 99567, "leverage": "5x", "estimated_liq_usd": 462159554, "proximity_pct": 17.81 } ] }, "summary": { "cascade_risk": "MODERATE", "total_oi_usd": 3327282606, "long_short_ratio": "50:50", "total_at_risk_5pct": 924319108, "nearest_cluster": { "side": "short", "price": 86292, "distance_pct": 2.11, "estimated_volume": 462159554 } }, "meta": { "provider": "Cerebrus Pulse", "offering": "pulse_liquidations", "execution_ms": 0, "data_age_seconds": 60, "methodology": "model estimate, not observed liquidations: assumed leverage tiers and OI shares, Hyperliquid maintenance margin 1/(2*maxLeverage), 24h VWAP as entry", "assumptions": { "max_leverage": 40, "maintenance_margin_rate": 0.0125, "assumed_oi_share_by_leverage": { "3x": 0.1111, "5x": 0.2778, "10x": 0.3333, "25x": 0.2778 }, "entry_price": 84010, "long_short_split": "50:50 (open interest is equal on both sides of a perp)" }, "as_of": { "market_data": "2026-09-24T17:04:00Z", "candles_1h": "2026-09-24T17:00:00Z" }, "sources": [ { "name": "Hyperliquid", "url": "https://hyperliquid.xyz" } ] }}Errors
Section titled “Errors”| Status | Reason |
|---|---|
| 400 | No price, open interest or maximum leverage for the market (not charged) |
| 402 | Payment required (the standard x402 flow) |
| 404 | Unknown coin (before any price is quoted) |
| 429 | Rate limit exceeded |
| 503 | Service disabled, payments down, or an upstream feed is missing or stale; no price is quoted |
| 504 | Engine timeout (not charged) |