🔍

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

NameTypeRequiredDefaultDescription
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:

200 OK
{
  "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

Response
{ "value": [62.34], "timestamp": [1708300800] }

Candle data is being fetched for the first time. Retry the same request after 1–2 seconds.

Response
{ "pending": true, "key": "ta:binance:BTCUSDT:1h:rsi:..." }
Response
{ "error": "Missing required: exchange, symbol, timeframe" }
Response
{ "error": "Invalid or missing API key." }
Response
{ "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.

Last 5 RSI values
GET /indicator/rsi?exchange=binance&symbol=BTCUSDT&timeframe=1h&results=5
Response
{
  "value":     [61.2, 63.4, 58.9, 67.1, 62.3],
  "timestamp": [1708279200, 1708282800, 1708286400, 1708290000, 1708293600]
}
Array order: Results are ordered oldest → newest. value[0]/timestamp[0] is the oldest candle in the window; the last element is the most recent.

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.