# Technical Data API

`getTechnicals`

The getTechnicals API provides technical data and statistics for equities, indices, futures, currencies, cryptocurrencies and mutual funds based on symbol.

View All APIsContact Us to Get Access

Inputs

symbols^{required}

A symbol or code that identifies a financial instrument.

Type

list (A comma or semi-colon delimited string.)

Example

`AAPL,GOOG`

fields^{optional}

The fields requested.

Type

list (A comma or semi-colon delimited string.)

Example

`averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay`

Outputs

symbol

always returned

always returned

A symbol or code that identifies a financial instrument.

*string*

A sequence of characters. (example: GOOG)

movingAverageFiveDay

always returned

always returned

The average price of the instrument over 5 days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

movingAverageTwentyDay

always returned

always returned

The average price of the instrument over 20 days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

movingAverageFiftyDay

always returned

always returned

The average price of the instrument over 50 days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

movingAverageOneHundredDay

always returned

always returned

The average price of the instrument over 100 days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

movingAverageTwoHundredDay

always returned

always returned

The average price of the instrument over 200 days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

movingAverageYTD

always returned

always returned

The average price of the instrument since the start of the year.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeFiveDay

as requested

as requested

The change in price over 5-days

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeTwentyDay

as requested

as requested

The change in price over 20-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeFiftyDay

as requested

as requested

The change in price over 50-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeOneHundredDay

as requested

as requested

The change in price over 100-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeTwoHundredDay

as requested

as requested

The change in price over 200-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeYTD

as requested

as requested

The change in price since the start of the year.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeOneMonth

as requested

as requested

The change in price over 1 month.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeThreeMonth

as requested

as requested

The change in price over 3 months.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeSixMonth

as requested

as requested

The change in price over 6 months.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeNineMonth

as requested

as requested

The change in price over 9 months.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeFiftyTwoWeek

as requested

as requested

The change in price over 52 weeks.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

priceChangeTwoYears

as requested

as requested

The change in price over 2 years.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeFiveDay

as requested

as requested

The percentage change in price over 5-days

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeTwentyDay

as requested

as requested

The percentage change in price over 20-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeFiftyDay

as requested

as requested

The percentage change in price over 50-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeOneHundredDay

as requested

as requested

The percentage change in price over 100-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeTwoHundredDay

as requested

as requested

The percentage change in price over 200-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeYTD

as requested

as requested

The percentage change in price since the start of the year.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeOneMonth

as requested

as requested

The percentage change in price over 1 month.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeThreeMonth

as requested

as requested

The percentage change in price over 3 months.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeSixMonth

as requested

as requested

The percentage change in price over 6 months.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeNineMonth

as requested

as requested

The percentage change in price over 9 months.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeFiftyTwoWeek

as requested

as requested

The percentage change in price over 52 weeks.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeTwoYears

as requested

as requested

The percentage change in price over 2 years.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

averageVolumeFiveDay

as requested

as requested

The average daily volume calculated over the past 5-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

averageVolumeTwentyDay

as requested

as requested

The average daily volume calculated over the past 20-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

averageVolumeFiftyDay

as requested

as requested

The average daily volume calculated over the past 50-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

averageVolumeOneHundredDay

as requested

as requested

The average daily volume calculated over the past 100-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

averageVolumeTwoHundredDay

as requested

as requested

The average daily volume calculated over the past 200-days.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

averageVolumeYTD

as requested

as requested

The average daily volume calculated since the start of the year.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayRawStochastic

as requested

as requested

A 9-day raw stochastic indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayRawStochastic

as requested

as requested

A 14-day raw stochastic indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayRawStochastic

as requested

as requested

A 20-day raw stochastic indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayRawStochastic

as requested

as requested

A 50-day raw stochastic indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayRawStochastic

as requested

as requested

A 100-day raw stochastic indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayStochasticK

as requested

as requested

A 9-day stochastic %k indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayStochasticK

as requested

as requested

A 14-day stochastic %k indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayStochasticK

as requested

as requested

A 20-day stochastic %k indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayStochasticK

as requested

as requested

A 50-day stochastic %k indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayStochasticK

as requested

as requested

A 100-day stochastic %k indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayStochasticD

as requested

as requested

A 9-day stochastic %d indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayStochasticD

as requested

as requested

A 14-day stochastic %d indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayStochasticD

as requested

as requested

A 20-day stochastic %d indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayStochasticD

as requested

as requested

A 50-day stochastic %d indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayStochasticD

as requested

as requested

A 100-day stochastic %d indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayATR

as requested

as requested

A 9-day average true range indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayATR

as requested

as requested

A 14-day average true range indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayATR

as requested

as requested

A 20-day average true range indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayATR

as requested

as requested

A 50-day average true range indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayATR

as requested

as requested

A 100-day average true range indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayRelativeStrength

as requested

as requested

A 9-day relative strength indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayRelativeStrength

as requested

as requested

A 14-day relative strength indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayRelativeStrength

as requested

as requested

A 20-day relative strength indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayRelativeStrength

as requested

as requested

A 50-day relative strength indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayRelativeStrength

as requested

as requested

A 100-day relative strength indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayPercentR

as requested

as requested

A 9-day percent R indicator

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayPercentR

as requested

as requested

A 14-day percent R indicator

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayPercentR

as requested

as requested

A 20-day percent R indicator

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayPercentR

as requested

as requested

A 50-day percent R indicator

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayPercentR

as requested

as requested

A 100-day percent R indicator

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayHistoricVolatility

as requested

as requested

The 9-day historic or realized volatility.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayHistoricVolatility

as requested

as requested

The 14-day historic or realized volatility.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayHistoricVolatility

as requested

as requested

The 20-day historic or realized volatility.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayHistoricVolatility

as requested

as requested

The 50-day historic or realized volatility.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayHistoricVolatility

as requested

as requested

The 100-day historic or realized volatility.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

nineDayMACD

as requested

as requested

The 9-day moving average convergence/divergence indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourteenDayMACD

as requested

as requested

The 14-day moving average convergence/divergence indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

twentyDayMACD

as requested

as requested

The 20-day moving average convergence/divergence indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyDayMACD

as requested

as requested

The 50-day moving average convergence/divergence indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

oneHundredDayMACD

as requested

as requested

The 100-day moving average convergence/divergence indicator.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

standardDeviation

always returned

always returned

The standard deviation using the past 20-days of data.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeOneYear

as requested

as requested

The one year return on the ETF

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeThreeYear

as requested

as requested

The three year return on the ETF

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeFiveYear

as requested

as requested

The five year return on the ETF

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentChangeTenYear

as requested

as requested

The ten year return on the ETF

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

pivotPoint

as requested

as requested

Pivot Point

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

firstLevelResistance

as requested

as requested

Pivot Point 1st level resistance.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

secondLevelResistance

as requested

as requested

Pivot Point 2nd level resistance

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

thirdLevelResistance

as requested

as requested

Pivot Point 3rd level resistance

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

firstLevelSupport

as requested

as requested

Pivot Point 1st level support

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

secondLevelSupport

as requested

as requested

Pivot Point 2nd level support

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

thirdLevelSupport

as requested

as requested

Pivot Point 3rd level support

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourWkRetracementHigh

as requested

as requested

38.2% Fibonacci Retracement from 4 week high.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourWkRetracementLow

as requested

as requested

38.2% Fibonacci Retracement from 4 week low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fourWkRetracementHighLow

as requested

as requested

50% Fibonacci Retracement from 4 week high/low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

thirteenWkRetracementHigh

as requested

as requested

38.2% Fibonacci Retracement from 13 week high.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

thirteenWkRetracementLow

as requested

as requested

38.2% Fibonacci Retracement from 13 week low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

thirteenWkRetracementHighLow

as requested

as requested

50% Fibonacci Retracement from 13 week high/low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyTwoWkRetracementHigh

as requested

as requested

38.2% Fibonacci Retracement from 52 week high.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyTwoWkRetracementLow

as requested

as requested

38.2% Fibonacci Retracement from 52 week low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

fiftyTwoWkRetracementHighLow

as requested

as requested

50% Fibonacci Retracement from 52 week high/low

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

standardDeviationTraditional

as requested

as requested

The standard deviation using the past year of data.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

gapUp

as requested

as requested

The current session Open is higher than the previous session's High.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

gapUpPercent

as requested

as requested

The current session Open is higher than the previous session's High.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

gapDown

as requested

as requested

The current session Open is lower than the previous session's Low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

gapDownPercent

as requested

as requested

The current session Open is lower than the previous session's Low.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

percentVolume

as requested

as requested

Percentage difference between the current volume and the average volume.

*double*

A numeric type defining a number with fractional parts. (example: 2.14)

Status Code Responses

200

OK

Success

400

Bad Request

The request was invalid, please see the message for more information.

500

Internal Server Error

Something is not working correctly, please contact support.

JSON

GET

GET https://ondemand.websol.barchart.com/getTechnicals.json?apikey=YOUR_API_KEY&symbols=AAPL%2CGOOG&fields=averageVolumeFiveDay%2CaverageVolumeTwentyDay%2CaverageVolumeFiftyDay

Host: ondemand.websol.barchart.com

POST

POST https://ondemand.websol.barchart.com/getTechnicals.json

Host: ondemand.websol.barchart.com

Content-Type: application/x-www-form-urlencoded

Content-Length: length

apikey=YOUR_API_KEY&symbols=AAPL%2CGOOG&fields=averageVolumeFiveDay%2CaverageVolumeTwentyDay%2CaverageVolumeFiftyDay

Response

```
{
"status": {
"code": 200,
"message": "Success."
},
"results": [
{
"symbol": "AAPL",
"movingAverageFiveDay": 126.65,
"movingAverageTwentyDay": 125.94,
"movingAverageFiftyDay": 128.71,
"movingAverageOneHundredDay": 128.43,
"movingAverageTwoHundredDay": 124.43,
"movingAverageYTD": 128.52,
"averageVolumeFiveDay": 65409563,
"averageVolumeTwentyDay": 71562344,
"averageVolumeFiftyDay": 84145047,
"standardDeviation": 0.9
},
{
"symbol": "GOOG",
"movingAverageFiveDay": 2495.17,
"movingAverageTwentyDay": 2409.88,
"movingAverageFiftyDay": 2346.44,
"movingAverageOneHundredDay": 2190.23,
"movingAverageTwoHundredDay": 1923.99,
"movingAverageYTD": 2147.36,
"averageVolumeFiveDay": 1255180,
"averageVolumeTwentyDay": 1152315,
"averageVolumeFiftyDay": 1329764,
"standardDeviation": -0.29
}
]
}
```

XML

GET

GET https://ondemand.websol.barchart.com/getTechnicals.xml?apikey=YOUR_API_KEY&symbols=AAPL%2CGOOG&fields=averageVolumeFiveDay%2CaverageVolumeTwentyDay%2CaverageVolumeFiftyDay

Host: ondemand.websol.barchart.com

POST

POST https://ondemand.websol.barchart.com/getTechnicals.xml

Host: ondemand.websol.barchart.com

Content-Type: application/x-www-form-urlencoded

Content-Length: length

apikey=YOUR_API_KEY&symbols=AAPL%2CGOOG&fields=averageVolumeFiveDay%2CaverageVolumeTwentyDay%2CaverageVolumeFiftyDay

Response

```
<?xml version="1.0" encoding="utf-8"?>
<getTechnicals>
<status>
<code>200</code>
<message>Success.</message>
</status>
<item>
<symbol>AAPL</symbol>
<movingAverageFiveDay>126.65</movingAverageFiveDay>
<movingAverageTwentyDay>125.94</movingAverageTwentyDay>
<movingAverageFiftyDay>128.71</movingAverageFiftyDay>
<movingAverageOneHundredDay>128.43</movingAverageOneHundredDay>
<movingAverageTwoHundredDay>124.43</movingAverageTwoHundredDay>
<movingAverageYTD>128.52</movingAverageYTD>
<averageVolumeFiveDay>65409563</averageVolumeFiveDay>
<averageVolumeTwentyDay>71562344</averageVolumeTwentyDay>
<averageVolumeFiftyDay>84145047</averageVolumeFiftyDay>
<standardDeviation>0.9</standardDeviation>
</item>
<item>
<symbol>GOOG</symbol>
<movingAverageFiveDay>2495.17</movingAverageFiveDay>
<movingAverageTwentyDay>2409.88</movingAverageTwentyDay>
<movingAverageFiftyDay>2346.44</movingAverageFiftyDay>
<movingAverageOneHundredDay>2190.23</movingAverageOneHundredDay>
<movingAverageTwoHundredDay>1923.99</movingAverageTwoHundredDay>
<movingAverageYTD>2147.36</movingAverageYTD>
<averageVolumeFiveDay>1255180</averageVolumeFiveDay>
<averageVolumeTwentyDay>1152315</averageVolumeTwentyDay>
<averageVolumeFiftyDay>1329764</averageVolumeFiftyDay>
<standardDeviation>-0.29</standardDeviation>
</item>
</getTechnicals>
```

CSV

GET

GET https://ondemand.websol.barchart.com/getTechnicals.csv?apikey=YOUR_API_KEY&symbols=AAPL%2CGOOG&fields=averageVolumeFiveDay%2CaverageVolumeTwentyDay%2CaverageVolumeFiftyDay

Host: ondemand.websol.barchart.com

POST

POST https://ondemand.websol.barchart.com/getTechnicals.csv

Host: ondemand.websol.barchart.com

Content-Type: application/x-www-form-urlencoded

Content-Length: length

apikey=YOUR_API_KEY&symbols=AAPL%2CGOOG&fields=averageVolumeFiveDay%2CaverageVolumeTwentyDay%2CaverageVolumeFiftyDay

Response

```
symbol,movingAverageFiveDay,movingAverageTwentyDay,movingAverageFiftyDay,movingAverageOneHundredDay,movingAverageTwoHundredDay,movingAverageYTD,averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay,standardDeviation
"AAPL","126.65","125.94","128.71","128.43","124.43","128.52","65409563","71562344","84145047","0.9"
"GOOG","2495.17","2409.88","2346.44","2190.23","1923.99","2147.36","1255180","1152315","1329764","-0.29"
```

PHP

```
<?php
$ondemand = new SoapClient('https://ondemand.websol.barchart.com/service?wsdl');
$params = [
'apikey' => 'YOUR_API_KEY',
'symbols' => 'AAPL,GOOG',
'fields' => 'averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay',
];
$result = $ondemand->getTechnicals($params);
var_dump($result);
```

Classic ASP

```
Dim ondemand
Dim result
Set ondemand = Server.CreateObject("MSSOAP.SoapClient30")
ondemand.ClientProperty("ServerHTTPRequest") = True
ondemand.MSSoapInit("https://ondemand.websol.barchart.com/service?wsdl")
Set result = ondemand.getTechnicals("YOUR_API_KEY", "AAPL,GOOG", "averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay")
```

Perl

```
use SOAP::Lite;
use SOAP::WSDL;
my $ondemand = SOAP::Lite
-> service('https://ondemand.websol.barchart.com/service?wsdl');
my $result = $ondemand->getTechnicals('YOUR_API_KEY', 'AAPL,GOOG', 'averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay');
print $result;
```

Python

```
from suds.client import Client
ondemand = Client('https://ondemand.websol.barchart.com/service?wsdl')
result = client.service.getTechnicals('YOUR_API_KEY', 'AAPL,GOOG', 'averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay')
print result
```

Ruby

```
require 'savon'
ondemand = Savon.client(wsdl: 'https://ondemand.websol.barchart.com/service?wsdl')
response = ondemand.call(
:getTechnicals,
message: {
apikey: 'YOUR_API_KEY',
symbols: 'AAPL,GOOG',
fields: 'averageVolumeFiveDay,averageVolumeTwentyDay,averageVolumeFiftyDay',
}
)
response.body
```