Average Directional Index (ADX)
Category: Momentum · Updated November 2026
The TAAPI.IO ADX API returns real-time and historical values for the Average Directional Index indicator as JSON, for crypto pairs and US stocks. Send an exchange, symbol and timeframe to get real-time or historical data, with no candles to download and no calculations to maintain.
| Spec | Value |
|---|---|
| Endpoint | GET https://v2.taapi.io/indicator/adx |
| Outputs | value |
| Markets | Binance, Binance Futures, Bybit, Gate.io, Kraken and US stocks |
| Timeframes | 1m to 1w |
| Delivery | REST, bulk and WebSocket |
Get ADX with one API call
This request returns ADX for BTCUSDT on 1-hour Binance candles. Add your API key to run it here.
curl -G https://v2.taapi.io/indicator/adx \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h"
import requests
resp = requests.get(
'https://v2.taapi.io/indicator/adx',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={'exchange': 'binance', 'symbol': 'BTCUSDT', 'timeframe': '1h'},
)
print(resp.json())const params = new URLSearchParams({"exchange": "binance", "symbol": "BTCUSDT", "timeframe": "1h"});
const res = await fetch(`https://v2.taapi.io/indicator/adx?${params}`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
console.log(await res.json());ADX API response
This response came from the live API on 9 November 2026. Long lists are shortened here.
{
"value": [26.43205462753991],
"timestamp": [1794218400]
}| Field | Type | Description |
|---|---|---|
value | number[] | ADX result |
timestamp | integer[] | Unix time of each candle, in seconds |
ADX API parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
exchange | string | Yes | — | binance, binancefutures, bybit, gateio, kraken or stocks |
symbol | string | Yes | — | Pair or ticker, e.g. BTCUSDT or AAPL |
timeframe | string | Yes | — | 1m 5m 15m 1h 4h 1d 1w |
period | integer | No | 14 | Time Period |
results | integer | No | 1 | Number of values to return, or max |
backtrack | integer | No | 0 | Candles to skip from the most recent |
What is ADX?
The Average Directional Index, developed by J. Welles Wilder, measures how strong a trend is, whichever direction it points. It is a smoothed average of the DX line, which compares upward and downward directional movement.
ADX formula
| Output | Calculation |
|---|---|
| +DI / −DI | Smoothed directional movement ÷ smoothed true range × 100 |
| DX | |+DI − −DI| ÷ (+DI + −DI) × 100 |
| ADX | Wilder's smoothed average of DX |
How to read ADX in your code
| Signal | Meaning | Condition |
|---|---|---|
| Weak or no trend | Range-bound conditions | value below 20 |
| Trending | A trend is in place | value above 25 |
| Trend strengthening | Trend is gaining force | value rising over recent candles |
Limitations: ADX says nothing about direction, so pair it with +DI and −DI. Because it is double smoothed, it confirms trends late. Nothing on this page is financial advice.
What ADX levels mean
ADX runs from 0 to 100, though readings above 60 are uncommon. Below 20 usually means no meaningful trend. Above 25 is the usual sign that one exists. These levels are conventions from Wilder's work and vary by market, so check them on your own symbols.
A falling ADX does not mean price is falling. It means the trend, in either direction, is losing strength. Similarly, ADX can rise during a sharp decline.
ADX as a strategy filter
ADX is most often used to decide which rules to apply. When it's high, trend tools such as moving-average crossovers and SuperTrend tend to behave better. When it's low, range tools such as RSI or Bollinger Bands are usually more suitable.
Because of its double smoothing, ADX often rises only after a move is under way. That makes it better as a filter than as an entry signal.
Build an ADX trend filter with Python
ADX alone has no direction, so this uses the dmi endpoint, which returns ADX with +DI and −DI in a single response.
curl -G https://v2.taapi.io/indicator/dmi \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h" \ --data-urlencode "backtrack=1"
import requests
resp = requests.get(
'https://v2.taapi.io/indicator/dmi',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={'exchange': 'binance', 'symbol': 'BTCUSDT', 'timeframe': '1h', 'backtrack': 1},
)
data = resp.json()
adx = data['adx'][-1]
plus_di = data['plusdi'][-1]
minus_di = data['minusdi'][-1]
if adx < 20:
print(f'No clear trend, ADX {adx:.1f}')
elif plus_di > minus_di:
print(f'Uptrend, ADX {adx:.1f}')
else:
print(f'Downtrend, ADX {adx:.1f}')Get historical ADX values
Add results to return a series for backtesting or charting. The last element is the most recent candle.
curl -G https://v2.taapi.io/indicator/adx \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h" \ --data-urlencode "results=100"
Get ADX for multiple symbols
Combine ADX with other indicators in one request. Each exchange, symbol and timeframe combination is one construct: Basic allows 1 per request, Pro 3 and Expert 10.
curl -X POST https://v2.taapi.io/bulk \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"constructs": [
{
"id": "btc_1h",
"exchange": "binance",
"symbol": "BTCUSDT",
"timeframe": "1h",
"indicators": [
{
"id": "adx",
"indicator": "adx"
},
{
"id": "rsi",
"indicator": "rsi"
}
]
}
]
}'Stream ADX in real time
Subscribe over WebSocket to receive new values every 5 seconds while the candle is forming. Streaming supports 1m, 5m, 15m and 1h, and uses interval where REST uses timeframe.
{
"type": "subscribe",
"id": "adx",
"exchange": "binance",
"symbol": "BTCUSDT",
"interval": "1m",
"indicator": "adx"
}Why ADX values can differ between platforms
- Smoothing:
adxuses TA-Lib's implementation of Wilder's method. Tools may seed the first values differently, and the effect fades with more history. - Settings: Some charts use separate lengths for DI and ADX smoothing.
- Exchange data: ADX is built from highs and lows, which differ between venues.
ADX API FAQ
What does the ADX API return?
It returns value, plus a timestamp for the request. Results are JSON.
Is the latest ADX value final?
No. The newest value belongs to the candle still forming and can change until it closes. Add backtrack=1 to read the last closed candle.
Which ADX settings can I change?
You can set period. See the parameters table above for defaults.
Can I get ADX for US stocks?
Yes. Use exchange=stocks with a ticker such as AAPL. US stocks are included on the Pro plan and above.
Does ADX show trend direction?
No. ADX only measures strength. Use dmi to get ADX, +DI and −DI together and compare the two directional lines.
What is the difference between ADX and DMI?
adx returns only the strength line. dmi returns ADX together with +DI and −DI.
Related indicators
- Directional Movement Index
- ADX Rating
- Plus Directional Indicator
- Minus Directional Indicator
- Average True Range
See the full list of indicators, or start for free.