> ## 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.

# List DEXes on a blockchain network

> Get every decentralized exchange DexPaprika indexes on a chain, with 24h volume, swaps and active pools, then fetch the top pools of one DEX. Works without an API key.

`GET /networks/{network}/dexes` returns every decentralized exchange DexPaprika indexes on one chain, with its 24h volume, swap count and number of active pools. The `dex_id` of each one is what you pass to [pool search](/tutorials/pool-filtering) to get that DEX's pools. No key is needed:

```bash theme={null}
curl -s "https://api.dexpaprika.com/networks/solana/dexes" | jq '.dexes[0]'
```

```json theme={null}
{
  "chain": "solana",
  "dex_id": "manifest",
  "dex_name": "Manifest",
  "protocol": "manifest",
  "volume_usd_24h": 95109148.8246825,
  "txns_24h": 278929,
  "pools_count": 262
}
```

Take the `{network}` value from [the networks list](/tutorials/list-networks): `solana`, `ethereum`, `bsc` and so on.

***

## Which plan you need

The endpoint works on every plan, with the same data. 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. Get one in [console.dexpaprika.com](https://console.dexpaprika.com) and compare limits on [pricing](https://dexpaprika.com/api/pricing).

<CodeGroup>
  ```bash No key theme={null}
  curl -s "https://api.dexpaprika.com/networks/solana/dexes" | jq '.dexes | length'
  ```

  ```bash Dev or Pro key theme={null}
  curl -s -H "Authorization: $DEXPAPRIKA_API_KEY" \
    "https://api-pro.dexpaprika.com/networks/solana/dexes" | jq '.dexes | length'
  ```
</CodeGroup>

***

## What each DEX carries

| Field | Meaning |
| - | - |
| `dex_id` | Stable id of the DEX on this chain. Pass it as `dex_name` to pool search |
| `dex_name` | Display name, for your UI |
| `protocol` | The protocol family. Several `dex_id`s can share one, for example `raydium` and `raydium_clmm` are both `raydium` |
| `volume_usd_24h` | Trading volume on this DEX over the last 24 hours, in USD |
| `txns_24h` | Swaps on this DEX over the last 24 hours |
| `pools_count` | Pools on this DEX with recent trading activity |

***

## DEX market share and top pools in Python

This script computes each DEX's share of the chain's 24h volume, then fetches the three busiest pools on the leader. Two requests:

```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 {}
NETWORK = "solana"


def get(path, **params):
    r = requests.get(f"{API}{path}", headers=HEADERS, params=params, timeout=30)
    r.raise_for_status()
    return r.json()


dexes = get(f"/networks/{NETWORK}/dexes")["dexes"]
total = sum(d["volume_usd_24h"] for d in dexes)
dexes.sort(key=lambda d: d["volume_usd_24h"], reverse=True)

print(f"{len(dexes)} DEXes on {NETWORK}, ${total:,.0f} traded in 24h")
for d in dexes[:5]:
    print(f"  {d['dex_name']:<18}{d['volume_usd_24h'] / total:>7.1%}  {d['pools_count']:>6,} pools")

leader = dexes[0]
pools = get(f"/networks/{NETWORK}/pools/search", dex_name=leader["dex_id"], limit=3)["results"]
print(f"\nBusiest pools on {leader['dex_name']}:")
for p in pools:
    print(f"  {p['id']}  ${p['volume_usd_24h']:,.0f}")
```

```text theme={null}
9 DEXes on solana, $2,547,595,293 traded in 24h
  PumpSwap            60.0%  15,747 pools
  Meteora DAAM V2     12.9%  10,939 pools
  Orca                 8.9%   4,182 pools
  Meteora              4.8%   3,372 pools
  Pump.fun             4.3%  49,618 pools

Busiest pools on PumpSwap:
  6KCmCfW5GSf7nQ7hfk8ds2aTiZXUYLcKAsmH3ZLZW6p3  $85,447,575
  FRvYyNTGzQRQfsbDZntcqQwHJpmHZKtMh7N85uDG1i4H  $84,997,947
  D3vzKTEJntE3wSu4QaPd79e2bnifnHggVDVewu1ukkAJ  $84,636,334
```

Output from 12 October 2026. Pool search returns pools by 24h volume, highest first, unless you set `order_by`.

***

## Things to know

**One call returns the whole list.** The endpoint accepts `page` and `limit`, but every DEX on the chain comes back in the first response, so there is nothing to page through. `page=2` returns the same list again, so a loop over pages counts every DEX twice.

**Sort it yourself.** The list is ordered by `dex_id`, not by volume.

**Pass the `dex_id`, not the display name, to pool search.** `dex_name=raydium_clmm` works. The display name, `dex_name=Raydium CLMM`, returns an empty `results` array with no error, so an empty answer is worth a second look before you conclude the DEX has no pools.

**Shares are relative to what is indexed.** The total in the script is the sum of the DEXes DexPaprika indexes on that chain. A DEX that is not indexed is not in the denominator.

***

## Where to go next

* [Filter pools](/tutorials/pool-filtering): every filter pool search takes, `dex_name` included
* [List networks](/tutorials/list-networks): the `{network}` values
* [DEXes reference](/api-reference/dexes/get-a-list-of-available-dexes-on-a-network)
* [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.