Skip to main content

How DexPaprika works

DexPaprika indexes on-chain activity from 36 blockchain networks in near real-time. It watches smart contract events on decentralized exchanges (DEXes), extracts swap transactions, liquidity changes, and price data, and serves it through a REST API and SSE streaming API.
No API key needed to start. Just make HTTP requests, and register a free key when you want the higher allowance.

Networks

A network (also called a chain or blockchain) is the underlying blockchain where DEXes operate. Each network has its own token addresses and pool addresses. DexPaprika currently supports 36+ networks including Ethereum, Solana, Base, Arbitrum, Polygon, BSC, Optimism, Avalanche, Fantom, Sui, Aptos, TON, Tron, and more. Every API call that involves a specific token or pool requires a network parameter, the lowercase identifier like ethereum, solana, bsc, base.
The response is a JSON array of objects with id and display_name.

DEXes (Decentralized Exchanges)

A DEX is a decentralized exchange protocol, a set of smart contracts that allows users to swap tokens without an intermediary. Examples: Uniswap, Raydium, PancakeSwap, Curve. Each DEX operates on one or more networks. For instance, Uniswap V3 runs on Ethereum, Arbitrum, Base, Polygon, and others. In DexPaprika, DEXes are identified by a dex_id string like uniswap_v3, raydium, pancakeswap_v3.

Liquidity pools

A liquidity pool is a smart contract that holds reserves of two (or more) tokens. Users swap one token for the other, and the pool’s reserves shift accordingly. That shift is how prices are determined on a DEX. Each pool has:
  • Pool address: the smart contract address on-chain
  • Token pair: the two tokens in the pool (e.g., USDC/WETH)
  • Liquidity: the total USD value of tokens held in the pool
  • Volume: how much has been traded through the pool in a time period
  • Transactions: how many swap/add/remove events happened
  • Price: the current exchange rate between the two tokens
Pools are the central data object in DexPaprika. Most queries revolve around finding pools, inspecting them, and tracking their activity.

Tokens

A token is a digital asset on a blockchain, identified by its contract address. The same token concept (like “USDC”) can exist on multiple networks with different addresses. DexPaprika tracks token data by aggregating activity across all pools that contain that token. The token endpoint returns:
  • Price in USD: aggregated from pool data
  • Fully diluted valuation (FDV)
  • Liquidity: total across all pools
  • Volume and transactions: across multiple time windows (24h, 6h, 1h, 30m, 15m, 5m, 1m)
  • Buy/sell counts and USD values
  • Price stats: 24h high/low and all-time high
The price is at response.summary.price_usd.

OHLCV data

OHLCV stands for Open, High, Low, Close, Volume. That is the standard candlestick format used in financial charts. DexPaprika provides OHLCV data per pool (not per token). To get historical price data for a token, first find its highest-volume pool, then request OHLCV data for that pool. Available intervals: 1m, 5m, 10m, 15m, 30m, 1h, 6h, 12h, 24h Limits: up to 366 data points per request, max 1 year range.

Transactions

Transactions are individual on-chain events on a pool: swaps, liquidity additions, and removals. Each transaction includes token amounts, USD values, prices, and timestamps. Transactions are returned in reverse chronological order and are available for any pool.

The search endpoint lets you find tokens, pools, and DEXes by name, symbol, or address across all networks. Use this when you don’t know the exact network or address for something.
The response includes tokens, pools, and dexes arrays with matching results.

Pool filtering

The pool search endpoint lets you search for pools matching specific criteria: volume range, liquidity, transaction count, and creation date. This is useful for building pool screeners or finding recently created pools with significant activity.

Streaming (real-time prices)

The streaming API delivers real-time price updates via Server-Sent Events (SSE). Instead of polling the REST API repeatedly, you open one connection and receive a price update whenever a swap moves the price. The rate tracks trading activity, from about 1 update a minute on a quiet asset to about 52 on a busy one. Base URL: https://streaming.dexpaprika.com
Each token_price SSE event contains: address, chain, price (string, USD), and unix timestamps (timestamp, timestamp_price). The legacy t_p method emits the compact {a, c, p, t, t_p} shape and is deprecated.

Key things to know

  • No authentication needed to start: keyless requests work, and a free key raises the allowance
  • Credit allowance: 50,000 credits a month keyless (300,000 with a free API key), at 15 requests a minute keyless and 30 with a key; one request costs one credit, batch endpoints one credit per item
  • Pagination: the search endpoints are cursor-based (read has_next_page, pass next_cursor back as cursor). Only GET /networks/{network}/dexes and GET /networks/{network}/pools/{pool_address}/transactions still take page, and those are 1-indexed (page=0 is silently treated as page 1)
  • Max page size: 100 items per page across all endpoints
  • Addresses are case-sensitive: use the exact on-chain format
  • Prices are numbers in REST responses but strings in streaming SSE events (for decimal precision)
  • OHLCV is per pool, not per token: find the highest-volume pool first, then request candles

FAQs

DexPaprika covers on-chain DEX data (pools, swaps, on-chain token prices). CoinPaprika covers centralized exchange data (market cap rankings, exchange listings, global metrics). They’re separate APIs from the same company.
The indexer processes new blocks as they arrive, typically within seconds of on-chain confirmation. What you see depends on your plan: the free tier is served with a delay of up to 15 seconds, Pro is real time.
No. DexPaprika is read-only. It provides market data but does not execute trades.