Skip to content

Get Liquidation Density

GET/v1/cryptodata/backtesting/liquidation-density

Hyperliquid liquidation density near the mark, as a time series. Per coin per point: ``mark``, and for bands of ±0.5 / 1 / 2 / 3 / 5% of mark the USD of long positions liquidating BELOW the mark (``long_below``) and shorts liquidating ABOVE it (``short_above``) — plus the same split by ``trader_type`` (vault, market_maker, whale, smart_money, high_leverage, other) and by ``leverage`` bucket (3/5/10/20/25/40/50/100x). Derived from the archived ``liquidation_levels`` + ``liquidation_map`` snapshots: ~2 KB a point instead of ~1 MB a snapshot. History starts 2026-06-26 (the full-universe feed); ≤ 93 days per call. CSV carries the all-account bands only. Pro Plus.

Price

$0.01/ call

Edge cache

Off

Uptime 24h

95.83%

p95

1.96s

Parameters

NameInTypeDescription
coin* query string One HL coin name (BTC, HYPE, kPEPE) or a comma list (up to 25).
start* query string Start time (ISO 8601 or unix ms)
end query string End time (ISO 8601 or unix ms, defaults to now). EXCLUSIVE — the range is [start, end).
interval query string = 1h 5m (every archived snapshot) or 1h (the first snapshot of each hour).
splits query string = trader_type,leverage Breakdowns to include: any of trader_type, leverage (comma list), or `none` for the all-account bands only (~10x smaller).
bounds query string = half-open Interval convention for `start`/`end`. `half-open` (default) is [start, end) — `end` is EXCLUSIVE, so consecutive windows tile without repeating a boundary row. `closed` is [start, end] — `end` INCLUSIVE, the pre-2026-08-08 behaviour; use it only to keep an existing integration byte-identical.
limit query integer = 1000
cursor query string Opaque page cursor — the `next_cursor` of the previous response, verbatim. Resumes strictly after the last row served, keyed on the table's full primary key, so a page boundary inside a same-millisecond burst loses nothing (unlike `start = last.time + 1`). `start` / `end` still bound the window.
format query string = json json or csv. CSV has no envelope: paging state travels in the `X-Has-More` / `X-Next-Cursor` response headers.

Code

curl
# 1. No key, no payment: the gateway answers 402 with the price
curl -i "https://api.realtimeapi.ai/v1/cryptodata/backtesting/liquidation-density?coin=BTC&start=2026-10-28"

# 2. Pay: retry with a signed x402 payment (any x402 client builds this header)
curl "https://api.realtimeapi.ai/v1/cryptodata/backtesting/liquidation-density?coin=BTC&start=2026-10-28" -H "PAYMENT-SIGNATURE: $X402_PAYMENT"
TypeScript · @x402/fetch
// npm i @x402/fetch @x402/core @x402/evm viem
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = x402Client.fromConfig({ schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(PRIVATE_KEY)) }] });
const pay = wrapFetchWithPayment(fetch, client);
const data = await (await pay("https://api.realtimeapi.ai/v1/cryptodata/backtesting/liquidation-density?coin=BTC&start=2026-10-28")).json();
console.log(data);
Python · x402
# pip install x402 eth-account requests
from eth_account import Account
from x402.clients.requests import x402_requests

session = x402_requests(Account.from_key(PRIVATE_KEY))
print(session.get("https://api.realtimeapi.ai/v1/cryptodata/backtesting/liquidation-density?coin=BTC&start=2026-10-28").json())
With an API key
curl "https://api.realtimeapi.ai/v1/cryptodata/backtesting/liquidation-density?coin=BTC&start=2026-10-28" -H "X-API-Key: $RTAPI_KEY"

Frequently asked questions

How do I get get liquidation density from CryptoDataAPI?

Send GET https://api.realtimeapi.ai/v1/cryptodata/backtesting/liquidation-density. Pay $0.01 per request with x402, or send an X-API-Key header.

What does GET /backtesting/liquidation-density cost?

$0.01 per successful request in USDC on Base. Failed requests are never charged.

Can I call this endpoint from an MCP client?

Yes. Connect any MCP client to the RealtimeAPI server and use call_feed with this endpoint's URL, or get_quote to check the price first.

Get a free key

1,000 calls a month across every feed. Who is setting it up?

No key needed at all: agents can pay per call in USDC with x402.