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.
/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>"
| Parameter | Description |
|---|---|
qquery · 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). |
limitquery · 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). |
chainpath · 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.
| Field | Type | Description |
|---|---|---|
results | object[] | 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[].address | string | The token's mint (Solana) or contract address (EVM). |
results[].name | string | null | The token's name as reported by the underlying index, or null when none was reported. |
results[].symbol | string | null | The token's ticker as reported by the underlying index, or null when none was reported. |
results[].priceUsd | number | null | Current price in USD, or null when not reported. |
results[].marketCapUsd | number | null | Market capitalisation in USD, or null when not reported. |
results[].liquidityUsd | number | null | Pooled 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[].volume24hUsd | number | null | 24-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[].verified | boolean | null | A 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