Pools API

Pool trade stats by trailing window

Buyer and seller wallet counts split apart, plus transactions, volume and liquidity, for ONE pool over eight trailing windows from 5m to 30d.

GET/api/external/pool-analysis/pool-stats/{chain}/{pool}

What it returns

Volume, liquidity, transaction counts and unique buyer/seller wallet counts for one liquidity pool, bucketed over eight trailing windows ending now: 5m, 15m, 1h, 4h, 12h, 1d, 7d, 30d. The pool-keyed sibling of stats-windows — same kind of question, one call, this source's own duration set rather than a different source's. uniqueBuyers, uniqueSellers and uniqueWallets read null on a known source placeholder that has been observed on the longest window(s) for a given pool — never a real zero when it fires; every other field on that same window is a real reading. liquidityUsd describes this one pool at this window and may not match pool-detail's own liquidityUsd for the same pool. On SOL only 5m, 1h, 4h, 1d are published — 15m, 12h, 7d, 30d are null in every field, never 0 — and uniqueWallets is null on every window (distinct wallets across both sides are not counted there; it is never uniqueBuyers + uniqueSellers). An address with no pool answers 200 with every field null.

Chains

  • Solana SOL
  • BNB Chain BNB
  • Ethereum ETH
  • Stable STABLE
  • Base BASE
  • Robinhood Chain RHC

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/pool-analysis/pool-stats/SOL/<pool>"
Parameters
ParameterDescription
chain

path · string · required

The chain the pool lives on. SOL, ETH, BNB, BASE, STABLE and RHC are served; ARC returns 400. CELO, ARB, OP and SCROLL return 400 here.
pool

path · string · required

The pool identifier — a pool/pair address on most venues, or a 32-byte pool ID where the venue uses one (Uniswap v4). It identifies the POOL, not a token traded in it.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Pool trade stats by trailing window
FieldTypeDescription
5mobject
5m.volumeUsdnumber | nullUSD traded in this pool during the window.
5m.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
5m.buysinteger | nullBuy-side transaction count in this window.
5m.sellsinteger | nullSell-side transaction count in this window.
5m.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
5m.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
5m.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
15mobject
15m.volumeUsdnumber | nullUSD traded in this pool during the window.
15m.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
15m.buysinteger | nullBuy-side transaction count in this window.
15m.sellsinteger | nullSell-side transaction count in this window.
15m.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
15m.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
15m.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
1hobject
1h.volumeUsdnumber | nullUSD traded in this pool during the window.
1h.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
1h.buysinteger | nullBuy-side transaction count in this window.
1h.sellsinteger | nullSell-side transaction count in this window.
1h.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
1h.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
1h.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
4hobject
4h.volumeUsdnumber | nullUSD traded in this pool during the window.
4h.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
4h.buysinteger | nullBuy-side transaction count in this window.
4h.sellsinteger | nullSell-side transaction count in this window.
4h.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
4h.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
4h.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
12hobject
12h.volumeUsdnumber | nullUSD traded in this pool during the window.
12h.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
12h.buysinteger | nullBuy-side transaction count in this window.
12h.sellsinteger | nullSell-side transaction count in this window.
12h.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
12h.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
12h.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
1dobject
1d.volumeUsdnumber | nullUSD traded in this pool during the window.
1d.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
1d.buysinteger | nullBuy-side transaction count in this window.
1d.sellsinteger | nullSell-side transaction count in this window.
1d.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
1d.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
1d.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
7dobject
7d.volumeUsdnumber | nullUSD traded in this pool during the window.
7d.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
7d.buysinteger | nullBuy-side transaction count in this window.
7d.sellsinteger | nullSell-side transaction count in this window.
7d.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
7d.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
7d.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.
30dobject
30d.volumeUsdnumber | nullUSD traded in this pool during the window.
30d.liquidityUsdnumber | nullThis pool's USD liquidity reading for the window. May not match pool-detail's own liquidityUsd for the same pool — the two come from different upstream questions.
30d.buysinteger | nullBuy-side transaction count in this window.
30d.sellsinteger | nullSell-side transaction count in this window.
30d.uniqueBuyersinteger | nullDistinct wallets that bought in this window. null on a known source placeholder (observed on the longest windows) — never a real zero when it fires.
30d.uniqueSellersinteger | nullDistinct wallets that sold in this window. Same placeholder caveat as uniqueBuyers.
30d.uniqueWalletsinteger | nullDistinct wallets that did EITHER — not the sum of uniqueBuyers and uniqueSellers (a wallet doing both counts once here). Same placeholder caveat.

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key