What you’ll build
A screen that reads RSI and MACD for a pool straight from the API, without downloading candles and computing the indicator yourself. The server computes it from the same OHLCV candles that pool OHLCV returns, so the numbers line up with the charts you already draw. By the end you will have:- A curl that returns hourly RSI for a pool, with no key
- A Python script that flags overbought and oversold pools and MACD crosses
- A clear picture of which indicator needs which plan
Which plan you need
Paid plans call
https://api-pro.dexpaprika.com with the key as the entire Authorization header. Compare plans on pricing and get a key in console.dexpaprika.com.
The call
Hourly RSI for the USDC/WETH pool on Uniswap v3, last six hours, no key:timestamp is the candle’s open time, and only completed candles count, so the candle that is still open has no value yet. parameters echoes what was used, defaults included.
Set interval every time. It defaults to 24h, and on the free tier a daily series cut to the last 7 days is six values.
The five indicators
Replacersi in the path with the indicator you want. Pools use /networks/{network}/pools/{pool_address}/indicators/{name}, tokens use /networks/{network}/tokens/{token_address}/indicators/{name}.
Every indicator also takes:
With
start, limit counts forward from it. When the range holds more candles than limit, has_next_page is true and next_cursor continues it.
Screen a pool in Python
RSI over 70 is commonly read as overbought and under 30 as oversold. A MACD histogram that changes sign means MACD crossed its signal line. This script checks both on the last completed hourly candle:Four things that will surprise you
The same candle can get a different value from a differentstart. RSI, EMA and MACD are smoothed: each value carries some weight from every candle before it. The API reads only the candles each indicator strictly needs before your start, 14 for RSI(14), so a short range starts the smoothing late. Hourly RSI(14) for one 09:00 candle on the pool above, measured on 12 October:
Start at least ten periods before the first value you use, 140 candles for RSI(14), and keep the tail. On the free tier the 7-day window holds 168 hourly candles, which is enough at
1h and shorter intervals, but only seven daily ones, so daily RSI and EMA need a paid plan to settle. The same effect explains differences from a charting site that has years of history behind each point.
A short range on a quiet pool can fail. The warm-up is measured in time, period intervals back, so minutes without a trade leave it short of candles. interval=1m&limit=2 on the pool above answered 400 with insufficient data: rsi needs at least 15 candles. Received 12, and limit=50 worked. Ask for more values than you need.
Quiet intervals have no candle, so they have no value. Indicators are computed over the candles that exist. On a thinly traded pool at 5m, the period of an RSI spans more wall-clock time than you would expect.
Pool indicators follow the pool’s OHLCV price, with no way to flip it. An EMA, Bollinger Band or VWAP on a pool is on the same price as pool OHLCV with its default inversed=false, and the indicator endpoints take no inversed. For one USD series across every pool a token trades in, use the token indicators, built on token OHLCV.
Errors
A paid-only request without a paid key looks like this:
Where to go next
- Indicators reference: every endpoint, parameter and response code
- Pool OHLCV: the candles behind the pool indicators
- Token OHLCV: the USD candles behind the token indicators
- Pricing and console.dexpaprika.com: plans and your key