GET
/indicator/stoch
Stochastic
Category: Momentum
Stochastic Oscillator (TradingView) compares a closing price to its price range over a given period. The %K and %D lines identify overbought and oversold conditions.
Common parameters
All indicator requests share these parameters. See Single Indicator for details.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
exchange | string | Yes | — | Exchange identifier, e.g. binance, bybit. |
symbol | string | Yes | — | Trading pair, e.g. BTCUSDT. |
timeframe | string | Yes | — | Candle interval: 1m, 5m, 15m, 1h, 4h, 1d, 1w. |
results | integer | No | 1 | Number of historical values. Use max for all available. |
backtrack | integer | No | 0 | Candles to skip from most recent. |
Indicator parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
kPeriod | integer | No | 5 | kPeriod |
dPeriod | integer | No | 3 | dPeriod |
kSmooth | integer | No | 3 | kSmooth |
Example
curl -G https://v2.taapi.io/indicator/stoch \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h" \ --data-urlencode "kPeriod=5" \ --data-urlencode "dPeriod=3" \ --data-urlencode "kSmooth=3"
const res = await fetch(
'https://v2.taapi.io/indicator/stoch?exchange=binance&symbol=BTCUSDT&timeframe=1h',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const data = await res.json();
import requests
resp = requests.get(
'https://v2.taapi.io/indicator/stoch',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={'exchange': 'binance', 'symbol': 'BTCUSDT', 'timeframe': '1h'}
)
print(resp.json())
Response
Results are always wrapped in arrays, even when only one value is returned.
200 OK
{
"valueK": [0.0],
"valueD": [0.0],
"timestamp": [1708300800]
}
Errors
Response
{
"valueK": [0.0],
"valueD": [0.0],
"timestamp": [1708300800]
}Data is being fetched. Retry after 1–2 seconds.
Response
{ "pending": true, "key": "ta:binance:BTCUSDT:1h:stoch:..." }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." }