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

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.