Discovery and markets API

Find a token by name, symbol or address

Turns a name, ticker or pasted address into candidate tokens on one chain (SOL, ETH, BNB, BASE, RHC, ARC, OP, SCROLL) with market depth, so you can spot an impersonator before trusting the top result.

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

What it returns

Turns free text — a project name, a ticker, or a pasted address — into candidate tokens on ONE chain. Returns a ranked LIST, never a single answer: many tokens share a ticker, and the order is INHERITED from the underlying index rather than being a safety judgement — a token created hours ago with almost no liquidity can rank at or near the top for a famous symbol. Compare liquidityUsd (and verified, where present) across the returned rows before treating the first one as the answer: liquidityUsd is the field that separates a real, deeply-traded token from one impersonating its ticker, which can differ by several orders of magnitude while both claim heavy 24-hour volume. An empty or whitespace-only q is rejected with a 400 before any upstream lookup; a query matching nothing returns an empty results list, never a guess. Chain-scoped: SOL, ETH, BNB, BASE, RHC, ARC, OP and SCROLL are served; every other chain returns 400 — no search source covers it on this deployment. On ARC and OP, rows carry a price and a market cap but no liquidityUsd, volume24hUsd or verified (all null): compare the addresses and market caps there. On SCROLL, rows carry only the address, name and symbol, ranked by holder count. On the other chains, when the main index fails or finds nothing, a second index answers in its own order: each row is a token whose name, symbol or address contains the query, with a price and a market cap but no liquidityUsd, volume24hUsd or verified (all null).

Chains

  • Solana SOL
  • BNB Chain BNB
  • Ethereum ETH
  • Base BASE
  • Robinhood Chain RHC
  • Arc ARC
  • Optimism OP
  • Scroll SCROLL

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/search/SOL?q=<q>"
Parameters
ParameterDescription
q

query · string · required

Free text: a token name, ticker/symbol, or a pasted address. A blank or whitespace-only value is rejected with a 400 before any upstream lookup, as is a value over 100 characters (enforced after the API-key gate; see above).
limit

query · integer · optional

How many candidates to return, in the source's own ranked order. Defaults to 10 when omitted; capped at 20 — the wired source's own per-call ceiling (enforced after the API-key gate; see above).
chain

path · string · required

The chain to query. SOL, ETH, BNB, BASE, RHC, ARC, OP and SCROLL are served; every other chain returns 400.

Response fields

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

Response fields of Find a token by name, symbol or address
FieldTypeDescription
resultsobject[]Ranked in the source's own order (its default: highest 24-hour USD volume first; the second index, when it answered, in its own order). Empty when the query matched nothing on this chain — not a guess, and not the same claim as the token not existing on another chain.
results[].addressstringThe token's mint (Solana) or contract address (EVM).
results[].namestring | nullThe token's name as reported by the underlying index, or null when none was reported.
results[].symbolstring | nullThe token's ticker as reported by the underlying index, 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 — the strongest signal for telling a real token from one impersonating its ticker. An impersonator can carry well under a dollar of liquidity while claiming heavy trading volume; a real, established token typically carries orders of magnitude more. Compare this across results rather than trusting a row's position. Null on ARC, OP and SCROLL and on rows the second index answered, where no token-wide depth figure is available.
results[].volume24hUsdnumber | null24-hour trading volume in USD, as reported by the underlying index. This is also what the default ranking is sorted by — a high value alone does not confirm legitimacy; read it beside liquidityUsd. Null on ARC, OP and SCROLL and on rows the second index answered.
results[].verifiedboolean | nullA trust flag from the underlying index. Present with a real true/false only for Solana results the main index answered; null on every other chain, or from the second index, means this deployment has no such signal for that row — never read null here as "confirmed unverified".

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