77trust / 100

Liquidations

by Crypto Liquidations Tracker in Onchain & crypto

x402 APIPassing, checked 18 min ago

Liquidations of one coin's perpetual futures: recent forced liquidations from the Gate, Bitfinex, dYdX, Deribit and OKX public feeds, long and short liquidations in USD per venue, the totals and the largest events over 1-24h. Liquidation data for BTC, ETH, SOL and more; Bybit, Hyperliquid and Kraken are listed as not covered (WebSocket only). Data only. Bad input is free; under 2 feeds not charged.

GET
https://derivs.duoleads.com/v1/liquidations
Price
$0.003
per call in USDC
Uptime
100%
last 30 days
Response time
423 ms
694 ms slowest 5%
Last check
Passed
18 min ago, next in 10 min

Run a free test callHow to call it

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to call it

GET https://derivs.duoleads.com/v1/liquidations

Each call costs $0.003 in USDC on Base, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

GET https://derivs.duoleads.com/v1/liquidations?coin=BTC&hours=24

Parameters

ParameterTypeRequiredDescription
coinstringYesCoin symbol: BTC, ETH, SOL ... (also BTCUSDT, BTC-PERP, XBT).
hoursstringNoLook-back window in hours, 1-24. Default 24. Default: "24".

Example response

The provider's example. We can't check it without paying.

Example response, 100 lines
{
  "as_of": "2026-10-14T23:00:00Z",
  "coin": "BTC",
  "colo": null,
  "disclaimer": "Data only, not investment advice, not a benchmark; not affiliated with any exchange",
  "hours": 24,
  "largest": [
    {
      "price": 81646.4,
      "side": "long",
      "size_coins": 6,
      "size_usd": 489878.4,
      "symbol": "BTC-USDT-SWAP",
      "time": "2026-10-14T21:03:30Z",
      "venue": "okx"
    },
    {
      "price": 81630.8,
      "side": "long",
      "size_coins": 2.08,
      "size_usd": 169792.064,
      "symbol": "BTC-USDT-SWAP",
      "time": "2026-10-14T21:03:34Z",
      "venue": "okx"
    }
  ],
  "request_id": "01KEXAMPLE0000000000000000",
  "see_also": {
    "endpoint": "https://derivs.duoleads.com/v1/open-interest",
    "params": [
      "coin"
    ],
    "reason": "Open interest per venue with its 1 h / 4 h / 24 h change."
  },
  "totals": {
    "count": 141,
    "long_share_pct": 98.1583,
    "long_usd": 2039006.657,
    "partial": true,
    "partial_venues": [
      "okx"
    ],
    "short_usd": 38256.80723,
    "total_usd": 2077263.464
  },
  "units": {
    "covered_hours": "hours back from as_of that the venue's feed reaches (<= hours)",
    "price": "USD per coin (execution or bankruptcy price as the venue publishes)",
    "side": "the side of the position that was liquidated (long = forced sell)",
    "size_coins": "coins",
    "size_usd": "USD = size_coins x price",
    "times": "ISO 8601 UTC"
  },
  "venues": [
    {
      "as_of": "2026-10-14T23:00:00Z",
      "count": 29,
      "covered_hours": 24,
      "long_usd": 305655.3674,
      "short_usd": 34040.14805,
      "stale": false,
      "venue": "gate",
      "window_start": "2026-10-13T23:00:00Z"
    },
    {
      "as_of": "2026-10-14T23:00:00Z",
      "count": 12,
      "covered_hours": 24,
      "long_usd": 469920.1238,
      "short_usd": 0,
      "stale": false,
      "venue": "bitfinex",
      "window_start": "2026-10-13T23:00:00Z"
    },
    {
      "as_of": "2026-10-14T23:00:00Z",
      "count": 0,
      "covered_hours": 24,
      "long_usd": 0,
      "short_usd": 0,
      "stale": false,
      "venue": "dydx",
      "window_start": "2026-10-13T23:00:00Z"
    }
  ],
  "venues_missing": [
    {
      "reason": "not_covered",
      "venue": "bybit"
    },
    {
      "reason": "not_covered",
      "venue": "hyperliquid"
    },
    {
      "reason": "not_covered",
      "venue": "kraken"
    }
  ]
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.003.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://derivs.duoleads.com/v1/liquidations?coin=BTC&hours=24'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://derivs.duoleads.com/v1/liquidations?coin=BTC&hours=24' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.003 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.003" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.003 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fderivs.duoleads.com%2Fv1%2Fliquidations
const res = await pay("https://derivs.duoleads.com/v1/liquidations?coin=BTC&hours=24");
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.003 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.003"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.get("https://derivs.duoleads.com/v1/liquidations?coin=BTC&hours=24")
    print(res.status_code, res.text)

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
18 min agoPassed402379 ms$0.003
5 h agoPassed402567 ms$0.003
10 h agoPassed402348 ms$0.003
15 h agoPassed402333 ms$0.003
20 h agoPassed402467 ms$0.003
Show 8 older checks
25 h agoPassed402364 ms$0.003
30 h agoPassed402537 ms$0.003
34 h agoPassed402423 ms$0.003
39 h agoPassed402563 ms$0.003
43 h agoPassed402350 ms$0.003
47 h agoPassed402694 ms$0.003
2 days agoPassed402663 ms$0.003
3 days agoPassed402175 ms$0.003