Discovery and markets API

Filter tokens by liquidity, market cap, volume, holders or recent listing

Screens one chain's live tokens by liquidity, market cap, volume, holders or recent listing. minLiquidityUsd is required — unbounded returns wash-traded, near-zero-depth rows that look real.

GET/api/external/discovery/screener/{chain}

What it returns

Filters and sorts one chain's live token population by liquidity, market cap, 24h volume, holder count and recent-listing time. minLiquidityUsd is REQUIRED and must be a positive number: an unbounded (or zero-bounded) screen returns a well-formed page of near-zero-liquidity, wash-traded rows that read exactly like real matches — bounding solely on market cap or volume without also bounding liquidity was measured to return the same kind of row (a market-cap-real token trading under $1 of pooled depth). listedAfterUnixTime/listedBeforeUnixTime bound the underlying source's own "recently listed" tracking, which is null for most of the market (including every established token) — this is a "listed within this window" filter, not a general token-age filter. maxHolders and maxVolume24hUsd are deliberately not offered: both are accepted by the underlying source and silently ignored, verified with a byte-identical page returned with and without the bound. Chain-scoped: SOL, ETH, BNB, BASE and RHC are served today; STABLE and ARC currently 400 — no wired screener source covers them on this deployment.

Chains

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

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/screener/SOL?minLiquidityUsd=<minLiquidityUsd>"
Parameters
ParameterDescription
minLiquidityUsd

query · number · required

REQUIRED. Only tokens with at least this much pooled USD liquidity are returned. Must be a positive number (enforced after the API-key gate; see above) — there is no unbounded or zero-bounded mode.
maxLiquidityUsd

query · number · optional

Only tokens with at most this much pooled USD liquidity.
minMarketCapUsd

query · number · optional

Only tokens with at least this much USD market cap.
maxMarketCapUsd

query · number · optional

Only tokens with at most this much USD market cap.
minVolume24hUsd

query · number · optional

Only tokens with at least this much 24h USD trading volume.
minHolders

query · number · optional

Only tokens with at least this many holders.
listedAfterUnixTime

query · number · optional

Unix seconds. Only tokens the underlying source's own "recently listed" tracking marks as listed AT OR AFTER this instant. That field is null for most of the market — this bounds a "recently listed" signal, not a general token-age filter.
listedBeforeUnixTime

query · number · optional

Unix seconds. The mirror of listedAfterUnixTime: listed AT OR BEFORE this instant.
sortBy

query · string · optional

Which field to rank by. Defaults to volume24hUsd, the source's own default ranking.liquidityUsdmarketCapUsdvolume24hUsdholdersrecentListingUnixTime
sortOrder

query · string · optional

Ranking direction. Defaults to desc.ascdesc
limit

query · integer · optional

How many rows to return, in the requested sort order. Defaults to 20 when omitted; capped at 100 — the wired source's own per-call ceiling (enforced after the API-key gate; see above).
offset

query · integer · optional

0-based row offset, for paging through a screen. offset + limit must not exceed 10000 — the wired source's own ceiling (enforced after the API-key gate; see above).
chain

path · string · required

The chain to query. SOL, ETH, BNB, BASE and RHC are served; STABLE and ARC both return 400. 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 Filter tokens by liquidity, market cap, volume, holders or recent listing
FieldTypeDescription
resultsobject[]Ranked by sortBy/sortOrder. Empty when nothing on this chain matched every bound.
results[].addressstringThe token's mint (Solana) or contract address (EVM).
results[].namestring | nullThe token's name, or null when none was reported.
results[].symbolstring | nullThe token's ticker, or null when none was reported.
results[].priceUsdnumber | nullCurrent price in USD, or null when not reported.
results[].marketCapUsdnumber | nullMarket capitalisation in USD, or null when not reported.
results[].liquidityUsdnumber | nullPooled market depth in USD, or null when not reported.
results[].volume24hUsdnumber | null24-hour trading volume in USD, or null when not reported.
results[].holdersnumber | nullHolder count, or null when not reported for this chain.
results[].recentListingUnixTimenumber | nullUnix seconds this token was marked as recently listed by the underlying source, or null — which is the common case, not a signal that the token is old.
hasMoreboolean | nullWhether more rows exist beyond this page, per the source's own pagination signal. null only if the source omitted it, which has not been observed live.

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