Alpha Vantage API wrapper in TypeScript.
- Alphavantage Wrapper TS
This library is in development, and all contributions are welcome, refer to CONTRIBUTING.md for more details.
This is an open source project under the MIT license, see LICENSE.md for additional information.
import AlphaVantage, {
Interval,
DataType,
StockTimeSeries,
} from 'alphavantage-wrapper-ts';
const av = new AlphaVantage({ apikey: 'your API key' });
av.stockTimeSeries
.intraday({ symbol: 'IBM', interval: Interval.SIXTY_MIN })
.then((data) => console.log(data));
// OR
async function intraday(): Promise<StockTimeSeries.IntradayResponse> {
const response = await av.stockTimeSeries.intraday({
symbol: 'IBM',
interval: Interval.SIXTY_MIN,
});
return response;
}
av.stockTimeSeries
.intraday({ symbol: 'IBM', interval: Interval.SIXTY_MIN })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- interval: Time interval between two consecutive data points in the time series. The following values are supported: 1min, 5min, 15min, 30min, 60min.
- adjusted: (optional) By default, adjusted=true and the output time series is adjusted by historical split and dividend events. Set adjusted=false to query raw (as-traded) intraday values.
- outputsize: (optional) By default, outputsize=compact. Strings compact and full are accepted with the following specifications: compact returns only the latest 100 data points in the intraday time series; full returns the full-length intraday time series. The "compact" option is recommended if you would like to reduce the data size of each API call.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
digitalCurrencyCode: string;
digitalCurrencyName: string;
marketCode: string;
marketName: string;
lastRefreshed: string;
interval: string;
outputSize: string;
timeZone: string;
}
timeSeries: {
'<datetime>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
'<datetime>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
...
}
}
av.stockTimeSeries
.search({
keywords: 'microsoft',
datatype: DataType.JSON
})
.then((data) => console.log(data))
.catch((err) => console.log(err))
Parameters
- keywords: A text string of your choice. For example:
microsoft
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
[
{
symbol: 'MSFT',
name: 'Microsoft Corporation',
type: 'Equity',
region: 'United States',
marketOpen: '09:30',
marketClose: '16:00',
timezone: 'UTC-04',
currency: 'USD',
matchScore: '0.6154',
},
{
symbol: 'MSF.DEX',
name: 'Microsoft Corporation',
type: 'Equity',
region: 'XETRA',
marketOpen: '08:00',
marketClose: '20:00',
timezone: 'UTC+02',
currency: 'EUR',
matchScore: '0.6000',
},
...
];
av.stockTimeSeries.daily({ symbol: 'IBM' }).then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- outputsize: (optional) By default, outputsize=compact. Strings compact and full are accepted with the following specifications: compact returns only the latest 100 data points in the intraday time series; full returns the full-length intraday time series. The "compact" option is recommended if you would like to reduce the data size of each API call.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
outputSize: string;
timeZone: string;
}
timeSeries: {
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
...
}
}
av.stockTimeSeries
.dailyAdjusted({ symbol: 'IBM' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- outputsize: (optional) By default, outputsize=compact. Strings compact and full are accepted with the following specifications: compact returns only the latest 100 data points in the intraday time series; full returns the full-length intraday time series. The "compact" option is recommended if you would like to reduce the data size of each API call.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
outputSize: string;
timeZone: string;
}
timeSeries: {
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
adjustedClose: string;
dividendAmount: string;
splitCoefficient: string;
},
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
adjustedClose: string;
dividendAmount: string;
splitCoefficient: string;
},
...
}
}
av.stockTimeSeries.weekly({ symbol: 'IBM' }).then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
...
}
}
av.stockTimeSeries
.weeklyAdjusted({ symbol: 'IBM' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<date>': {
open: string;
high: string;
low: string;
close: string;
adjustedClose: string;
volume: string;
dividendAmount: string;
},
'<date>': {
open: string;
high: string;
low: string;
close: string;
adjustedClose: string;
volume: string;
dividendAmount: string;
},
...
}
}
av.stockTimeSeries.monthly({ symbol: 'IBM' }).then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
'<date>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
...
}
}
av.stockTimeSeries
.monthlyAdjusted({ symbol: 'IBM' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<date>': {
open: string;
high: string;
low: string;
close: string;
adjustedClose: string;
volume: string;
dividendAmount: string;
},
'<date>': {
open: string;
high: string;
low: string;
close: string;
adjustedClose: string;
volume: string;
dividendAmount: string;
},
...
}
}
av.stockTimeSeries.quote({ symbol: 'IBM' }).then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the quote data in JSON format; csv returns the quote data as a CSV (comma separated value) file.
Response
{
symbol: string
open: string
high: string
low: string
price: string
volume: string
latestTradingDay: string
previousClose: string
change: string
changePercent: string
}
av.fundamentalData
.companyOverview({ symbol: 'IBM' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
Response
{
symbol: string
assetType: string
name: string
description: string
CIK: string
exchange: string
currency: string
country: string
sector: string
industry: string
address: string
fiscalYearEnd: string
latestQuarter: string
marketCapitalization: string
EBITDA: string
PERatio: string
PEGRatio: string
bookValue: string
dividendPerShare: string
dividendYield: string
EPS: string
revenuePerShareTTM: string
profitMargin: string
operatingMarginTTM: string
returnOnAssetsTTM: string
returnOnEquityTTM: string
revenueTTM: string
grossProfitTTM: string
dilutedEPSTTM: string
quarterlyEarningsGrowthYOY: string
quarterlyRevenueGrowthYOY: string
analystTargetPrice: string
trailingPE: string
forwardPE: string
priceToSalesRatioTTM: string
priceToBookRatio: string
EVToRevenue: string
EVToEBITDA: string
beta: string
fiftyTwoWeekHigh: string
fiftyTwoWeekLow: string
fiftyDayMovingAverage: string
twoHundredDayMovingAverage: string
sharesOutstanding: string
sharesFloat: string
sharesShort: string
sharesShortPriorMonth: string
shortRatio: string
shortPercentOutstanding: string
shortPercentFloat: string
percentInsiders: string
percentInstitutions: string
forwardAnnualDividendRate: string
forwardAnnualDividendYield: string
payoutRatio: string
dividendDate: string
exDividendDate: string
lastSplitFactor: string
lastSplitDate: string
}
av.fundamentalData.earnings({ symbol: 'IBM' }).then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
Response
{
symbol: string;
annualEarnings: [
{
fiscalDateEnding:string;
reportedEPS:string;
},
{
fiscalDateEnding:string;
reportedEPS:string;
}
],
quarterlyEarnings: [
{
fiscalDateEnding:string;
reportedDate:string;
reportedEPS:string;
estimatedEPS:string;
surprise:string;
surprisePercentage:string;
},
{
fiscalDateEnding:string;
reportedDate:string;
reportedEPS:string;
estimatedEPS:string;
surprise:string;
surprisePercentage:string;
}
]
}
av.fundamentalData
.listingStatus({ state: ListingState.ACTIVE, date: '2014-07-10' })
.then((data) => console.log(data))
Parameters
- state: (Optional) By default,
state=active
and the API will return a list of actively traded stocks and ETFs. Setstate=delisted
to query a list of delisted assets. - date: (Optional) If no date is set, the API endpoint will return a list of active or delisted symbols as of the latest trading day. If a date is set, the API endpoint will "travel back" in time and return a list of active or delisted symbols on that particular date in history. Any YYYY-MM-DD date later than 2010-01-01 is supported
Response
CSV
symbol,name,exchange,assetType,ipoDate,delistingDate,status
A,Agilent Technologies Inc,NYSE,Stock,1999-11-18,null,Active
...
av.cryptocurrency
.intraday({ symbol: 'ETH', market: 'USD', interval: Interval.SIXTY_MIN })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- interval: Time interval between two consecutive data points in the time series. The following values are supported: 1min, 5min, 15min, 30min, 60min.
- market: The exchange market of your choice. It can be any of the market in the market list. For example: market=USD.
- outputsize: (optional) By default, outputsize=compact. Strings compact and full are accepted with the following specifications: compact returns only the latest 100 data points in the intraday time series; full returns the full-length intraday time series. The "compact" option is recommended if you would like to reduce the data size of each API call.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
symbol: string;
lastRefreshed: string;
interval: string;
outputSize: string;
timeZone: string;
}
timeSeries: {
'<datetime>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
'<datetime>': {
open: string;
high: string;
low: string;
close: string;
volume: string;
},
...
}
}
av.cryptocurrency
.monthly({ symbol: 'ETH', market: 'CNY' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- market: The exchange market of your choice. It can be any of the market in the market list. For example: market=USD.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
digitalCurrencyCode: string;
digitalCurrencyName: string;
marketCode: string;
marketName: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<datetime>': {
open: string
high: string
low: string
close: string
volume: string
},
'<datetime>': {
open: string
high: string
low: string
close: string
volume: string
},
...
}
}
av.cryptocurrency
.weekly({ symbol: 'ETH', market: 'CNY' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- market: The exchange market of your choice. It can be any of the market in the market list. For example: market=USD.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
digitalCurrencyCode: string;
digitalCurrencyName: string;
marketCode: string;
marketName: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<datetime>': {
open: string
high: string
low: string
close: string
volume: string
},
'<datetime>': {
open: string
high: string
low: string
close: string
volume: string
},
...
}
}
av.cryptocurrency
.daily({ symbol: 'ETH', market: 'CNY' })
.then((data) => console.log(data))
Parameters
- symbol: The name of the equity of your choice. For example: symbol=IBM
- market: The exchange market of your choice. It can be any of the market in the market list. For example: market=USD.
- datatype: (optional) By default, datatype=json. Strings json and csv are accepted with the following specifications: json returns the intraday time series in JSON format; csv returns the time series as a CSV (comma separated value) file.
Response
{
metadata: {
information: string;
digitalCurrencyCode: string;
digitalCurrencyName: string;
marketCode: string;
marketName: string;
lastRefreshed: string;
timeZone: string;
}
timeSeries: {
'<datetime>': {
open: string
high: string
low: string
close: string
volume: string
},
'<datetime>': {
open: string
high: string
low: string
close: string
volume: string
},
...
}
}
enum DataType {
JSON = 'json',
CSV = 'csv'
}
enum Interval {
ONE_MIN = '1min',
FIVE_MIN = '5min',
FIFTEEN_MIN = '15min',
THIRTY_MIN = '30min',
SIXTY_MIN = '60min'
}
enum OutputSize {
COMPACT = 'compact',
FULL = 'full'
}