openapi: 3.2.0 info: title: Bitculator Data Liquidations API description: 'Programmatic access to Bitculator market data: coins, prices, history, exchanges, trust scores, tickers, pairs, wallets, sentiment, technical indicators, liquidations, editorial content, and calculators.' version: 1.0.0 servers: - url: https://bitculator.com security: - default: [] tags: - name: Liquidations description: 'Derivatives liquidations. Source coverage is currently OKX swap markets only (stated in every `meta.note`). The RAW feed (the `/liquidations` list and the hourly breakdown) is pruned after ~48 hours; daily rollups are kept forever. Today''s aggregates are partial and update every ~15 minutes.' paths: /api/v1/liquidations: get: summary: Liquidation feed operationId: liquidationFeed description: 'The raw liquidation feed (~last 48h, then pruned), newest first. Source coverage is currently OKX swap markets. Prices are decimal strings. `meta` carries the pagination fields plus a `retention` and `note`.' parameters: - in: query name: page description: Page number (1-based). Must be at least 1. example: 1 required: false schema: type: - integer - 'null' description: Page number (1-based). Must be at least 1. example: 1 - in: query name: per_page description: Rows per page. The cap is plan-based (Free 100, Starter/Pro 250); exceeding it returns 422 rather than clamping. Must be at least 1. Must not be greater than 100. example: 50 required: false schema: type: - integer - 'null' description: Rows per page. The cap is plan-based (Free 100, Starter/Pro 250); exceeding it returns 422 rather than clamping. Must be at least 1. Must not be greater than 100. example: 50 - in: query name: exchange description: Restrict to a single exchange by slug. Source coverage is currently OKX swap markets. Must match the regex /^[a-z0-9\-]{1,120}$/. example: okx required: false schema: type: - string - 'null' description: Restrict to a single exchange by slug. Source coverage is currently OKX swap markets. Must match the regex /^[a-z0-9\-]{1,120}$/. example: okx - in: query name: instrument description: 'Instrument type: future, option, swap, spot or margin.' example: swap required: false schema: type: - string - 'null' description: 'Instrument type: future, option, swap, spot or margin.' example: swap enum: - future - option - swap - spot - margin - in: query name: position description: 'Liquidated position side: long or short.' example: short required: false schema: type: - string - 'null' description: 'Liquidated position side: long or short.' example: short enum: - long - short - in: query name: order description: 'Fill side that triggered the liquidation: buy or sell.' example: buy required: false schema: type: - string - 'null' description: 'Fill side that triggered the liquidation: buy or sell.' example: buy enum: - buy - sell - in: query name: symbol description: Prefix match on the venue instId (e.g. BTC matches BTC-USDT-SWAP). Must match the regex /^[A-Za-z0-9$\.\-]{1,25}$/. example: BTC required: false schema: type: - string - 'null' description: Prefix match on the venue instId (e.g. BTC matches BTC-USDT-SWAP). Must match the regex /^[A-Za-z0-9$\.\-]{1,25}$/. example: BTC - in: query name: min_usd description: Only liquidations with a USD value at or above this threshold. Must be at least 0. example: 1000 required: false schema: type: - number - 'null' description: Only liquidations with a USD value at or above this threshold. Must be at least 0. example: 1000 responses: '200': description: '' content: application/json: schema: type: object example: data: - symbol: NEAR-USDT-SWAP exchange: id: 20 slug: okx name: OKX instrument: swap position: short order: buy price: '2.245' value_usd: 5727.73 quantity: 259.1 liquidated_at: '2026-06-21T07:39:41+00:00' meta: current_page: 1 per_page: 50 total: 4681 last_page: 94 retention: ~48 hours (raw feed is pruned) note: 'Source coverage: OKX swap markets.' properties: data: type: array example: - symbol: NEAR-USDT-SWAP exchange: id: 20 slug: okx name: OKX instrument: swap position: short order: buy price: '2.245' value_usd: 5727.73 quantity: 259.1 liquidated_at: '2026-06-21T07:39:41+00:00' items: type: object properties: symbol: type: string example: NEAR-USDT-SWAP exchange: type: object properties: id: type: integer example: 20 slug: type: string example: okx name: type: string example: OKX instrument: type: string example: swap position: type: string example: short order: type: string example: buy price: type: string example: '2.245' value_usd: type: number example: 5727.73 quantity: type: number example: 259.1 liquidated_at: type: string example: '2026-06-21T07:39:41+00:00' meta: type: object properties: current_page: type: integer example: 1 per_page: type: integer example: 50 total: type: integer example: 4681 last_page: type: integer example: 94 retention: type: string example: ~48 hours (raw feed is pruned) note: type: string example: 'Source coverage: OKX swap markets.' tags: - Liquidations /api/v1/liquidations/hourly: get: summary: Hourly liquidations operationId: hourlyLiquidations description: 'Hourly long/short USD totals over the raw feed. Because the raw feed is pruned at ~48h, `hours` is capped at 48. Source coverage is currently OKX swap markets.' parameters: - in: query name: hours description: Look-back window in hours (1–48, default 24). example: 24 required: false schema: type: - integer - 'null' description: Look-back window in hours (1–48, default 24). example: 24 responses: '200': description: '' content: application/json: schema: type: object example: data: - hour: '2026-07-03T08:00:00+00:00' liquidations: 112 total_usd: 1834567.21 long_usd: 1034567.11 short_usd: 800000.1 meta: hours: 24 note: 'Source coverage: OKX swap markets.' properties: data: type: array example: - hour: '2026-07-03T08:00:00+00:00' liquidations: 112 total_usd: 1834567.21 long_usd: 1034567.11 short_usd: 800000.1 items: type: object properties: hour: type: string example: '2026-07-03T08:00:00+00:00' liquidations: type: integer example: 112 total_usd: type: number example: 1834567.21 long_usd: type: number example: 1034567.11 short_usd: type: number example: 800000.1 meta: type: object properties: hours: type: integer example: 24 note: type: string example: 'Source coverage: OKX swap markets.' tags: - Liquidations /api/v1/liquidations/daily: get: summary: Daily liquidations operationId: dailyLiquidations description: 'Daily aggregates (kept forever), summed across exchanges/instruments per day — total/long/short USD plus long/short position counts. Today''s row is partial and updates every ~15 minutes. Source coverage is currently OKX swap markets.' parameters: - in: query name: days description: Number of calendar days incl. today (1–365, default 30). example: 30 required: false schema: type: - integer - 'null' description: Number of calendar days incl. today (1–365, default 30). example: 30 responses: '200': description: '' content: application/json: schema: type: object example: data: - date: '2026-07-02' total_usd: 27888888.76 long_usd: 18345672.1 short_usd: 9543216.66 longs: 4231 shorts: 2614 meta: days: 30 note: 'Source coverage: OKX swap markets.' properties: data: type: array example: - date: '2026-07-02' total_usd: 27888888.76 long_usd: 18345672.1 short_usd: 9543216.66 longs: 4231 shorts: 2614 items: type: object properties: date: type: string example: '2026-07-02' total_usd: type: number example: 27888888.76 long_usd: type: number example: 18345672.1 short_usd: type: number example: 9543216.66 longs: type: integer example: 4231 shorts: type: integer example: 2614 meta: type: object properties: days: type: integer example: 30 note: type: string example: 'Source coverage: OKX swap markets.' tags: - Liquidations /api/v1/liquidations/summary: get: summary: Today's liquidation summary operationId: todaysLiquidationSummary description: 'Today so far — total/long/short USD, position counts and long-vs-short `dominance`. Figures are partial and update every ~15 minutes; `data` is null until the first liquidation of the day is recorded. Source coverage is currently OKX swap markets.' parameters: [] responses: '200': description: '' content: application/json: schema: type: object example: data: date: '2026-07-03' total_usd: 12345678.9 long_usd: 8345678.9 short_usd: 4000000 longs: 1834 shorts: 961 dominance: long: 67.6 short: 32.4 meta: note: 'Source coverage: OKX swap markets. Today''s figures are partial and update every ~15 minutes.' properties: data: type: object properties: date: type: string example: '2026-07-03' total_usd: type: number example: 12345678.9 long_usd: type: number example: 8345678.9 short_usd: type: integer example: 4000000 longs: type: integer example: 1834 shorts: type: integer example: 961 dominance: type: object properties: long: type: number example: 67.6 short: type: number example: 32.4 meta: type: object properties: note: type: string example: 'Source coverage: OKX swap markets. Today''s figures are partial and update every ~15 minutes.' tags: - Liquidations /api/v1/liquidations/netflow: get: summary: Liquidation netflow operationId: liquidationNetflow description: 'Long-vs-short liquidation USD flow per day over the window. Source coverage is currently OKX swap markets.' parameters: - in: query name: days description: Number of calendar days incl. today (1–90, default 30). example: 30 required: false schema: type: - integer - 'null' description: Number of calendar days incl. today (1–90, default 30). example: 30 responses: '200': description: '' content: application/json: schema: type: object example: data: - date: '2026-07-02' long: 1834567.21 short: 954321.55 total: 2788888.76 longs: 420 shorts: 261 meta: days: 30 note: 'Source coverage: OKX swap markets.' properties: data: type: array example: - date: '2026-07-02' long: 1834567.21 short: 954321.55 total: 2788888.76 longs: 420 shorts: 261 items: type: object properties: date: type: string example: '2026-07-02' long: type: number example: 1834567.21 short: type: number example: 954321.55 total: type: number example: 2788888.76 longs: type: integer example: 420 shorts: type: integer example: 261 meta: type: object properties: days: type: integer example: 30 note: type: string example: 'Source coverage: OKX swap markets.' tags: - Liquidations /api/v1/liquidations/coins: get: summary: Top liquidated coins operationId: topLiquidatedCoins description: 'Top coins by liquidation volume over the recent window, with the long/short USD split per coin. Source coverage is currently OKX swap markets.' parameters: - in: query name: hours description: Look-back window in hours (1–48, default 24). example: 24 required: false schema: type: - integer - 'null' description: Look-back window in hours (1–48, default 24). example: 24 - in: query name: limit description: Number of coins to return (1–20, default 8). example: 8 required: false schema: type: - integer - 'null' description: Number of coins to return (1–20, default 8). example: 8 responses: '200': description: '' content: application/json: schema: type: object example: data: - symbol: BTC name: Bitcoin slug: bitcoin logo: https://bitculator.com/storage/media/assets/bitcoin-small.png long: 734567.21 short: 954321.55 total: 1688888.76 meta: hours: 24 note: 'Source coverage: OKX swap markets.' properties: data: type: array example: - symbol: BTC name: Bitcoin slug: bitcoin logo: https://bitculator.com/storage/media/assets/bitcoin-small.png long: 734567.21 short: 954321.55 total: 1688888.76 items: type: object properties: symbol: type: string example: BTC name: type: string example: Bitcoin slug: type: string example: bitcoin logo: type: string example: https://bitculator.com/storage/media/assets/bitcoin-small.png long: type: number example: 734567.21 short: type: number example: 954321.55 total: type: number example: 1688888.76 meta: type: object properties: hours: type: integer example: 24 note: type: string example: 'Source coverage: OKX swap markets.' tags: - Liquidations components: securitySchemes: default: type: http scheme: bearer description: Create a Data API key in your developer console — keys are Bearer-only and carry the data-api ability. Keep them server-side; they are never meant for client-side embedding.