Skip to main content
GET
Liquidation map (where open positions would be liquidated)
The map is built from every open perp position in our Hyperliquid node’s state snapshot, which the node writes about every 12 minutes. snapshot.height and snapshot.age_s say which snapshot the positions come from, and as_of when they were last priced. How liquidation prices are found:
  • Liquidation prices follow Hyperliquid’s maintenance margin rules.
  • For cross-margin positions they assume the account’s other positions stay at mark. In a real move correlated markets fall together, so cross-margin accounts are liquidated earlier than these prices.
  • Portfolio-margin accounts use Hyperliquid’s own liquidationPx. coverage.portfolio_margin_pct is their share of the market’s notional.
  • Notional is size times liquidation price.
cum_long_usd on a level below the mark is every long liquidated between the mark and that level: what a fall to that price would take out. cum_short_usd does the same for shorts above the mark. For a chart of liquidations that already happened, use liquidation levels.

Authorizations

Authorization
string
header
required

Ironflow API key, format if_xxxx. Free keys at https://ironflow.sh/key. Optional on read endpoints.

Query Parameters

market
string
required

Perp symbol (BTC-PERP, xyz:NVDA-PERP) or Hyperliquid coin name (BTC, xyz:NVDA).

Example:

"BTC-PERP"

bucket_size
string
default:auto

Price bucket width. auto is about 0.25% of mark rounded to 1, 2 or 5 times a power of ten (200 for BTC near 75,000, 0.2 for HYPE near 78). A number sets the width; one finer than the map's grid is raised to the auto width, with a notice.

Example:

"500"

range_pct
number
default:20

How far from the mark to cover, in percent each way. Keyless calls cover 10.

Required range: x <= 50
side
enum<string>
default:both

Longs, shorts or both.

Available options:
both,
long,
short

Response

The liquidation map.

market
string
required
Example:

"BTC-PERP"

mark_px
number
required

The mark the liquidation prices were computed against

Example:

75782

as_of
string<date-time>
required

When the positions were last priced

Example:

"2026-11-06T16:48:30Z"

snapshot
object
required

The node state snapshot the positions come from.

bucket_size
number
required
Example:

200

range_pct
number
required

The range covered

Example:

20

side
enum<string>
required
Available options:
both,
long,
short
levels
object[]
required

Price buckets holding positions, from the lowest price to the highest.

coverage
object
required

How much of the market's open notional the map prices, and how.

stale
boolean
required

True when the map service did not answer and an older map is returned

method
string
required

How the map is made

notice
string

Present on keyless calls, which return a sample, and when bucket_size was raised.