Pools API
Price candles for one pool
Open/high/low/close and volume per bucket for ONE liquidity pool, addressed by the pool itself — not summed or averaged across the token's other pools.
/api/external/pool-analysis/pool-ohlcv/{chain}/{pool}What it returns
Price candles for one liquidity pool, addressed by the POOL rather than by a token in it — the pool-keyed sibling of ohlcv. Every figure describes THIS pool alone: there is no volumeScope field, because unlike the token-keyed sibling there is no second pool the number could ambiguously be covering. There is also no volumeToken field — the native-unit volume this source reports is denominated in the pool's QUOTE token, not a fact about the pool's own trading a caller can compare across pools, so the field is left OFF the response rather than published as a permanent null. A window that has not happened yet is refused with 400 rather than answered with fabricated candles, and a bucket in which the pool did not trade can be missing from the series rather than filled with a made-up one. On SOL, a pool neither of the first two sources has candles for is answered for 1m, 5m, 15m and 1h by a third whose volumeUsd is null.
Chains
- Solana SOL
- BNB Chain BNB
- Ethereum ETH
- Stable STABLE
- Base BASE
- Robinhood Chain RHC
- Arc ARC
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-ohlcv/SOL/<pool>?interval=1m&from=<from>&to=<to>"
| Parameter | Description |
|---|---|
intervalquery · string · required | Candle width. The same set the token-keyed ohlcv offers — the intersection of what the wired sources understand.1m5m15m1h4h1d |
fromquery · integer · required | Window start, Unix SECONDS. A candle is returned when its OPEN is at or after this time. Align from to a bucket open (a multiple of the interval in seconds, UTC) to get the bucket you are standing in. |
toquery · integer · required | Window end, Unix SECONDS. Inclusive. At most 1000 candles fit in one request — a wider window returns 400 rather than a silently truncated series. A window of ≤ 200 candles keeps the answer under 32 KB. |
chainpath · string · required | The chain the pool lives on. CELO, ARB, OP and SCROLL return 400 here. |
poolpath · 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.
| Field | Type |
|---|---|
interval | string |
candles | object[] |
candles[].at | number |
candles[].open | number | null |
candles[].high | number | null |
candles[].low | number | null |
candles[].close | number | null |
candles[].volumeUsd | number | null |
candles[].complete | boolean |
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