Discovery and markets API

Which liquidity pools on this chain are the biggest right now?

A chain-wide pool ranking by 24h volume, liquidity or trades; optionally one venue, a liquidity/volume floor, or only pools paired with tokenized stocks. Rows: price, reserves, FDV.

GET/api/external/discovery/top-pools/{chain}

What it returns

A chain-wide ranking of liquidity pools, largest first, computed across every pool indexed on the chain rather than re-sorted from one page. sort picks the figure: volume24h (the default), liquidity (pool reserves in USD) or transactions24h. dex narrows the ranking to one venue by its id — the same id every row publishes as dexId (raydium, pancakeswap_v2, uniswap-v4-base…) — and an id no venue on the chain carries returns 404. minLiquidityUsd and minVolume24hUsd are floors applied before the ranking, not after it, so they change WHICH pools compete rather than trimming the answer. pairedWith=tokenized-stock ranks only pools quoted in a tokenized equity or ETF (SPYx, NVDAx…), so the stock is quoteTokenAddress; most such pools are on SOL, few on ETH, and BNB and BASE currently have none, which is an empty ranking rather than an error. A volume ranking is not a quality ranking: the two highest-volume pools measured on one chain carried reserves of $1.18 and $0.08, which is what minLiquidityUsd is for. count is how many rows came back; there is no match total, because the underlying ranking publishes none. For one token's pools see pools, for one narrative's see sector-pools, and for one pool in full see pool-detail.

Chains

  • Solana SOL
  • BNB Chain BNB
  • Ethereum ETH
  • Base BASE

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/top-pools/SOL"
Parameters
ParameterDescription
sort

query · string · optional

What to rank by, largest first: trailing 24h volume24h, pool liquidity (reserves in USD), or transactions24h. Defaults to volume24h.volume24hliquiditytransactions24h
limit

query · integer · optional

How many pools to return. Defaults to 20, at most 100. Each 20 rows costs one upstream call, so a limit of 100 costs five. limit ≤ 50 keeps the answer under 32 KB.
dex

query · string · optional

Rank only the pools of this venue, by the id rows publish as dexId. An id no venue on this chain carries returns 404; a string no venue id can be returns 400.
minLiquidityUsd

query · number · optional

Rank only pools whose reserves are at least this many USD. Applied before the ranking: it decides which pools compete, it does not trim the result.
minVolume24hUsd

query · number · optional

Rank only pools whose trailing 24h volume is at least this many USD. Applied before the ranking.
pairedWith

query · string · optional

Rank only pools whose quote token is of this class. tokenized-stock: pools quoted in a tokenized equity or ETF (SPYx, NVDAx, TSLAx…), so the stock is quoteTokenAddress. Applied before the ranking. Omit it for every quote token.tokenized-stock
chain

path · string · required

SOL, ETH, BNB or BASE. RHC, STABLE and ARC all return 400 — none is offered on this resource. CELO, ARB, OP and SCROLL return 400 here.

Response fields

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

Response fields of Which liquidity pools on this chain are the biggest right now?
FieldTypeDescription
chainstringThe chain ranked.
sortstringThe ranking answered.
dexstring | nullThe venue the ranking was narrowed to, or null for every venue on the chain.
minLiquidityUsdnumber | nullThe liquidity floor applied, or null when none was asked for.
minVolume24hUsdnumber | nullThe 24h-volume floor applied, or null when none was asked for.
pairedWithstring | nullThe quote-token class the ranking was narrowed to, or null for every quote token.
countintegerHow many pools are in pools. This is NOT a match total — the ranking publishes none — so a count below limit means the filtered ranking ran out, not that it was trimmed.
poolsobject[]Largest first by sort.
pools[].poolstringThe pool's address on its own chain.
pools[].chainstring | nullThe chain the pool trades on — the chain asked for on every row measured.
pools[].namestring | nullThe pair as the venue names it, e.g. SOL / USDC.
pools[].dexIdstring | nullThe venue the pool belongs to, e.g. raydium — the value dex takes.
pools[].baseTokenAddressstring | nullThe base token of the pair.
pools[].quoteTokenAddressstring | nullThe quote token of the pair.
pools[].priceUsdnumber | nullPrice of the base token in USD.
pools[].liquidityUsdnumber | nullPool reserves in USD. 0 means drained; null means no reading.
pools[].volume24hUsdnumber | nullTrailing 24h traded volume in USD.
pools[].transactions24hnumber | nullTrades over the trailing 24h: buys24h + sells24h.
pools[].buys24hnumber | nullBuy trades over the trailing 24h.
pools[].sells24hnumber | nullSell trades over the trailing 24h.
pools[].buyers24hnumber | nullDistinct buying wallets over the trailing 24h — not the same figure as buys24h.
pools[].sellers24hnumber | nullDistinct selling wallets over the trailing 24h.
pools[].priceChange24hPctnumber | null24h price change in percent (4.5 = +4.5 %).
pools[].fdvUsdnumber | nullFully diluted valuation of the base token in USD.
pools[].marketCapUsdnumber | nullMarket cap of the base token in USD. Often null while fdvUsd is populated.
pools[].createdAtinteger | nullWhen the pool was created, in Unix SECONDS (not milliseconds).

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