Skip to main content
Projected liquidation levels estimate where open positions on Hyperliquid core and HIP-3 may be forced to liquidate. The /levels family computes these estimates from clearinghouse positions and margin state, then groups them into price buckets around the snapshot mark price. These levels are 0xArchive model estimates. Hyperliquid does not publish them. Each snapshot is computed close to real time from the data available at its snapshot_ts; see Timing and provenance. This is a separate data grain from completed liquidation events, liquidation-volume buckets, and voluntary trigger orders. The projected-level routes currently cover Hyperliquid core and HIP-3. There is no Lighter projected-level route in the OpenAPI contract. For completed liquidation events and volume, use Liquidations. The operation pages linked below carry each route’s request and response schema, and Venue coverage lists each symbol’s window.

Routes

Get projected levels

Omit at to receive the latest retained snapshot for a symbol. Pass at as epoch milliseconds to receive the newest snapshot whose snapshot_ts is at or before that instant. snapshot_ts is when the snapshot was computed; block_number identifies the earlier exchange state it started from. Since 2026-08-13, snapshots are computed roughly every 5 minutes; earlier history is about every 45 minutes. That cadence describes the retained snapshot source, not a real-time liquidation-price calculation for one account or position.
Use a plain perp symbol such as BTC.

Request parameters

An at value before retained history returns 404. A history window with no matching snapshots returns 200 with an empty data array, whether the window is before retained coverage or simply contains no snapshot for that symbol. An empty page means no retained snapshot matched the request; it does not mean projected exposure was zero. Invalid side values, malformed cursors, and history windows where start is after end return validation errors.

Example response

Representative, abridged Hyperliquid core snapshot for range_pct=1&buckets=10 from the source: "raw" response form. The full response contains the requested ten buckets; eight are omitted below, and the request ID is synthetic.

Response fields

Responses use the { success, data, meta } envelope. The projected-level fields are inside data. When source is histogram, requests narrower than source_bin_width do not create new source detail. Notional is redistributed proportionally across overlapping requested buckets, while position counts remain at the source resolution. History items do not emit either source field.

Timing and provenance

Each snapshot is computed from a periodic exchange-state snapshot of every account’s positions and margin, plus mark prices and, since 2026-08-13, fills. snapshot_ts and block_number describe different moments, and their relationship changed on 2026-08-13: Rows from 2026-07-27 to 2026-08-13 00:12 UTC
  • Cadence: about every 45 minutes.
  • block_number: block of the exchange-state snapshot.
  • snapshot_ts: when that exchange-state snapshot was written, within seconds of the block.
  • Positions and marks: positions as of block_number, not rolled forward. Marks are samples from within a few minutes of snapshot_ts, in some rows slightly after it.
Rows from 2026-08-13 00:49 UTC
  • Cadence: about every 5 minutes.
  • block_number: block of the latest exchange-state snapshot available at compute time, typically 30 to 65 minutes before snapshot_ts.
  • snapshot_ts: when the row was computed.
  • Positions and marks: Hyperliquid core positions are rolled forward from block_number with fills up to snapshot_ts. HIP-3 positions come from the exchange-state snapshot without roll-forward. Marks are the latest samples before snapshot_ts: about every 60 seconds for core perps, every few seconds for HIP-3.
Between exchange-state snapshots, isolated-margin changes and funding are not applied, and an account whose first trade came after the snapshot is added at the next one. Use snapshot_ts to order and align rows. block_number is not the block at snapshot_ts: consecutive rows often share it, and it does not always increase from one row to the next.

Read retained history

Use the /history variant to enumerate snapshots in ascending snapshot_ts order. Pass meta.next_cursor from one response as cursor for the next page.

Summary history response

Representative response to the limit=1&summary=true request above. The request ID is synthetic.
History is retained from 2026-07-27, at the cadences in Timing and provenance. Set summary=true when you do not need the bucket histogram. Summary items retain snapshot_ts, block_number, mid_price, total_long, total_short, and flagged_notional, while omitting only levels. This is the lower-payload way to discover snapshots before fetching selected histograms. When summary is false or omitted, each history item includes its bucketed levels array. Use range_pct, buckets, and side to control the returned view. The history operation pages document the complete contracts:

Interpret the response

Long exposure is projected below the snapshot mark price and short exposure above it. A bucket with more projected notional means more open-position exposure is estimated to be forced near that price. It does not predict that the market will trade there, and it is not completed liquidation volume. total_long and total_short cover the whole book, while levels contains only the requested range_pct window. Do not expect the visible bucket sums to equal the whole-book totals. Keep flagged_notional beside those totals so approximate exposure or exposure not assigned to a returned bucket remains visible. These projected forced-liquidation levels are aggregate bucketed estimates. They are not an account, wallet, or position liquidation-price endpoint. For positioning context, pair them with Open interest.

Access

Each venue’s start date, WebSocket channels, and page limit come from GET /v1/capabilities, followed by the SDK, CLI, and MCP names for the same data. The start date is the first served row on that venue; exact starts vary by market, so check /v1/symbols for a single symbol. Send 0xArchive-Version: 2026-10-01 for the current response contract; see API conventions.

Stream it live

There is no dedicated projected liquidation-level WebSocket channel. Poll the REST snapshot on a cadence that reflects the roughly 5-minute source update instead of treating it as a tick stream. For completed forced-liquidation events, use the Hyperliquid core liquidations or HIP-3 hip3_liquidations WebSocket channel documented on WebSocket channels.

Export in bulk

There is no standalone projected liquidation-level export schema. Use the cursor-paginated history route for retained projected snapshots. The Data Catalog liquidations export contains completed liquidation events, not projected forced-liquidation levels.

Keep liquidation data grains separate

Trigger levels are voluntary orders, not projected forced liquidations. Their history uses a separate route family and cadence; the Hyperliquid trigger-level history and HIP-3 trigger-level history pages document those contracts.

Next step

For observed liquidation events and volume buckets, continue to Liquidations.
Last modified on October 6, 2026