> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dexpaprika.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search tokens, pools and DEXes by name

> Find a token's contract address, its pools and matching DEXes from a name, symbol or address with one DexPaprika search call, and pick the right token among look-alikes. Works without an API key.

`GET /search?query=...` looks a term up across every chain and returns three lists: `tokens`, `pools` and `dexes`. It is how you get from a name or symbol to the contract address every other endpoint needs. No key is needed:

```bash theme={null}
curl -s "https://api.dexpaprika.com/search?query=uniswap" \
  | jq '{tokens: [.tokens[:2][] | {chain, symbol, id, liquidity_usd}], pools: (.pools | length), dexes: (.dexes | length)}'
```

```json theme={null}
{
  "tokens": [
    {
      "chain": "ethereum",
      "symbol": "UNI",
      "id": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984",
      "liquidity_usd": 31344284.455901023
    },
    {
      "chain": "bsc",
      "symbol": "UNI",
      "id": "0xbf5140a22578168fd562dccf235e5d43a02ce9b1",
      "liquidity_usd": 1657969.1284209501
    }
  ],
  "pools": 20,
  "dexes": 34
}
```

The term can be a token name, a symbol or a contract address. A full address returns that one token and the pools it trades in.

***

## Which plan you need

Search works on every plan. A key changes the limits and the host.

| Caller | Host | Header |
| - | - | - |
| No key | `api.dexpaprika.com` | none |
| Free key | `api.dexpaprika.com` | `Authorization: <your key>` |
| Dev, Pro, Enterprise | `api-pro.dexpaprika.com` | `Authorization: <your key>` |

The key goes in `Authorization` on its own. Search-as-you-type sends a request per keystroke, which reaches the keyless per-minute limit fast; debounce it, and see [pricing](https://dexpaprika.com/api/pricing) and [console.dexpaprika.com](https://console.dexpaprika.com) for higher limits.

<CodeGroup>
  ```bash No key theme={null}
  curl -s "https://api.dexpaprika.com/search?query=0x6982508145454ce325ddbe47a25d4ec3d2311933" \
    | jq '.tokens[] | {chain, symbol, name}'
  ```

  ```bash Dev or Pro key theme={null}
  curl -s -H "Authorization: $DEXPAPRIKA_API_KEY" \
    "https://api-pro.dexpaprika.com/search?query=0x6982508145454ce325ddbe47a25d4ec3d2311933" \
    | jq '.tokens[] | {chain, symbol, name}'
  ```
</CodeGroup>

***

## What comes back

| List | Each item carries |
| - | - |
| `tokens`, up to 10 | `id` (the contract address), `chain`, `name`, `symbol`, `decimals`, `price_usd`, `liquidity_usd`, `volume_usd` and `price_usd_change` over 24 hours, plus `website` and `description` |
| `pools`, up to 20 | `id` (the pool address), `chain`, `dex_name`, both `tokens`, `price_usd`, `volume_usd`, `transactions` and price change over 5m, 1h and 24h |
| `dexes` | `id` (the factory address), `dex_id`, `dex_name`, `chain`, `protocol`, `volume_usd_24h`, `txns_24h`, `pools_count` |

Any list can be empty. A token symbol usually fills `tokens` and `pools` and leaves `dexes` empty; a DEX name such as `uniswap` fills all three.

***

## Find the right token in Python

A popular symbol is shared by many tokens: copies, bridged versions, meme tokens with the same ticker. This script keeps exact symbol matches and ranks them by liquidity, a reasonable first filter. One request:

```python theme={null}
import os
import requests

# No key: leave both variables unset. Free key: set DEXPAPRIKA_API_KEY.
# Dev or Pro key: also set DEXPAPRIKA_API=https://api-pro.dexpaprika.com
API = os.environ.get("DEXPAPRIKA_API", "https://api.dexpaprika.com")
KEY = os.environ.get("DEXPAPRIKA_API_KEY")
HEADERS = {"Authorization": KEY} if KEY else {}


def find_token(symbol):
    r = requests.get(f"{API}/search", headers=HEADERS, params={"query": symbol}, timeout=30)
    r.raise_for_status()
    exact = [t for t in r.json()["tokens"] if t["symbol"].upper() == symbol.upper()]
    return sorted(exact, key=lambda t: t["liquidity_usd"] or 0, reverse=True)


print(f"{'chain':<10}{'address':<46}{'liquidity (USD)':>16}")
for t in find_token("PEPE")[:4]:
    print(f"{t['chain']:<10}{t['id']:<46}{t['liquidity_usd'] or 0:>16,.0f}")
```

```text theme={null}
chain     address                                        liquidity (USD)
ethereum  0x6982508145454ce325ddbe47a25d4ec3d2311933          17,762,839
bsc       0x25d887ce7a35172c62febfd67a1856f20faebb00             252,090
solana    PEPEqnuuCDbBC89p1u9vpnP1KQ2oj1xTcQBsjt9X55m            120,986
solana    3Dqb9PytTmkjvf9AGus1m2brGoc2VcVxBULTcHRaMPPn            22,454
```

Output from 12 October 2026: four tokens called PEPE on three chains.

Pass the `chain` and `id` you picked to [token price](/tutorials/fetch-token-price), [token pools](/tutorials/token-pools) or [token OHLCV](/tutorials/token-ohlcv).

***

## Things to know

**One word per query.** A term with a space in it, such as `usd coin`, answers `400` with `invalid_param` on `query`. Search for `usdc` or for one word of the name.

**A symbol is not an identity.** Anyone can deploy a token called PEPE. Liquidity and volume are a good first filter, and the contract address is the only thing that identifies a token for sure. When you already have the address, search by it.

**In `pools`, `dex_id` is the factory address.** Search returns a pool's `dex_id` as the address of the DEX factory contract, the same value as `id` in `dexes`. Everywhere else, including pool details and pool search, `dex_id` is the readable id such as `uniswap_v3`. Use `dex_name` for display, or fetch the pool's details for the readable id.

**Order is not a ranking you should rely on.** Sort the lists yourself by the field that matters to you, as the script does.

***

## Where to go next

* [Screen tokens](/tutorials/token-screener): filter tokens by volume, liquidity and more instead of by name
* [Pool details](/tutorials/pool-details): everything about one pool from the `pools` list
* [Search reference](/api-reference/search/search-for-tokens-pools-and-dexes)
* [Pricing](https://dexpaprika.com/api/pricing), [console.dexpaprika.com](https://console.dexpaprika.com) and [docs home](https://docs.dexpaprika.com)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.