How to watch liquidations on perpetual venues
A forced-liquidation feed is throttled at the exchange, so every total built on it is a floor. Four ways to read one, and what the print actually is.
Take it from the venue if you want the prints and from an aggregator if you want a total. Binance and Bybit both publish a public forced-liquidation stream, free and keyless; Coinalyze aggregates sixteen venues for nothing, and CoinGlass, Velo and Hyblock sell the history and the models built on it. Every one of those totals is a floor, because the exchange feeds are throttled at the source.
The short way
Subscribe to the venue's own forced-liquidation stream. On the two largest perpetual venues it is public, keyless and free, and the topic names are short enough to write down.
<symbol>@forceOrder one symbol, Binance USD-M futures, pushed at most every 1000ms
!forceOrder@arr every symbol on that venue, same stream, same interval
allLiquidation.BTCUSDT Bybit v5, push frequency 500ms
Binance's market data API and Bybit's both answer public websocket subscriptions with no account and no key; what is metered is connections and weight per IP rather than per key, which is the constraint that decides how you deploy rather than whether you can read the feed at all.
If you want a number rather than a stream, Coinalyze publishes a liquidation history endpoint across sixteen venues on a free key at 40 calls a minute. That is one request, and the rest of this page is about why the answer it returns is a floor rather than a total.
What the options are
The prints, from the venue. The two streams above. Use them when you want the individual forced orders with their own timestamps, when you are recording rather than querying, and when you would rather own the aggregation than inherit somebody else's. You get one venue per connection and no history at all — a websocket starts when you connect, so a backfill is a separate purchase.
One free aggregate. Coinalyze covers sixteen venues — Binance, Bybit, OKX, Gate.io, Huobi, Kraken, Deribit, Bitfinex, Phemex, WOO X, Coinbase, dYdX, Hyperliquid, Aster, Lighter and Polymarket — with a 24-hour liquidation column in the main table and a per-coin liquidation page behind it. The API is free and the catch is retention: 1,500 to 2,000 datapoints for any intraday granularity from one minute to twelve hours, deleted daily. At one-minute granularity that is between 25 and 33 hours of history, permanently.
The paid version of the same series. The CoinGlass API sells liquidation history per pair and aggregated across exchanges, a raw liquidation order feed that updates every second, and three heatmap models. Read the tier table before the plan cards: the raw order feed starts at Standard, $379 a month, and the heatmaps the vendor is best known for are Professional and Enterprise only. The free web terminal at CoinGlass carries the liquidation history and map pages for nothing, and the heatmap for BTC and ETH.
Split by venue rather than merged. Velo publishes futures microstructure — liquidations, open interest, funding, CVD and basis — broken down by the exchange it came from rather than folded into one figure, at one-minute resolution over Binance, Bybit, OKX, Deribit, Hyperliquid and Coinbase. That breakdown is the product, and it is the shape you want when the question is which venue moved.
Levels rather than prints. Hyblock Capital sells liquidation levels and a heatmap alongside order-book and positioning metrics, on the $99 plan. This is a different measurement from everything above and the card is explicit about the vendor's own tiering: Tier 1 is raw metrics taken straight from exchanges, "if we get it for free, you get it for free", and what you pay for is the processing on top. CoinAnk sells much the same free screener view with one-hour, four-hour and 24-hour liquidation columns per coin.
Where this breaks
The exchange throttles the feed, so every total is a floor. This is the fact that makes the
naive version of this job wrong, and it is written in Binance's own documentation: for each symbol,
only the latest one liquidation order within 1000ms is pushed as the snapshot, and if no
liquidation happens in that interval no stream is pushed. The stream is a sample, once a second,
per symbol. Bybit is blunter about what that costs — the changelog entry that introduced
allLiquidation in February 2025 dismisses the topic it replaced in one line, "the old one only
pushes 1 liquidation per second, it can be discarded". So a cascade that fires four hundred orders
on one symbol in one second reaches you as one order, and every sum built on that feed is a lower
bound whose distance from the true figure is unknowable from inside the data. Two dashboards
reading the same venue can disagree by a wide margin with neither of them being wrong, and a
dashboard still reading a venue's retired topic disagrees with one reading its replacement.
The print is an order, not a user's decision. A liquidation is the exchange closing somebody's
position, which is why what arrives is an order object — side, order type, time in force, original
quantity, average price, order status. That has two consequences worth writing down. One position
can produce several forced orders, so a count of prints is not a count of liquidated accounts. And
the side field means different things on different venues: Bybit documents S as the position side
and says a Buy update is a long being liquidated, while Binance reports the side of the order the
exchange placed, which for a long is a sell. A merger of the two feeds that does not read both
pages inverts one of them.
Some venues publish nothing to aggregate. Hyperliquid's documented websocket subscriptions run
from allMids and l2Book to trades, bbo and candle, and there is no market-wide liquidation
channel among them — liquidation information reaches a subscriber through userEvents, which is
keyed to a user. The vendor side shows the same hole from the other direction:
Amberdata publishes a coverage table with a start date per dataset per venue,
and on it funding rates exist on 16 of 20 futures venues while liquidations exist on 10. An
aggregate over "all exchanges" describes the exchanges that publish, and almost nobody prints which
ones those were.
A heatmap is a model wearing the same word. Liquidation levels are computed from open interest and assumed leverage; liquidation history is a record of orders. CoinGlass documents three heatmap models, names them model1, model2 and model3 and describes all three identically as levels calculated from market data and liquidation leverage levels, without saying what separates them or which one the website draws — so a level quoted from one of them is a number that cannot be fully explained. Hyblock's own indicator tiers make the same split visible: the raw exchange metrics are the free tier and the transformations are what the subscription buys.
On-chain liquidations are a different event entirely. A lending-market liquidation happens when a borrower's health factor crosses a protocol-defined threshold and a third party repays the debt for a bonus — it is triggered by a contract's parameters, not by an exchange's risk engine, and the thresholds are not even consistent between protocols: the three HyperEVM lending markets in Velo's borrow panel use 1.0 on two of them and 100.0 on the third. Those events are measured on chain, against a protocol's own oracle, and they belong in the same sentence as a perpetual liquidation only if you say which is which. Where an on-chain number comes from is the longer version, and the DeFi shelf is where the tools that measure them live.
Reading is not publishing. Every feed on this page has a redistribution clause behind it, and the free ones are not the lenient ones. Velo's terms name derived data explicitly, so a chart published from its numbers is covered; CoinGlass restricts its two cheapest plans to personal use; Binance requires written consent for anything that feeds or streams its market data onward. What exchange API terms actually let you do is the whole argument, and redistribution is the word to have straight before asking anyone for a quote.
If you outgrow this
If the problem is the floor — you need the prints rather than a sample of them — no plan fixes it, because the throttle is at the exchange. What you can do is record every venue's stream yourself from the moment you start, keep the raw messages, and treat the resulting series as your own definition rather than as the market's. That is the same conclusion the candle problem reaches from the other end, and for the same reason: when the publisher's aggregation is the thing you distrust, buy the messages and aggregate them yourself.
If the problem is history, the free tier is where it stops. Coinalyze keeps 1,500 to 2,000 intraday points and deletes the rest daily; CoinGlass's minute-resolution window is six days on Standard and twelve on Professional, with anything deeper an Enterprise conversation; Velo opens its full archive only on annual billing and gives monthly subscribers three months. Check the row you need against the plan before you buy the plan, because on all three the headline history number describes the daily bar and not the minute one.
If the problem is which venues, that is a coverage table rather than a tier. Amberdata is the one in this catalogue that publishes a start date per dataset per venue, which is the form that lets you check a claim before you depend on it. The rest of the field is under crypto market data APIs, and the screens built on top of these feeds are under charting platforms.
And if the problem is the rate limit rather than the data, read what is actually being counted first: Binance meters public websockets and REST weight per IP, so a second key buys nothing and a second container costs you. Rate limit sorts out which families of limit are in use here and what each one counts.
The tools named above
In the order this page puts them in, which is an editorial judgement and not a ranking anyone paid for.
Binance Market Data API
The venue's own forced-order stream, free and unkeyed — the prints themselves, throttled to one order per symbol per second.
One venue's own tape — prices, books, trades and funding, free and unkeyed.
FreeFree tier
Coinalyze
Sixteen venues aggregated into one liquidation history endpoint for nothing, on a rolling window of 1,500 to 2,000 points.
Free futures screener — open interest, funding, basis and liquidations in one table.
$10.95/moFree tier
CoinGlass API
The paid version of the same series — per-pair, coin-aggregated and a raw order feed — with the heatmaps four tiers up.
Funding, open interest, liquidations and L2/L3 order books across thirty futures venues.
$35/mo
Velo
Liquidations broken down by the venue they came from rather than merged, at one-minute resolution alongside funding and open interest.
Derivatives terminal with order entry on Bybit and Hyperliquid, and the API behind it.
$0.02/moFree tier
Hyblock Capital
Estimated liquidation levels and a heatmap — where positions would be closed, which is a model and not a feed of prints.
Order-book and liquidation metrics with screeners, rankmaps and a backtesting lab.
$99/moFree tier
FAQ
Why do two sites report different 24-hour liquidation totals for the same exchange?
Because the exchange does not publish every liquidation. Binance's documentation says that for each symbol only the latest one liquidation order within 1000ms is pushed as a snapshot, and that if nothing is liquidated in that interval nothing is pushed at all. Bybit's changelog says the same of the topic it retired in February 2025 — "the old one only pushes 1 liquidation per second, it can be discarded". Two aggregators sampling a throttled feed at different moments, or one of them reading the replacement topic and the other the old one, produce different totals from the same venue without either being wrong.
Is a liquidation total a dollar amount of positions or of orders?
Of orders. What the stream carries is the order the exchange placed to close the position — Binance's payload is an order object with a side, an order type, a time in force, an original quantity, an average price and an order status. A position closed in several forced orders is several prints, and under a throttled stream some of those prints never arrive. The figure is the notional of the forced orders that were published, which is not the same number as the value of the positions that were closed.
Does a "Buy" liquidation mean somebody was long or short?
It depends on the venue, and the two large ones document it differently. Bybit's all-liquidation stream describes its S field as the position side and states that a Buy update means a long position was liquidated. Binance's forceOrder payload carries the side of the order the exchange placed, so the same event arrives as a sell. Merge the two feeds without reading both pages and one venue's long/short split comes out inverted.
Do liquidation heatmaps show real liquidations?
No, and the distinction is the whole thing. A heatmap of levels is a model of where leveraged positions would be closed if price reached them, built from open interest and assumed leverage; a liquidation feed is a record of forced orders that were actually printed. CoinGlass ships three heatmap models, names them model1, model2 and model3 and describes all three identically, so which one produced a given picture is not something the reader can recover.
Sources
- All Market Liquidation Order Streams, USDⓈ-M futures websocket market streams — Binance, read
- All Liquidation, v5 public websocket stream — Bybit, read
- V5 API changelog — allLiquidation added, 20 February 2025 — Bybit, read
- Websocket subscriptions — Hyperliquid, read
The catalogue next door
This page names a handful of products. The rest of them are in Crypto Market Data APIs, each filled in against the same schema, with the fields to narrow it yourself.
Last updated . Corrected in place — an endpoint that moves is a bug on this page, not a new post.