Free Crypto Liquidation API
Live liquidation data from OKX, Gate.io and HTX: 24h totals, the long and short split, hourly buckets and individual large liquidation events.
Endpoints
/api/markets/liquidations24-hour summary: totalUsd, longUsd, shortUsd, maxSingleUsd, the 24 hourly buckets (hourly: hour, longUsd, shortUsd, count) and the ten most liquidated contracts (topSymbols: symbol, longUsd, shortUsd, totalUsd, count).
/api/markets/liquidations/recent?symbol=BTCUSDT&exchange=okx&side=long&minUsd=100000&limit=500Individual liquidation events, newest first: the last 100 by default, up to 500. Filter by contract (as the exchange names it; BTC alone matches BTCUSDT), exchange (okx, gate, htx), side (long or short) and a minimum notional. Fields: id, rawSymbol, side, price, qty, usdValue, exchange, ts. Individual events are kept 90 days.
/api/markets/liquidations/history?symbol=BTCUSDT&from=2026-07-01&to=2026-07-31&limit=5000Hourly totals, oldest first: every contract summed per hour by default (the newest 168 hours), or one contract with symbol; from and to (ISO dates or datetimes) select the window, limit caps the hours at 5,000. Fields: hour, symbol (when filtered), longUsd, shortUsd, totalUsd, count, maxSingleUsd. History starts on 3 July 2026; the free API returns the last six months.
/api/markets/liquidations/csvHourly totals as CSV.
Examples
curl
curl https://xoomar.com/api/markets/liquidations
Python
import requests
r = requests.get("https://xoomar.com/api/markets/liquidations")
data = r.json()["data"]
print(f"24h Total: ${data['totalUsd']:,.0f}")
print(f" Longs: ${data['longUsd']:,.0f}")
print(f" Shorts: ${data['shortUsd']:,.0f}")Main features
- Liquidation events from OKX, Gate.io and HTX as they happen. Binance is not included.
- 24h totals with the long and short split and the largest single liquidation of the period.
- Hourly totals per contract are kept permanently; individual events for 90 days.
- Per-symbol hourly buckets show when forced selling or buying clustered.
- Coverage from 3 July 2026 onward.
Example
Request
curl "https://xoomar.com/api/markets/liquidations/recent?symbol=BTC&minUsd=100000&limit=2"
Response, live at 2026-10-20 14:48 UTC, trimmed
{
"data": [
{
"id": 3172058,
"rawSymbol": "BTCUSDT",
"side": "short",
"price": "83297.45321739",
"qty": "7.84180000",
"usdValue": "653201.9686",
"exchange": "gate",
"ts": "2026-10-20T14:15:08.000Z"
},
{
"id": 3171430,
"rawSymbol": "BTCUSDT",
"side": "short",
"price": "82990.00000000",
"qty": "2.34240000",
"usdValue": "194395.7760",
"exchange": "okx",
"ts": "2026-10-20T14:10:08.414Z"
}
],
"updatedAt": "2026-10-20T14:48:40.355Z",
"source": "xoomar.com",
"docs": "https://xoomar.com/markets/api",
"license": "https://xoomar.com/terms",
"attribution": "Credit XOOMAR with a link to the dataset page on xoomar.com when you republish this data",
"meta": {
"source": "OKX, Gate.io, HTX",
"sourceAttribution": "Liquidation data: OKX, Gate.io and HTX.",
"notice": "10 requests a minute without a key, 30 with a free key. Get a free key at https://xoomar.com/signup?utm_source=api, register your app at https://xoomar.com/developers/register?utm_source=api, and credit the data as \"Data: XOOMAR\" together with the sourceAttribution line."
}
}A long liquidation is a forced sale (the long was closed); a short liquidation is a forced buy. Prices and quantities are strings, as the exchanges send them; usdValue is price times quantity.
What people build with it
Spike alerts
Alert when an hour's liquidation total passes your own multiple of its recent average.
Long and short split
The split shows which side was forced out in each hour, per contract or across the market.
Volatility research
The history endpoint gives the hourly series per contract, to line up with your own price data.
Microstructure studies
Per-symbol hourly buckets show when forced flows clustered in each contract.
Fair use
No key needed to start. A 429 response carries a Retry-After header in seconds; cache responses on your side where you can. Need more volume? Write to info@xoomar.com.
Response shape
Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs, license, attribution, meta }. In meta, source names who publishes the data and sourceAttribution is the credit line to show with it. The data field is an object with these fields:
| Field | Type | Description |
|---|---|---|
| period | string | Aggregation window, currently 24h |
| totalUsd | number | Total liquidated notional in USD over the period |
| longUsd | number | Liquidated long positions in USD (forced sales) |
| shortUsd | number | Liquidated short positions in USD (forced buys) |
| maxSingleUsd | number | Largest single liquidation in the period |
| hourly | array | 24 buckets: hour (ISO), longUsd, shortUsd, count |
| topSymbols | array | Ten most liquidated contracts: symbol, longUsd, shortUsd, totalUsd, count |
This is the summary endpoint. /recent returns individual events (id, rawSymbol, side, price, qty, usdValue, exchange, ts) and /history the hourly totals (hour, symbol, longUsd, shortUsd, totalUsd, count, maxSingleUsd). Coverage starts 3 July 2026; individual events are kept 90 days.
Numeric fields typed string in the table carry exact decimals; parse them with your language's decimal type. No key needed to start: 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history. A 429 response carries a Retry-After header in seconds. Credit XOOMAR with a link to the dataset page when you republish the data; the data terms are on the terms page.
A free account key raises the limit; send it in an X-API-Key header.
Frequently Asked Questions
Where does liquidation data come from?
How far back does history go?
Is there a WebSocket API?
How often is data updated?
Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.