/api/liquidation-events
GETAvailable

Largest liquidation days (Top 10)

Top 10 single-day liquidation totals: a third-party historical baseline plus days recorded by CoinBoss

GET/api/liquidation-events
The list merges two kinds of rows, told apart by `source`. `historical_baseline` rows come from third-party public historical records; they are kept as recorded and are never recalculated. `coinboss` rows are UTC daily totals of liquidation orders CoinBoss collected from exchange feeds; a day is added only when its total is greater than the 10th place of the list at that time.

Request

This endpoint takes no parameters.

Example request

curl -s "https://www.coinboss.com/api/liquidation-events"

Response fields

The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.

FieldTypeUnitDescription
successboolean—true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`.
countnumber—Number of rows.
dataarray—Payload.
data[]object—Payload.
data[].rank_nonumber—Position in the list, 1 = largest `total_usd`. The list holds 10 rows.
data[].event_datestring—Calendar day of the event, formatted `YYYY-MM-DD`. For `coinboss` rows it is a UTC day.
data[].amount_usdnumberUSDSame value as `total_usd`; kept for existing clients.
data[].total_usdnumberUSDTotal notional liquidated on that day; the list is sorted by this field. `coinboss` rows: `long_usd` + `short_usd`. Baseline rows: the figure as recorded.
data[].amount_displaystring—`total_usd` pre-formatted for display, e.g. `$3.26B`. Baseline rows carry the text as recorded.
data[].long_usdnumberUSDLiquidated longs.
data[].short_usdnumberUSDLiquidated shorts.
data[].liquidated_tradersstring|null—Number of traders liquidated that day, as display text copied from the third-party record; its definition is not stated by that record. null for `coinboss` rows: CoinBoss cannot count people and reports `liquidation_count` and `account_count` instead.
data[].btc_amplitudestring(decimal)|null—BTC intraday price range of that day in percent, as display text copied from the third-party record; its price source and formula are not stated by that record, so it is not comparable with `btc_range_pct`. null for `coinboss` rows.
data[].event_zhstring|null—Note attached to the third-party record, in Chinese; null when the record has none and for all `coinboss` rows. CoinBoss does not assign causes.
data[].sourcestring—Origin of the row: `historical_baseline` (third-party public historical record, kept as recorded) or `coinboss` (daily total from CoinBoss collectors).
data[].basisstring—How the figure was obtained: `third_party_public_history` or `coinboss_utc_daily_total`.
data[].updated_atnumber|nullmsWhen CoinBoss added the row to the list; null for baseline rows.
data[].liquidation_countnumber|null—Number of liquidation events (liquidation orders or liquidation fills) CoinBoss collected on that UTC day, after de-duplication. It counts events, not people or accounts. null for baseline rows.
data[].liquidation_count_metaobject—How `liquidation_count` was obtained: quality, source, time window and coverage.
data[].liquidation_count_meta.kindstring—What the number counts: `liquidation_events`.
data[].liquidation_count_meta.qualitystring—Availability of the value: `OK`, `PARTIAL` (covers only part of the market, see `coverage`) or `UNAVAILABLE` (the value is null).
data[].liquidation_count_meta.reasonstring|null—Why the value is unavailable, for example `baseline_row_third_party_record`, `breakdown_not_recorded` or `no_account_identifier`; null when a value is present.
data[].liquidation_count_meta.sourcestring|null—Origin of the value: `coinboss_collectors`; null when the value is unavailable.
data[].liquidation_count_meta.source_atnumber|nullmsWhen CoinBoss recorded (froze) the count; null when the value is unavailable.
data[].liquidation_count_meta.windowobject—Time window the value covers.
data[].liquidation_count_meta.window.fromstring—Start of the window (inclusive), ISO 8601.
data[].liquidation_count_meta.window.tostring—End of the window (exclusive), ISO 8601.
data[].liquidation_count_meta.window.timezonestring—Time zone of the window; always `UTC`.
data[].liquidation_count_meta.coverageobject|null—Which exchanges and records the value covers; null when the value is unavailable.
data[].account_countnumber|null—Number of distinct liquidated accounts on that UTC day, counted only on exchanges whose data carries an account identifier (currently Hyperliquid wallet addresses). It is not a market-wide figure unless `account_count_meta.coverage.market_wide` is `true`, and one person can hold several accounts. null for baseline rows and when no exchange exposes an identifier.
data[].account_count_metaobject—How `account_count` was obtained: quality, source, time window and coverage.
data[].account_count_meta.kindstring—What the number counts: `unique_accounts`.
data[].account_count_meta.qualitystring—Availability of the value: `OK`, `PARTIAL` (covers only part of the market, see `coverage`) or `UNAVAILABLE` (the value is null).
data[].account_count_meta.reasonstring|null—Why the value is unavailable, for example `baseline_row_third_party_record`, `breakdown_not_recorded` or `no_account_identifier`; null when a value is present.
data[].account_count_meta.sourcestring|null—Origin of the value: `coinboss_collectors`; null when the value is unavailable.
data[].account_count_meta.source_atnumber|nullmsWhen CoinBoss recorded (froze) the count; null when the value is unavailable.
data[].account_count_meta.windowobject—Time window the value covers.
data[].account_count_meta.window.fromstring—Start of the window (inclusive), ISO 8601.
data[].account_count_meta.window.tostring—End of the window (exclusive), ISO 8601.
data[].account_count_meta.window.timezonestring—Time zone of the window; always `UTC`.
data[].account_count_meta.coverageobject|null—Which exchanges and records the value covers; null when the value is unavailable.
data[].btc_highnumberUSDBTC spot high of that UTC day: median of the daily highs on Binance (BTC/USDT), Coinbase (BTC/USD) and Kraken (BTC/USD). null unless all three venues have a final daily candle.
data[].btc_lownumberUSDBTC spot low of that UTC day: median of the daily lows on Binance (BTC/USDT), Coinbase (BTC/USD) and Kraken (BTC/USD). null unless all three venues have a final daily candle.
data[].btc_rangenumberUSDAbsolute BTC price range of that UTC day: `btc_high` − `btc_low`.
data[].btc_range_pctnumber%BTC price range of that UTC day relative to the low: (`btc_high` − `btc_low`) / `btc_low` × 100.
data[].btc_range_metaobject—How the BTC high, low and range were obtained: quality, source, time window and the prices of each venue.
data[].btc_range_meta.qualitystring—Availability of the BTC fields: `OK` or `UNAVAILABLE` (the four BTC fields are null).
data[].btc_range_meta.reasonnull—Why the BTC fields are unavailable: `incomplete_venues`, `daily_candle_not_final`, `utc_day_not_closed` or `price_source_error`; null when values are present.
data[].btc_range_meta.sourcestring—Origin of the prices: `coinboss_spot_composite`, built from the spot daily candles CoinBoss collects from the three venues.
data[].btc_range_meta.methodstring—Calculation method: median of the three venues’ daily highs, and median of their daily lows.
data[].btc_range_meta.price_typestring—Kind of price used: `spot`.
data[].btc_range_meta.unitstring—Unit of the BTC price fields: `USD`.
data[].btc_range_meta.source_atnumbermsClose time of the daily candles used (end of the UTC day); null when the BTC fields are unavailable.
data[].btc_range_meta.windowobject—Time window the value covers.
data[].btc_range_meta.window.fromstring—Start of the window (inclusive), ISO 8601.
data[].btc_range_meta.window.tostring—End of the window (exclusive), ISO 8601.
data[].btc_range_meta.window.timezonestring—Time zone of the window; always `UTC`.
data[].btc_range_meta.coverageobject—The venues the calculation requires and the daily high and low of each.
data[].btc_range_meta.coverage.venues_requirednumber—Number of venues the calculation requires (3).
data[].btc_range_meta.coverage.venues_availablenumber—Number of venues that have a daily candle for that day.
data[].btc_range_meta.coverage.venuesarray—The venues and their prices.
data[].btc_range_meta.coverage.venues[]object—One venue.
data[].btc_range_meta.coverage.venues[].exchangestring—Exchange id.
data[].btc_range_meta.coverage.venues[].pairstring—Trading pair of the daily candle.
data[].btc_range_meta.coverage.venues[].marketstring—Market type: `spot`.
data[].btc_range_meta.coverage.venues[].highnumber—Daily high on this venue, in the quote currency of `pair`; null when the candle is missing.
data[].btc_range_meta.coverage.venues[].lownumber—Daily low on this venue, in the quote currency of `pair`; null when the candle is missing.
data[].btc_range_meta.coverage.venues[].finalboolean—`true` when the daily candle is final, i.e. the venue’s next daily candle has been stored; null when the candle is missing.
data[].btc_range_meta.coverage.high_venuestring—Venue whose daily high is the median, i.e. equals `btc_high`.
data[].btc_range_meta.coverage.low_venuestring—Venue whose daily low is the median, i.e. equals `btc_low`.
data[].liquidation_count_meta.coverage.exchange_countnumber—Number of exchanges with at least one liquidation event that day. may be absent
data[].liquidation_count_meta.coverage.exchangesarray—Those exchanges. may be absent
data[].liquidation_count_meta.coverage.exchanges[]string—Exchange id.
data[].liquidation_count_meta.coverage.dedup_keystring—Fields that identify one liquidation event; records with the same key are counted once. may be absent
data[].liquidation_count_meta.coverage.raw_rowsnumber—Number of collected records before de-duplication. may be absent
data[].liquidation_count_meta.coverage.duplicates_removednumber—Number of duplicate records dropped. may be absent
data[].liquidation_count_meta.coverage.by_exchangearray—Per-exchange split of the count; null when no per-exchange snapshot was recorded. may be absent
data[].liquidation_count_meta.coverage.by_exchange[]object—One exchange.
data[].liquidation_count_meta.coverage.by_exchange[].exchangestring—Exchange id.
data[].liquidation_count_meta.coverage.by_exchange[].liquidation_countnumber—Liquidation events on this exchange.
data[].liquidation_count_meta.coverage.by_exchange[].total_usdnumberUSDNotional liquidated on this exchange.
data[].account_count_meta.coverage.market_wideboolean—`true` only when every exchange in the day’s total exposes an account identifier for every event. may be absent
data[].account_count_meta.coverage.exchange_countnumber—Number of exchanges whose data carries an account identifier. may be absent
data[].account_count_meta.coverage.exchangesarray—Those exchanges. may be absent
data[].account_count_meta.coverage.exchanges[]string—Exchange id.
data[].account_count_meta.coverage.exchanges_totalnumber—Number of exchanges in the day’s total. may be absent
data[].account_count_meta.coverage.exchanges_without_account_idarray—Exchanges in the day’s total whose data carries no account identifier; their liquidations are not part of `account_count`. may be absent
data[].account_count_meta.coverage.exchanges_without_account_id[]string—Exchange id.
data[].account_count_meta.coverage.by_exchangearray—Per-exchange split of `account_count`. may be absent
data[].account_count_meta.coverage.by_exchange[]object—One exchange.
data[].account_count_meta.coverage.by_exchange[].exchangestring—Exchange id.
data[].account_count_meta.coverage.by_exchange[].account_countnumber—Distinct liquidated accounts on this exchange.
data[].account_count_meta.coverage.by_exchange[].eventsnumber—Liquidation events on this exchange that carry an account identifier.
data[].account_count_meta.coverage.by_exchange[].usdnumberUSDNotional of those events.
data[].account_count_meta.coverage.dedup_keystring—Fields that identify one account; the same key is counted once per UTC day. may be absent
data[].account_count_meta.coverage.events_coverednumber—Liquidation events that carry an account identifier. may be absent
data[].account_count_meta.coverage.events_totalnumber—All liquidation events of the day (`liquidation_count`). may be absent
data[].account_count_meta.coverage.events_share_pctnumber%`events_covered` / `events_total` × 100. may be absent
data[].account_count_meta.coverage.usd_coverednumberUSDNotional of the events that carry an account identifier. may be absent
data[].account_count_meta.coverage.usd_totalnumberUSDTotal notional of the day (`total_usd`). may be absent
data[].account_count_meta.coverage.usd_share_pctnumber%`usd_covered` / `usd_total` × 100. may be absent
threshold_usdnumberUSD`total_usd` of the 10th row. A new CoinBoss day is added only when its total is greater than this value.
coverageobject—What is included and what is missing.
coverage.rankingstring—Ordering rule of the list.
coverage.baselineobject—
coverage.baseline.sourcestring—Origin of the baseline rows.
coverage.baseline.rows_in_listnumber—Number of baseline rows among the 10 rows returned.
coverage.baseline.frozenboolean—Always `true`: baseline rows are never recalculated.
coverage.baseline.checksum_okboolean—`true` when the stored baseline rows are byte-identical to the locked reference copy.
coverage.baseline.notestring—Plain-language description of the baseline rows.
coverage.coinbossobject—
coverage.coinboss.sourcestring—Origin of the CoinBoss rows.
coverage.coinboss.basisstring—Aggregation basis of the CoinBoss rows.
coverage.coinboss.rows_in_listnumber—Number of CoinBoss rows among the 10 rows returned.
coverage.coinboss.fromstring—Earliest `event_date` among the CoinBoss rows in the list; null when there are none.
coverage.coinboss.notestring—Plain-language description of the CoinBoss rows and the admission rule.
coverage.metricsobject—Definitions of the count fields and the BTC fields.
coverage.metrics.people_countobject—Status of a liquidated-trader (people) count.
coverage.metrics.people_count.qualitystring—Always `UNAVAILABLE`: CoinBoss does not publish a people count.
coverage.metrics.people_count.notestring—Plain-language explanation of why a people count is not available.
coverage.metrics.liquidation_countobject—Definition of `data[].liquidation_count`.
coverage.metrics.liquidation_count.kindstring—What the number counts: `liquidation_events`.
coverage.metrics.liquidation_count.rowsstring—Rows that carry the field: `coinboss` or `all`.
coverage.metrics.liquidation_count.definitionstring—Plain-language definition.
coverage.metrics.liquidation_count.dedup_keystring—Fields that identify one liquidation event; records with the same key are counted once.
coverage.metrics.liquidation_count.limitsstring—Known limits of the figure.
coverage.metrics.account_countobject—Definition of `data[].account_count`.
coverage.metrics.account_count.kindstring—What the number counts: `unique_accounts`.
coverage.metrics.account_count.rowsstring—Rows that carry the field: `coinboss` or `all`.
coverage.metrics.account_count.definitionstring—Plain-language definition.
coverage.metrics.account_count.dedup_keystring—Fields that identify one account; the same key is counted once per UTC day.
coverage.metrics.btc_rangeobject—Definition of `data[].btc_high`, `btc_low`, `btc_range` and `btc_range_pct`.
coverage.metrics.btc_range.sourcestring—Origin of the prices: `coinboss_spot_composite`, built from the spot daily candles CoinBoss collects from the three venues.
coverage.metrics.btc_range.methodstring—Calculation method: median of the three venues’ daily highs, and median of their daily lows.
coverage.metrics.btc_range.price_typestring—Kind of price used: `spot`.
coverage.metrics.btc_range.unitstring—Unit of the BTC price fields: `USD`.
coverage.metrics.btc_range.windowstring—Time window of the prices, in words.
coverage.metrics.btc_range.venuesarray—The three spot venues the calculation requires.
coverage.metrics.btc_range.venues[]object—One venue.
coverage.metrics.btc_range.venues[].exchangestring—Exchange id.
coverage.metrics.btc_range.venues[].pairstring—Trading pair of the daily candle.
coverage.metrics.btc_range.venues[].marketstring—Market type: `spot`.
coverage.metrics.btc_range.definitionstring—Plain-language definition.
coverage.metrics.btc_range.limitsstring—Known limits of the figure.
coverage.metrics.btc_range.rowsstring—Rows that carry the field: `coinboss` or `all`.

Generated 2026-11-12 10:27 UTC from 1 real responses.

Example response

/api/liquidation-events · Real response captured 2026-11-13 03:57:53 UTC. Long arrays and maps are shortened for display: data had 10 items; coverage.metrics.btc_range.venues had 3 items; data[].btc_range_meta.coverage.venues had 3 items.

  • {
    • "success": true,
    • "count": 10,
    • "data": [
      • { … 22 },
      • { … 22 }
      ],
    • "threshold_usd": 2768000000,
    • "coverage": {
      • "ranking": "top10_by_total_usd_desc",
      • "baseline": { … 5 },
      • "coinboss": { … 5 },
      • "metrics": { … 4 }
      }
    }

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
5m
Edge micro-cache
10s
Update frequency
daily at 02:30 UTC
Window
All time for baseline rows; CoinBoss rows start on 2026-08-19 and run to yesterday (UTC).
Data sources
Baseline rows: third-party public historical records (static, not refreshed). CoinBoss rows: CoinBoss's own liquidation records collected from exchange feeds, de-duplicated and summed per UTC day. BTC prices (all rows): spot daily candles (UTC) that CoinBoss collects from Binance (BTC/USDT), Coinbase (BTC/USD) and Kraken (BTC/USD).
Exchange coverage
10 rows. Baseline rows carry the third-party figures as recorded (`liquidated_traders`, `btc_amplitude`, `event_zh`). CoinBoss does not publish a liquidated-trader (people) count: exchange feeds do not identify people. `liquidation_count` and `account_count` exist for CoinBoss rows only, and `account_count` covers only exchanges whose data carries an account identifier (currently Hyperliquid). `btc_high`, `btc_low`, `btc_range` and `btc_range_pct` are computed for every row and are null unless all three spot venues have a final daily candle.
Sorting
total_usd desc (rank_no asc)
Units
total_usd / amount_usd / long_usd / short_usd / threshold_usd / btc_high / btc_low / btc_range in USD; btc_range_pct in percent; liquidation_count in events; account_count in accounts; event_date as calendar date; amount_display, liquidated_traders, btc_amplitude are display strings
Method
CoinBoss rows: SUM(value_usd) of collected liquidation orders per UTC day after de-duplication. A new day is admitted when its total_usd is greater than the total_usd of rank 10. All rows are then sorted by total_usd and the first 10 are returned. Baseline rows are not recomputed. BTC: btc_high / btc_low = median of the daily high / low of the three spot venues; btc_range = btc_high − btc_low; btc_range_pct = (btc_high − btc_low) / btc_low × 100.
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable

Live status

AvailableChecked 2026-11-13 03:57:53 UTCHTTP 2001 msSchema matches

Availability, last 30 days

100% of 410 checks passed

Errors

Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →

CodeHTTPMeaningWhat to do
INVALID_PARAM400A required parameter is missing or a value is not accepted. `param` names the parameter when it is known.Do not retry unchanged; fix the request.
UNAUTHORIZED401The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key.Do not retry unchanged.
FORBIDDEN403The route is not part of the public API (internal or account-only).Do not retry.
NOT_FOUND404Unknown route, or the requested coin / exchange / fund does not exist.Do not retry; check the path and identifiers against the catalog.
RATE_LIMITED429More requests than the per-minute limit. `Retry-After` gives the seconds to wait.Wait for `Retry-After`, then retry with backoff.
INTERNAL500Unexpected server error. The message is generic by design; quote `request_id` when reporting it.Retry once after a few seconds; report it with the request id if it persists.
UPSTREAM_FAILED503The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place.Retry with backoff; check the status page.
UNAVAILABLE501 / 503The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet.Retry later; the catalog marks endpoints that are unavailable by design.
REQUEST_FAILED200Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status.Depends on the message; treat as a failed request.

Try it

GET/api/liquidation-eventsAvailable
Parameters

No parameters.

Request URLhttps://www.coinboss.com/api/liquidation-events
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.