Discovery and markets API

Large limit orders (walls) in one coin's spot book on one exchange

The large limit orders resting in one coin's spot pair on one of six major exchanges, and those that filled or were pulled in the last 7 days. Keyed by coin ticker and exchange.

GET/api/external/discovery/spot-large-orders/{symbol}

What it returns

The large limit orders (order-book walls) in one coin's spot pair 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, 500k for ETH, 50k for smaller coins. Prices and values are in the pair's quote currency, named in quote. 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. Without quote, the exchange's USDT pair is used, else its USD pair, else its USDC pair, else the first of the rest in alphabetical order. A pair with no large order answers empty lists; a coin the exchange lists no pair for, or none in the quote asked, 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/discovery/spot-large-orders/<symbol>?venue=Binance"
Parameters
ParameterDescription
venue

query · string · required

The exchange, spelled exactly as listed (case-sensitive), as spot-coin-venues names it.BinanceBitfinexBybitCoinbaseKrakenOKX
quote

query · string · optional

The quote currency of the pair, e.g. "USDT" or "USD". Case-insensitive. Optional: without it, USDT, then USD, then USDC.
limit

query · 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.
symbol

path · string · required

The coin (base asset) ticker, e.g. "BTC" or "SOL" — not a pair such as "BTCUSDT" or "BTC/USDT", and not a token mint or contract address. Case-insensitive.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Large limit orders (walls) in one coin's spot book on one exchange
FieldTypeDescription
symbolstringThe coin ticker as the exchange lists it, e.g. "BTC" for "btc".
venuestringThe exchange.
quotestringThe currency every price and value is in, e.g. "USDT" or "USD".
pairstringThe pair, BASE/QUOTE, as spot-coin-venues prints it.
restingobject[]The large orders resting now, highest price first.
resting[].idstringAn id for the order, stable across reads.
resting[].sidestringbid: an order to buy; ask: an order to sell.
resting[].pricenumberThe limit price, in quote.
resting[].openedAtnumber | nullWhen the order was first seen in the book, unix seconds. null when not stated.
resting[].updatedAtnumberWhen the order was last updated, unix seconds. An order that has not changed keeps an old time.
resting[].endedAtnumber | nullWhen the order left the book, unix seconds. null while it rests.
resting[].initialQuantitynumber | nullThe quantity when first seen, in units of the coin. null when not stated.
resting[].initialValuenumber | nullinitialQuantity times price, in quote. null when not stated.
resting[].quantitynumber | nullThe quantity at the last update, in units of the coin. It can exceed initialQuantity when the order grew. null when not stated.
resting[].valuenumber | nullquantity times price, in quote. null when not stated.
resting[].filledQuantitynumber | nullHow much of it traded, in units of the coin. null when not stated.
resting[].filledValuenumber | nullThe traded part times price, in quote. null when not stated.
resting[].tradesnumber | nullHow many trades filled part of it. null when not stated.
resting[].statusstringresting: still in the book; filled: left the book having traded some or all of it; pulled: left without trading.
staleOmittedintegerResting orders left out because an opposite order updated later crossed their price, so they had already gone.
endedobject[]The large orders that left the book in the last seven days, newest first, at most limit.
ended[].idstringAn id for the order, stable across reads.
ended[].sidestringbid: an order to buy; ask: an order to sell.
ended[].pricenumberThe limit price, in quote.
ended[].openedAtnumber | nullWhen the order was first seen in the book, unix seconds. null when not stated.
ended[].updatedAtnumberWhen the order was last updated, unix seconds. An order that has not changed keeps an old time.
ended[].endedAtnumber | nullWhen the order left the book, unix seconds. null while it rests.
ended[].initialQuantitynumber | nullThe quantity when first seen, in units of the coin. null when not stated.
ended[].initialValuenumber | nullinitialQuantity times price, in quote. null when not stated.
ended[].quantitynumber | nullThe quantity at the last update, in units of the coin. It can exceed initialQuantity when the order grew. null when not stated.
ended[].valuenumber | nullquantity times price, in quote. null when not stated.
ended[].filledQuantitynumber | nullHow much of it traded, in units of the coin. null when not stated.
ended[].filledValuenumber | nullThe traded part times price, in quote. null when not stated.
ended[].tradesnumber | nullHow many trades filled part of it. null when not stated.
ended[].statusstringresting: 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