Token OHLCV API: one candle series per token across DEX pools
Uniswap (UNI) closed at six different prices in one hour on 29 September 2026, one per pool. Here is why pool candles disagree, and how token OHLCV turns them into one VWAP series.

A token that trades in six pools has six price charts. According to DexPaprika data, in the hour from 07:00 to 08:00 UTC on 29 September 2026, Uniswap (UNI) closed at prices between $8.9404 and $9.0297 across its six busiest Ethereum pools, a spread of about 1%. If your app draws a chart from one of those pools, it shows that pool's view of UNI, not the token's.
This piece covers the OHLCV data you can already pull per pool, why one pool is a partial view, and the new token OHLCV endpoint that returns one candle series per token, built as a volume-weighted average across the pools the token trades in.
Why a token has more than one price chart
A decentralized exchange prices a token pair by pair. UNI against WETH is one pool, UNI against USDT another, UNI against native ETH on Uniswap V4 a third. Each pool sets its own price from its own reserves and its own trades, and arbitrage pulls them together, but only after the fact and not perfectly. So inside any hour the pools disagree a little: this is what the six largest UNI pools on Ethereum showed for the same candle.
Hourly pool candles from the DexPaprika API, 29 September 2026. Share is each pool's volume divided by the six pools' combined volume for that hour.
Two things stand out. The deepest pool, UNI/WETH on Uniswap V3, carried less than a third of the trading in that hour, so a chart built from it alone leaves out most of what happened. And the outlier was a UNI/AAVE pool, whose price in dollars also moves with AAVE. A per-pool chart is exact about its pool, and that is the problem when the question is about the token.
Pool candles, no key needed
Per-pool OHLCV works on the free tier today. This pulls the last 24 hourly candles of the UNI/USDT pool from the table, and it runs without a key or a signup:
curl "https://api.dexpaprika.com/networks/ethereum/pools/0x3470447f3cecffac709d3e783a307790b0208d60/ohlcv?start=-24h&interval=1h&limit=24"Each candle comes back as time_open, time_close, open, high, low, close and volume. Keyless calls get hourly and longer candles over a short recent window. A free key from console.dexpaprika.com opens finer intervals and more history, and paid plans go further; the OHLCV limits by plan table has the current windows. To find a token's pools in the first place, search by token address:
curl "https://api.dexpaprika.com/networks/ethereum/pools/search?token_address=0x1f9840a85d5af5bf1d1762f925bdaddc4201f984&limit=10"From there you could fetch every pool's candles and weight them yourself. It works, but it is one request per pool per window, you have to decide which pools count, and pools in a token pair need their price flipped with inversed=true when the token sits second in the pair.
Token OHLCV: one candle series per token
The token OHLCV endpoint does that weighting on our side. You pass a chain and a token address, and each candle is built from a volume-weighted average price (VWAP) across the token's pools: the first price in the interval as open, the highest as high, the lowest as low, the last as close, and the volume summed.
GET /networks/{network}/tokens/{token_address}/ohlcvThe response has the same shape as pool OHLCV, so a chart component that already reads pool candles reads token candles unchanged. The call for UNI's last 24 hourly candles:
curl "https://api-pro.dexpaprika.com/networks/ethereum/tokens/0x1f9840a85d5af5bf1d1762f925bdaddc4201f984/ohlcv?start=-24h&interval=1h&limit=24" \
-H "Authorization: YOUR_API_KEY"The key goes in the Authorization header on its own, with nothing in front of it. The endpoint accepts any of the 36 chains the API indexes.
What the token series looked like against its pools
I ran the token endpoint with a Pro key next to the ten largest pools of three tokens, 24 hourly candles each, from 09:00 UTC on 28 September to 09:00 UTC on 29 September 2026. For the UNI hour in the first table, the token candle closed at $8.9462: inside the six pools' range, less than a tenth of a cent from the deepest pool, and not pulled up by the UNI/AAVE outlier.
DexPaprika token and pool OHLCV, 1h candles, 28 to 29 September 2026. Gap is the absolute difference between a pool's close and the token's close in the same hour.
Three things came out of it. The token close never left the range its pools traded in. Single pools strayed from it by up to 2.2% in an hour, and in almost every hour at least one pool printed a wider candle than the token series, which is the wick a one-pool chart would have shown. And the most liquid pool is not always the best proxy: for UNI it tracked the token within 0.06% on average, but for JUP the deepest pool, on Meteora, averaged a wider gap to the token price (0.23%) than its ten pools did as a group (0.16%).
There is also the plumbing. Rebuilding the same series yourself took eleven calls per token here, one pool search and ten pool candle requests, plus the inversion logic. The token endpoint is one call.
Where the free tier ends
Token OHLCV is a paid endpoint, available on the Dev, Pro and Enterprise plans. Keyless calls and free keys get a 403 with a message that says so:
{"message":"this endpoint requires a Dev or Pro plan"}Paid plans call api-pro.dexpaprika.com with their key. Dev, the entry paid plan, covers a recent history window; Pro has no plan limit on it. The pricing page has the current plans and prices. Everything in the pool section above stays on the free tier, so you can build and test the chart on pool candles first and switch the data source when you need the token view.
How other token OHLCV APIs do it
A token-level OHLCV endpoint exists elsewhere too. CoinGecko's on-chain API has one at /onchain/networks/{network}/tokens/{token_address}/ohlcv/{timeframe}, and its documentation says it "returns OHLCV data from the most liquid pool of the token", with a separate endpoint to check which pool that is, and a maximum six-month range per call. That is a clean, predictable choice: one pool, clearly named, and for a token like UNI, whose deepest pool tracked the token within 0.06%, it works well. The trade-off shows up where liquidity is spread out: the deepest UNI pool carried under a third of one hour's volume, and JUP's deepest pool drifted further from the token price than its pools did on average. DexPaprika's endpoint takes the other route and weights the token's pools by volume, so the candle reflects where the trading happened.
Common questions
What is OHLCV data?
Open, high, low, close and volume for a fixed interval: the first and last traded price, the extremes in between, and how much traded. It is the data behind a candlestick chart. Our guide What is OHLCV? The data behind every crypto chart covers each field, how candles are built and where they break.
Should I use pool OHLCV or token OHLCV?
Pool OHLCV when you care about one market, such as the pool your app routes trades through. Token OHLCV when you want the token's price as the market saw it, such as a price chart on a token page or a backtest.
Why do I get a 403 on the token OHLCV endpoint?
The endpoint needs a Dev, Pro or Enterprise plan. Pool OHLCV keeps working without a key.
How these numbers were measured
On 29 September 2026 at 09:10 UTC I listed UNI's pools on Ethereum with the pool search endpoint, sorted by 24-hour volume, and took the six largest. For each I fetched keyless hourly candles from 05:00 to 08:00 UTC, with inversed=true for the one pool where UNI is the second token, and compared the 07:00 to 08:00 candle. The spread is the highest close over the lowest, minus one. The token-versus-pool comparison used a Pro key on the same day: for UNI, LINK and JUP I fetched 24 hourly token candles from 09:00 UTC on 28 September and the same window for each token's ten largest pools by 24-hour volume, inverted where the token is the second in the pair, and compared closes and candle ranges hour by hour. The 403 message is what the token endpoint returned that day to a keyless call and to a free key. CoinGecko's wording is quoted from its token OHLCV reference page, read the same day.
The token OHLCV reference and a tutorial with Python and JavaScript examples are on docs.dexpaprika.com, keys are in console.dexpaprika.com, and plans are on the pricing page.
Původní průvodce CoinPaprika.