Single Indicator
Fetch one indicator value for one symbol. All 260+ indicators follow this same pattern.
Replace {indicator} with any indicator name from the directory — for example /indicator/rsi, /indicator/macd, /indicator/ema. The request structure is identical for every indicator; only the indicator-specific parameters differ.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
exchange |
string | Yes | — | Exchange identifier, e.g. binance, bybit, coinbase. See Exchanges for the full list. |
symbol |
string | Yes | — | Trading pair, e.g. BTCUSDT. |
timeframe |
string | Yes | — | Candle interval. One of: 1m, 5m, 15m, 1h, 4h, 1d, 1w. |
results |
integer | No | 1 | Number of historical values to return. Use max to return all available results. See Historical Values. |
backtrack |
integer | No | 0 | Candles to skip from the most recent. Shifts the result window back in time. See Historical Values. |
| [indicator params] | varies | No | varies | Each indicator accepts its own parameters (e.g. period, source). See the individual indicator page for the full list. |
Example — RSI
curl -G https://v2.taapi.io/indicator/rsi \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h" \ --data-urlencode "period=14"
const res = await fetch(
'https://v2.taapi.io/indicator/rsi' +
'?exchange=binance&symbol=BTCUSDT&timeframe=1h&period=14',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const data = await res.json();
// { value: [62.34], timestamp: [1708300800] }
import requests
resp = requests.get(
'https://v2.taapi.io/indicator/rsi',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={
'exchange': 'binance',
'symbol': 'BTCUSDT',
'timeframe': '1h',
'period': 14,
}
)
print(resp.json())
# {'value': [62.34], 'timestamp': [1708300800]}
Response
Results are always wrapped in arrays, even when only one value is returned:
{
"value": [62.34],
"timestamp": [1708300800]
}
Multi-output indicators return named array fields instead of a single value. For example, MACD returns valueMACD, valueMACDSignal, and valueMACDHist. See each indicator's page for its specific output fields.
Errors
{ "value": [62.34], "timestamp": [1708300800] }Candle data is being fetched for the first time. Retry the same request after 1–2 seconds.
{ "pending": true, "key": "ta:binance:BTCUSDT:1h:rsi:..." }{ "error": "Missing required: exchange, symbol, timeframe" }{ "error": "Invalid or missing API key." }{ "error": "Rate limit exceeded. Your plan allows 30 requests per 15 seconds." }Historical values
Add results=N to get N historical values in one call. Add backtrack=N to shift the window back N candles. See Historical Values for a full explanation.
GET /indicator/rsi?exchange=binance&symbol=BTCUSDT&timeframe=1h&results=5
{
"value": [61.2, 63.4, 58.9, 67.1, 62.3],
"timestamp": [1708279200, 1708282800, 1708286400, 1708290000, 1708293600]
}
value[0] is the oldest or most recent result in a multi-value response. Verify with a live API call.
Data injection (bring your own candles)
To compute an indicator on your own candle data instead of fetching from an exchange, use POST /indicator/{indicator}. See Data Injection.