Perpetuals API
Large limit orders (walls) in one derivatives instrument's book on one exchange
The large limit orders resting in one perpetual or future on one of five major exchanges, and those that filled or were pulled in the last 7 days. Keyed by instrument id and exchange.
/api/external/perps/derivatives-large-orders/{symbol}What it returns
The large limit orders (order-book walls) in one perpetual or future's book on one exchange: those resting now, highest price first, and those that left the book in the last seven days, newest first, each marked filled (it traded some or all) or pulled (cancelled untraded). Only orders above a size floor that depends on the coin are tracked — about 1M in the quote currency for BTC, about 50k for smaller coins such as SOL. Quantities are in units of the coin, coin-margined instruments included; prices and values are in the instrument's quote currency, named in quote (USD on a coin-margined one). A resting order that an opposite order updated later crosses (a bid at or above an ask) had already gone and is left out; staleOmitted counts those. symbol is the venue's instrument id — take venue and instrument from a derivatives-coin-venues row. An instrument with no large order answers empty lists; an id the exchange does not list answers 404.
Chains
This endpoint is not tied to a chain: it takes no chain in its request.
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/perps/derivatives-large-orders/<symbol>?venue=Binance"
| Parameter | Description |
|---|---|
venuequery · string · required | The exchange, spelled exactly as listed (case-sensitive), as derivatives-coin-venues names it.BinanceBitgetBybitGateOKX |
limitquery · integer · optional | How many of the orders that left the book most recently to return, 1 to 200. Defaults to 50. Does not limit the resting orders. |
symbolpath · string · required | The venue's own instrument id, as instrument in derivatives-coin-venues rows: e.g. "BTCUSDT" (Binance, Bybit), "BTC-USDT-SWAP" (OKX), "BTC_USDT" (Gate), "BTCUSDT_UMCBL" (Bitget) — not a bare coin ticker such as "BTC", and not a token mint or contract address. The exact spelling is matched first; otherwise the one listed id that differs only in case. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
instrument | string | The instrument id as the exchange lists it, e.g. "BTCUSDT" for "btcusdt". |
venue | string | The exchange. |
symbol | string | The coin (base asset) ticker, as the exchange lists it. |
quote | string | The currency every price and value is in, e.g. "USDT" or "USD". |
resting | object[] | The large orders resting now, highest price first. |
resting[].id | string | An id for the order, stable across reads. |
resting[].side | string | bid: an order to buy; ask: an order to sell. |
resting[].price | number | The limit price, in quote. |
resting[].openedAt | number | null | When the order was first seen in the book, unix seconds. null when not stated. |
resting[].updatedAt | number | When the order was last updated, unix seconds. An order that has not changed keeps an old time. |
resting[].endedAt | number | null | When the order left the book, unix seconds. null while it rests. |
resting[].initialQuantity | number | null | The quantity when first seen, in units of the coin. null when not stated. |
resting[].initialValue | number | null | initialQuantity times price, in quote. null when not stated. |
resting[].quantity | number | null | The quantity at the last update, in units of the coin. It can exceed initialQuantity when the order grew. null when not stated. |
resting[].value | number | null | quantity times price, in quote. null when not stated. |
resting[].filledQuantity | number | null | How much of it traded, in units of the coin. null when not stated. |
resting[].filledValue | number | null | The traded part times price, in quote. null when not stated. |
resting[].trades | number | null | How many trades filled part of it. null when not stated. |
resting[].status | string | resting: still in the book; filled: left the book having traded some or all of it; pulled: left without trading. |
staleOmitted | integer | Resting orders left out because an opposite order updated later crossed their price, so they had already gone. |
ended | object[] | The large orders that left the book in the last seven days, newest first, at most limit. |
ended[].id | string | An id for the order, stable across reads. |
ended[].side | string | bid: an order to buy; ask: an order to sell. |
ended[].price | number | The limit price, in quote. |
ended[].openedAt | number | null | When the order was first seen in the book, unix seconds. null when not stated. |
ended[].updatedAt | number | When the order was last updated, unix seconds. An order that has not changed keeps an old time. |
ended[].endedAt | number | null | When the order left the book, unix seconds. null while it rests. |
ended[].initialQuantity | number | null | The quantity when first seen, in units of the coin. null when not stated. |
ended[].initialValue | number | null | initialQuantity times price, in quote. null when not stated. |
ended[].quantity | number | null | The quantity at the last update, in units of the coin. It can exceed initialQuantity when the order grew. null when not stated. |
ended[].value | number | null | quantity times price, in quote. null when not stated. |
ended[].filledQuantity | number | null | How much of it traded, in units of the coin. null when not stated. |
ended[].filledValue | number | null | The traded part times price, in quote. null when not stated. |
ended[].trades | number | null | How many trades filled part of it. null when not stated. |
ended[].status | string | resting: still in the book; filled: left the book having traded some or all of it; pulled: left without trading. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key