Bollinger Bands

The Bollinger Bands is a popular technical indicator used by traders in financial markets to analyze price volatility and potential trend reversals. It consists of three lines plotted on a price chart: the upper band, the middle band, and the lower band. The middle band represents the moving average of the underlying asset’s price over a specified period, typically 20 candles (adjustable using the optional period parameter).

The upper and lower bands are placed a certain number of standard deviations away from the middle band, usually two standard deviations. The result returned in the given format provides the numerical values for the upper band, middle band, and lower band.

Traders can use Bollinger Bands to identify periods of low volatility (when the bands are narrow) and high volatility (when the bands widen). When the price touches or moves beyond the upper band, it suggests that the asset may be overbought, potentially indicating a selling opportunity. Conversely, when the price reaches or falls below the lower band, it suggests oversold conditions, potentially signaling a buying opportunity. Traders often look for price reversals or bounces off the bands to make trading decisions and assess potential price targets and stop-loss levels.

Get started with the bbands

Simply make an HTTPS [GET] request or call in your browser:


The bbands endpoint returns a JSON response like this:

  "valueUpperBand": 23491.10808422158,
  "valueMiddleBand": 21935.281499999997,
  "valueLowerBand": 20379.454915778413
Example response from TAAPI.IO when querying bbands endpoint.

API parameters

Required String
The secret which is emailed to you when you request an API key.
Required String
The exchange you want to calculate the indicator from: binance, binancefutures or one of our supported exchanges. For other crypto / stock exchanges, please refer to our Client or Manual integration methods.
Required String
Symbol names are always uppercase, with the coin separated by a forward slash and the market: COIN/MARKET. For example: BTC/USDT Bitcoin to Tether, or LTC/BTC Litecoin to Bitcoin...
Required String
Interval or time frame: We support the following time frames: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 12h, 1d, 1w. So if you're interested in values on hourly candles, use interval=1h, for daily values use interval=1d, etc.
Optional Integer
The backtrack parameter removes candles from the data set and calculates the bbands value X amount of candles back. So, if you’re fetching the bbands on the hourly and you want to know what the bbands was 5 hours ago, set backtrack=5. The default is 0 and a maximum is 50.
Optional Integer
The backtracks parameter returns the bbands value calculated on every candle for the past X candles. For example, if you want to know what the bbands was every hour for the past 12 hours, you use backtracks=12. As a result, you will get 12 values back.
Optional String
The chart parameter accepts one of two values: candles or heikinashi. candles is the default, but if you set this to heikinashi, the indicator values will be calculated using Heikin Ashi candles. Note: Pro & Expert Plans only.
Optional Boolean
true or false. Defaults to false. By setting to true the API will return a timestamp with every result (real-time and backtracked) to which candle the value corresponds. This is helpful when requesting multiple backtracks.
New Optional Boolean
true or false. Defaults to true. By setting to false, the API will ensure that there are no candles missing. This often happens on lower timeframes in thin markets. Gaps will be filled by a new candle with 0 volume, and OHLC set the the close price of the latest candle with volume.
New Optional String
number or max. Use this parameter to access historical values on the past X candles until the most recent candle. Use max to return all available historical values. Returns an array with the oldest value on top and most recent value returned the last.
Optional Integer

The period length to consider in the data set.

Default: 20

Optional Float

Standard deviation value of the price.

Default: 2

More examples

Let's say you want to know the bbands value on the last closed candle on the 30m timeframe. You are not interest in the real-time value, so you use the backtrack=1 optional parameter to go back 1 candle in history to the last closed candle.

Get bbands values on each of the past X candles in one call

Let's say you want to know what the bbands daily value was each day for the previous 10 days. You can get this returned by our API easily and efficiently in one call using the backtracks=10 parameter:


Here's the example response:

    "valueUpperBand": 39541.935773866826,
    "valueMiddleBand": 37920.27099999998,
    "valueLowerBand": 36298.60622613313,
    "backtrack": 0
    "valueUpperBand": 39384.047926934225,
    "valueMiddleBand": 37742.03749999998,
    "valueLowerBand": 36100.02707306573,
    "backtrack": 1
    "valueUpperBand": 39189.79404654695,
    "valueMiddleBand": 37549.12899999998,
    "valueLowerBand": 35908.46395345301,
    "backtrack": 2
    "valueUpperBand": 39238.40121146342,
    "valueMiddleBand": 37341.31999999997,
    "valueLowerBand": 35444.238788536524,
    "backtrack": 3
    "valueUpperBand": 39316.76130662777,
    "valueMiddleBand": 37167.578999999976,
    "valueLowerBand": 35018.39669337218,
    "backtrack": 4
    "valueUpperBand": 39315.188199354496,
    "valueMiddleBand": 36982.98099999998,
    "valueLowerBand": 34650.77380064546,
    "backtrack": 5
    "valueUpperBand": 39279.64840585314,
    "valueMiddleBand": 36771.64749999998,
    "valueLowerBand": 34263.64659414681,
    "backtrack": 6
    "valueUpperBand": 39224.486839431374,
    "valueMiddleBand": 36603.51699999998,
    "valueLowerBand": 33982.54716056858,
    "backtrack": 7
    "valueUpperBand": 39075.89886527038,
    "valueMiddleBand": 36398.34249999998,
    "valueLowerBand": 33720.78613472958,
    "backtrack": 8
    "valueUpperBand": 38888.41842674013,
    "valueMiddleBand": 36207.69949999998,
    "valueLowerBand": 33526.98057325983,
    "backtrack": 9

Looking for even more integration examples in different languages like NodeJS, PHP, Python, Curl or Ruby? Continue to [GET] REST - Direct documentation.