Skip to main content

What you’ll build

A pool screener that finds liquidity pools matching specific criteria — volume thresholds, transaction counts, and creation dates. This is useful for:
  • Finding high-activity pools on any network
  • Discovering newly created pools (early token launches)
  • Building automated pool monitoring pipelines
  • Filtering noise from low-activity pools

The filter endpoint

GET /networks/{network}/pools/filter
This endpoint lets you combine multiple filters with AND logic. The response includes paginated results with total counts.

Available parameters

ParameterTypeDescription
volume_24h_minnumberMinimum 24h volume in USD
volume_24h_maxnumberMaximum 24h volume in USD
txns_24h_minintegerMinimum transactions in last 24h
created_afterintegerUNIX timestamp — pools created after this date
created_beforeintegerUNIX timestamp — pools created before this date
sort_bystringvolume_24h (default), txns_24h, created_at
sort_dirstringasc or desc (default: desc)
pageintegerPage number, 1-indexed (default: 1)
limitintegerItems per page, 1–100 (default: 50)
The parameters volume_7d_min, volume_30d_min, liquidity_usd_min, and liquidity_usd_max exist in the API spec but are not functional yet. Using them returns empty results.

Example 1: High-volume pools on Ethereum

Find Ethereum pools with over $500,000 in daily volume:
curl "https://api.dexpaprika.com/networks/ethereum/pools/filter?volume_24h_min=500000&sort_by=volume_24h&sort_dir=desc&limit=5"

Response format

{
  "results": [
    {
      "chain": "ethereum",
      "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042",
      "dex_id": "makerdao",
      "volume_usd_24h": 1657645861.93,
      "liquidity_usd": 0,
      "txns_24h": 4383,
      "created_at": "2024-07-11T13:48:47Z"
    }
  ],
  "page_info": {
    "limit": 5,
    "page": 1,
    "total_items": 720,
    "total_pages": 144
  }
}
The filter endpoint uses different field names than the pool listing endpoint (/networks/{network}/pools). Key differences: address instead of id, volume_usd_24h instead of volume_usd, txns_24h instead of transactions, and results are in a results array instead of pools.

Example 2: Recently created pools with activity

Find pools created in the last 7 days that have at least 50 transactions:
# Calculate UNIX timestamp for 7 days ago
SEVEN_DAYS_AGO=$(python3 -c "import time; print(int(time.time()) - 7*86400)")

curl "https://api.dexpaprika.com/networks/base/pools/filter?created_after=$SEVEN_DAYS_AGO&txns_24h_min=50&sort_by=created_at&sort_dir=desc&limit=10"

Example 3: Paginating through all results

When the filter returns many results, paginate through them:
import requests

all_pools = []
page = 1

while True:
    response = requests.get("https://api.dexpaprika.com/networks/solana/pools/filter", params={
        "volume_24h_min": 10000,
        "txns_24h_min": 20,
        "sort_by": "volume_24h",
        "sort_dir": "desc",
        "page": page,
        "limit": 100
    })

    data = response.json()
    all_pools.extend(data["results"])

    total_pages = data["page_info"]["total_pages"]
    print(f"Page {page}/{total_pages} -- collected {len(all_pools)} pools so far")

    if page >= total_pages:
        break
    page += 1

print(f"Total pools matching criteria: {len(all_pools)}")

Example 4: Combining with pool details

The filter returns summary data. To get full pool details (token pair info, reserves, fees), make a follow-up request:
import requests

# Step 1: Find interesting pools
response = requests.get("https://api.dexpaprika.com/networks/ethereum/pools/filter", params={
    "volume_24h_min": 100000,
    "txns_24h_min": 500,
    "limit": 5
})

pools = response.json()["results"]

# Step 2: Get full details for each pool
for pool in pools:
    details = requests.get(
        f"https://api.dexpaprika.com/networks/{pool['chain']}/pools/{pool['address']}"
    ).json()

    tokens = details.get("tokens", [])
    pair = "/".join(t["symbol"] for t in tokens) if tokens else "Unknown"
    print(f"{pair} on {pool['dex_id']} -- Vol: ${pool['volume_usd_24h']:,.0f}")

Tips

  • Start broad, then narrow: Begin with just volume_24h_min to see how many pools match, then add more filters
  • Use created_after for new token discovery: Combine with txns_24h_min to find new pools that actually have trading activity
  • Different networks, different thresholds: A $10k volume pool on Ethereum is tiny; on a smaller chain it might be significant. Adjust thresholds per network
  • Check total_items in page_info: This tells you how many pools match your criteria before you paginate

Next steps

Find New Pools

More techniques for discovering new pools using the standard pool listing endpoint

Pool Details

Get full details for any pool including token pairs and reserves

Common Patterns

Standard API workflows including filtering, pricing, and historical data

API Reference

Full filter endpoint documentation with all parameters

FAQs

The parameters volume_7d_min, volume_30d_min, liquidity_usd_min, and liquidity_usd_max are not yet functional. Stick to volume_24h_min, volume_24h_max, txns_24h_min, created_after, and created_before.
No. The filter endpoint works per network. Make separate requests for each network you want to check.
The filter can return up to total_items results (shown in page_info), but you must paginate through them 100 at a time.