Liquidations cover derivatives venues only; spot markets do not produce liquidation events.
OKX Liquidation Dataset
OKX Historical Liquidation Data
OKX forced-liquidation events with side, price, quantity, and fill state, normalized for cross-venue research.
Coverage
Liquidation coverage
Coverage is organized by exchange, market type, and hourly object path. Live symbol counts are shown when the symbols API responds during page generation.
| Venue | Exchange ID | Market | History start | Liquidation symbols |
|---|---|---|---|---|
| OKX Futures | okx_futures | Futures | 2025-06-28 | 459 |
Schema
Normalized liquidation schema
Every liquidation row is a forced order published by the exchange with side, order type, price, quantity, fill state, and timing fields.
| Field | Type | Nullable | Description |
|---|---|---|---|
| received_time | INT64 | No | Unix timestamp (nanoseconds) when our system received the liquidation event |
| event_time | INT64 | No | Unix timestamp (exchange dependent on timescale) when the exchange generated the event |
| symbol | STRING | No | Trading pair symbol (e.g., 'BTCUSDT') |
| side | STRING | No | Side of the liquidation order ("BUY" = short position liquidated, "SELL" = long position liquidated) |
| order_type | STRING | No | Type of liquidation order (e.g., "MARKET", "LIMIT") |
| time_in_force | STRING | No | Order time-in-force policy (e.g., "IOC", "FOK", "GTC") |
| quantity | STRING | No | Total order quantity being liquidated (stored as string for precision) |
| price | STRING | No | Liquidation order price (stored as string for precision) |
| average_price | STRING | No | Average execution price across all fills (stored as string for precision) |
| order_status | STRING | No | Current status of the liquidation order (e.g., "FILLED", "PARTIALLY_FILLED") |
| last_filled_quantity | STRING | No | Quantity filled in the most recent execution (stored as string for precision) |
| filled_quantity | STRING | No | Total quantity filled so far (stored as string for precision) |
| trade_time | INT64 | No | Unix timestamp when the liquidation trade occurred |
Access
Download with Python or REST
The sample below downloads BTC-USDT-SWAP from OKX Futures for 2025-08-01, hour 20.
import cryptohftdata as chd
client = chd.CryptoHFTDataClient(api_key="your-api-key-here")
df = client.get_liquidations(
symbol="BTC-USDT-SWAP",
exchange=chd.exchanges.OKX_FUTURES,
start_date="2025-08-01",
end_date="2025-08-01",
)
print(df.head())
print(f"Liquidations: {len(df):,}")curl "https://api.cryptohftdata.com/download?file=okx_futures/2025-08-01/20/BTC-USDT-SWAP_liquidations.parquet.zst&api_key=your-api-key-here" \
-o BTC-USDT-SWAP_liquidations_20.parquet.zstCaveats
What this data is and is not
These details are important for accurate backtests, replay pipelines, and microstructure features.
Exchanges control what they broadcast: some venues throttle or sample their public liquidation feeds, so totals are a lower bound on actual liquidation volume.
Hourly liquidation files exist only for hours in which the venue published at least one liquidation event for that symbol.
This page starts on 2025-06-28 based on the earliest stored hourly files for its covered exchange IDs and grows as new hourly files are published.
Next
Use the liquidation data
Start with an API key, then move between docs, tutorials, and the browser data explorer as needed.