Skip to main content

Overview

This page covers the most common sequences of API calls for typical tasks. Each pattern shows the exact endpoints, parameters, and response fields you need. Base URL: https://api.dexpaprika.com

Pattern 1: Get a token’s price

When you know the network and token address:
curl "https://api.dexpaprika.com/networks/solana/tokens/So11111111111111111111111111111111111111112"
The price is at response.summary.price_usd. When you only know the token name or symbol:
  1. Search first:
curl "https://api.dexpaprika.com/search?query=jupiter"
  1. From the tokens array in the response, find the matching token. Note the chain and id (address) fields.
  2. Call the token endpoint:
curl "https://api.dexpaprika.com/networks/{chain}/tokens/{id}"

Pattern 2: Compare prices of multiple tokens

Use batch pricing when you need prices for 2–10 tokens on the same network:
curl "https://api.dexpaprika.com/networks/ethereum/multi/prices?tokens=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2,0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
Response is an array of {id, chain, price_usd} objects. Order is not guaranteed. Tokens without pricing data are silently omitted (not an error). Limits: Max 10 tokens per request. More than 10 returns HTTP 400. Zero tokens also returns HTTP 400. For tokens across different networks, make separate requests per network.

Pattern 3: Find top pools on a network

curl "https://api.dexpaprika.com/networks/ethereum/pools?limit=10&order_by=volume_usd&sort=desc&page=1"
Sorting options for order_by: volume_usd, price_usd, transactions, last_price_change_usd_24h, created_at Pagination: Pages are 1-indexed. Max 100 items per page. The response wraps pools in a pools array with a page_info object.

Pattern 4: Find pools for a specific token

curl "https://api.dexpaprika.com/networks/solana/tokens/So11111111111111111111111111111111111111112/pools?order_by=volume_usd&sort=desc&limit=5"
This returns all pools containing that token, sorted by volume. The highest-volume pool is typically the best source for price data and OHLCV history. Optional: Add reorder=true to make the queried token the primary token in all metrics. Add address=<second_token> to filter to pools paired with a specific second token.

Pattern 5: Get historical price data (OHLCV)

OHLCV data is per pool, not per token. The workflow is:
  1. Find the best pool — the highest-volume pool for the token:
curl "https://api.dexpaprika.com/networks/ethereum/tokens/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/pools?order_by=volume_usd&sort=desc&limit=1"
  1. Get OHLCV data for that pool:
curl "https://api.dexpaprika.com/networks/ethereum/pools/{pool_address}/ohlcv?start=2025-06-01&interval=24h&limit=30"
Intervals: 1m, 5m, 10m, 15m, 30m, 1h, 6h, 12h, 24h start is required — ISO 8601 date or UNIX timestamp. Optional end parameter (max 1 year from start). Max 366 data points per request. Response is a JSON array of candlestick objects with time_open, time_close, open, high, low, close, volume. Use inversed=true to flip the pair (e.g., get ETH/USDC instead of USDC/ETH).

Pattern 6: Filter pools by criteria

Use the filter endpoint to find pools matching specific conditions:
# High-volume Ethereum pools
curl "https://api.dexpaprika.com/networks/ethereum/pools/filter?volume_24h_min=100000&sort_by=volume_24h&sort_dir=desc"

# New Solana pools with activity (created after a specific date)
curl "https://api.dexpaprika.com/networks/solana/pools/filter?created_after=1709251200&txns_24h_min=50&sort_by=created_at&sort_dir=desc"
Available filter 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 — only pools created after this
created_beforeintegerUNIX timestamp — only pools created before this
sort_bystringvolume_24h (default), txns_24h, created_at
sort_dirstringasc or desc (default: desc)
pageinteger1-indexed (default: 1)
limitinteger1–100 (default: 50)
All filters combine with AND logic. Response uses results array (not pools) and includes page_info with total_items and total_pages.
The parameters volume_7d_min, volume_30d_min, liquidity_usd_min, and liquidity_usd_max exist in the spec but are not functional yet — they return empty results.

Pattern 7: Monitor pool transactions

curl "https://api.dexpaprika.com/networks/ethereum/pools/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640/transactions?limit=20&page=1"
Transactions are returned in reverse chronological order. Each includes:
  • amount_0, amount_1 — token amounts
  • volume_0, volume_1 — volumes
  • price_0_usd, price_1_usd — USD prices for each token
  • token_0_symbol, token_1_symbol — token symbols
  • typeswap, add, or remove
  • created_at — timestamp
Pagination: Max 100 pages. For deep history, use cursor parameter (a transaction ID) instead of page numbers.

Pattern 8: Discover DEXes on a network

# List all DEXes on a network
curl "https://api.dexpaprika.com/networks/solana/dexes"

# Get pools for a specific DEX
curl "https://api.dexpaprika.com/networks/solana/dexes/raydium/pools?order_by=volume_usd&sort=desc&limit=10"

Pattern 9: Stream live prices

For real-time updates, use the streaming API instead of polling REST. Single token (GET):
curl -N "https://streaming.dexpaprika.com/stream?method=t_p&chain=ethereum&address=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
Multiple tokens (POST) — up to 2,000:
curl -N -X POST "https://streaming.dexpaprika.com/stream" \
  -H "Accept: text/event-stream" \
  -H "Content-Type: application/json" \
  -d '[
    {"chain": "solana", "address": "So11111111111111111111111111111111111111112", "method": "t_p"},
    {"chain": "ethereum", "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "method": "t_p"}
  ]'
Each SSE event:
data: {"a":"0xc02a...","c":"ethereum","p":"1952.07","t":1769778188,"t_p":1769778187}
event: t_p
The p field is a string (not a number) — parse it as a decimal for precision.

Pattern 10: REST + Streaming combined

The most common production pattern:
  1. REST for discovery — use search, token details, and pool listing to find what you want to track
  2. Validate — confirm the tokens exist and have pricing data via REST
  3. Stream for live updates — open an SSE connection for real-time prices
  4. REST for enrichment — periodically call REST for OHLCV history, pool details, or transaction data that streaming doesn’t cover

Quick reference: which endpoint for what?

I want to…Endpoint
Get a token’s current priceGET /networks/{network}/tokens/{address}.summary.price_usd
Get multiple token prices at onceGET /networks/{network}/multi/prices?tokens=a,b,c
Find a token I don’t have the address forGET /search?query={name_or_symbol}
See top pools by volumeGET /networks/{network}/pools?order_by=volume_usd&sort=desc
Find pools for a specific tokenGET /networks/{network}/tokens/{address}/pools
Filter pools by volume/txns/ageGET /networks/{network}/pools/filter?volume_24h_min=X
Get historical candlestick dataGET /networks/{network}/pools/{pool}/ohlcv?start=X&interval=24h
See recent swaps on a poolGET /networks/{network}/pools/{pool}/transactions
List DEXes on a networkGET /networks/{network}/dexes
Get pools on a specific DEXGET /networks/{network}/dexes/{dex}/pools
Stream live pricesGET https://streaming.dexpaprika.com/stream?method=t_p&chain=X&address=Y
Get API statsGET /stats

FAQs

If all requested tokens are unknown or don’t have pricing data, you get HTTP 200 with an empty array — not an error. Verify the token addresses are correct.
The filter endpoint (/pools/filter) uses address (not id), volume_usd_24h (not volume_usd), and txns_24h (not transactions). The response uses a results array (not pools). These are different schemas optimized for different use cases.
Use the highest-volume pool — it has the most representative pricing. Find it by calling the token pools endpoint sorted by volume_usd descending with limit=1.