Discovery and markets API

How much of this coin do exchanges hold, and is it rising or falling?

Exchange-held balances of one coin, biggest holder first: what each exchange holds and how many coins moved in or out over 1, 7 and 30 days, with totals. Coin units, no chain. Narrow coin coverage.

GET/api/external/discovery/exchange-reserves/{symbol}

What it returns

What centralized exchanges hold of one coin, biggest holder first: the balance on each exchange and how many coins moved in or out over the last day, week and month, with the totals across the exchanges listed. Every figure is in COIN UNITS, never USD, and each percent is measured against the balance at the START of its window (129.99 = the balance grew 129.99% over that window). Falling reserves are usually read as coins leaving for self-custody, rising ones as coins moving in to be sold. Coverage is narrow — measured 2026-09-22, BTC, ETH, USDC, XRP, DAI and LINK answer while USDT, SOL, BNB, DOGE, LTC, TRX, WBTC and ADA do not — and a coin that is not covered returns 404. Each total is the sum over the exchanges that reported that figure, which is never every exchange, and is null when none of them did.

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/exchange-reserves/<symbol>"
Parameters
ParameterDescription
symbol

path · string · required

The coin ticker, e.g. "BTC" or "USDC" — not a token mint or contract address, and not a venue instrument id such as "BTCUSDT". 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 How much of this coin do exchanges hold, and is it rising or falling?
FieldTypeDescription
symbolstringThe coin answered, upper case.
totalBalancenumber | nullCoins held across the exchanges that reported a balance, in coin units. null when none did.
totalChange1dnumber | nullCoins that moved in (positive) or out (negative) over the last day, summed over the exchanges that reported it.
totalChange7dnumber | nullThe same over the last 7 days.
totalChange30dnumber | nullThe same over the last 30 days.
exchangesobject[]One row per exchange, biggest balance first. Never empty: a coin with no row is a 404.
exchanges[].exchangestringThe exchange's name, as the source spells it, e.g. Coinbase.
exchanges[].balancenumber | nullCoins this exchange holds now, in COIN UNITS, not USD.
exchanges[].change1dnumber | nullHow many coins that balance moved over the last day. Negative means coins left the exchange.
exchanges[].changePercent1dnumber | nullThat move as a percent of the balance a day ago (129.99 = +129.99%).
exchanges[].change7dnumber | nullHow many coins the balance moved over the last 7 days.
exchanges[].changePercent7dnumber | nullThat move as a percent of the balance 7 days ago.
exchanges[].change30dnumber | nullHow many coins the balance moved over the last 30 days.
exchanges[].changePercent30dnumber | nullThat move as a percent of the balance 30 days ago.

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