Details
| ID | AlphaVantage |
|---|---|
| Provider | Alpha Vantage |
| Category | Utilities |
| From Version | 6.0.0 |
| Docker Image | demisto/python3:3.12.8.3296088 |
| Supported Modules | Agentix XSIAM |
README
This is an API to get stock prices etc
Configure AlphaVantage in Cortex
| Parameter | Required |
|---|---|
| API Key | True |
| Fetch incidents | False |
| Incident type | False |
| Trust any certificate (not secure) | False |
| Use system proxy settings | False |
Commands
You can execute these commands from the CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.
alphavantage-stock-data-get
Gets data for a stock
Base Command
alphavantage-stock-data-get
Input
| Argument Name | Description | Required |
|---|---|---|
| symbol | Symbol or Ticker of stock. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| AlphaVantage.StockData.symbol | String | Stock symbol |
| AlphaVantage.StockData.open | String | Open price |
| AlphaVantage.StockData.high | String | Day high price |
| AlphaVantage.StockData.low | String | Day low price |
| AlphaVantage.StockData.price | String | Last price recorded |
| AlphaVantage.StockData.volume | String | Trade volume |
| AlphaVantage.StockData.latest trading day | Date | Last trade day date |
| AlphaVantage.StockData.previous close | String | Last day close price |
| AlphaVantage.StockData.change | String | Change since last close |
| AlphaVantage.StockData.change percent | String | Change since last close in % |
Command Example
!alphavantage-stock-data-get symbol=PANW
Context Example
{
"AlphaVantage": {
"StockData": {
"change": "5.9900",
"change percent": "1.8599%",
"high": "332.7650",
"latest trading day": "2021-04-01",
"low": "325.8500",
"open": "327.0000",
"previous close": "322.0600",
"price": "328.0500",
"symbol": "PANW",
"volume": "995632"
}
}
}
Human Readable Output
Results
change change percent high latest trading day low open previous close price symbol volume 5.9900 1.8599% 332.7650 2021-04-01 325.8500 327.0000 322.0600 328.0500 PANW 995632
alphavantage-stock-history-get
Gets historical data for a stock
Base Command
alphavantage-stock-history-get
Input
| Argument Name | Description | Required |
|---|---|---|
| symbol | Symbols of stocksto fetch. | Required |
| interval | Time interval between two data points. Possible values are: 1min, 5min, 15min, 30min, 60min. Default is 60min. | Optional |
| output_size | Amount of data return. Possible values are: compact, full. Default is compact. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| AlphaVantage.StockHistory.Information | String | Info about each time series |
| AlphaVantage.StockHistory.Interval | String | Time interval between two data samples |
| AlphaVantage.StockHistory.Last Refreshed | String | Last time the API data was refreshed |
| AlphaVantage.StockHistory.Output Size | String | Amount of data. Either last 100 samples or as much as possible |
| AlphaVantage.StockHistory.Symbol | String | Stock symbol |
| AlphaVantage.StockHistory.Time Series | Unknown | List of all stock data samples |
Command Example
!alphavantage-stock-history-get symbol=PANW interval=5min output_size=compact
Context Example
{
"AlphaVantage": {
"StockHistory": {
"Information": "Intraday (5min) open, high, low, close prices and volume",
"Interval": "5min",
"Last Refreshed": "2021-04-01 16:05:00",
"Output Size": "Compact",
"Symbol": "PANW",
"Time Series": {
"2021-03-31 14:45:00": {
"close": "324.1500",
"high": "324.4400",
"low": "323.4800",
"open": "324.2000",
"volume": "14877"
},
"2021-03-31 14:50:00": {
"close": "324.1300",
"high": "324.6900",
"low": "324.0800",
"open": "324.3850",
"volume": "7734"
},
"2021-03-31 14:55:00": {
"close": "324.4750",
"high": "324.4750",
"low": "323.7500",
"open": "323.9740",
"volume": "5611"
},
"2021-03-31 15:00:00": {
"close": "324.0300",
"high": "324.7500",
"low": "324.0300",
"open": "324.4800",
"volume": "7327"
},
"2021-03-31 15:05:00": {
"close": "325.0200",
"high": "325.0200",
"low": "324.3800",
"open": "324.3800",
"volume": "5967"
},
"2021-03-31 15:10:00": {
"close": "324.8600",
"high": "325.2500",
"low": "324.6000",
"open": "325.2500",
"volume": "5504"
},
"2021-03-31 15:15:00": {
"close": "324.8300",
"high": "325.1390",
"low": "324.6200",
"open": "324.6600",
"volume": "8099"
},
"2021-03-31 15:20:00": {
"close": "324.4100",
"high": "325.3150",
"low": "324.4100",
"open": "324.8500",
"volume": "12790"
},
"2021-03-31 15:25:00": {
"close": "323.8200",
"high": "324.7200",
"low": "323.8200",
"open": "324.3500",
"volume": "9676"
},
"2021-03-31 15:30:00": {
"close": "323.8900",
"high": "324.0000",
"low": "323.5700",
"open": "323.6400",
"volume": "16436"
},
"2021-03-31 15:35:00": {
"close": "324.1800",
"high": "324.3200",
"low": "323.4650",
"open": "323.8500",
"volume": "17200"
},
"2021-03-31 15:40:00": {
"close": "324.1800",
"high": "324.3850",
"low": "323.9150",
"open": "324.0200",
"volume": "18491"
},
"2021-03-31 15:45:00": {
"close": "324.9700",
"high": "325.1900",
"low": "324.0800",
"open": "324.2000",
"volume": "17295"
},
"2021-03-31 15:50:00": {
"close": "324.1700",
"high": "325.0000",
"low": "324.0000",
"open": "325.0000",
"volume": "12737"
},
"2021-03-31 15:55:00": {
"close": "323.0800",
"high": "324.4300",
"low": "322.9500",
"open": "324.0500",
"volume": "21790"
},
"2021-03-31 16:00:00": {
"close": "322.3000",
"high": "323.0900",
"low": "322.0600",
"open": "323.0300",
"volume": "75705"
},
"2021-03-31 16:05:00": {
"close": "322.0600",
"high": "322.0600",
"low": "322.0600",
"open": "322.0600",
"volume": "24212"
},
"2021-03-31 16:15:00": {
"close": "322.0600",
"high": "322.0600",
"low": "322.0600",
"open": "322.0600",
"volume": "8400"
},
"2021-03-31 16:25:00": {
"close": "322.0600",
"high": "322.0600",
"low": "322.0600",
"open": "322.0600",
"volume": "8400"
},
"2021-04-01 09:05:00": {
"close": "322.0600",
"high": "322.0600",
"low": "322.0600",
"open": "322.0600",
"volume": "2564"
},
"2021-04-01 09:30:00": {
"close": "327.5400",
"high": "327.5400",
"low": "327.0600",
"open": "327.0600",
"volume": "415"
},
"2021-04-01 09:35:00": {
"close": "330.7000",
"high": "330.9200",
"low": "327.0000",
"open": "327.0000",
"volume": "41300"
},
"2021-04-01 09:40:00": {
"close": "329.3700",
"high": "332.7650",
"low": "329.0000",
"open": "330.9900",
"volume": "17485"
},
"2021-04-01 09:45:00": {
"close": "329.2500",
"high": "330.2900",
"low": "329.0700",
"open": "329.3100",
"volume": "16405"
},
"2021-04-01 09:50:00": {
"close": "330.7800",
"high": "330.8000",
"low": "329.3400",
"open": "329.7350",
"volume": "7280"
},
"2021-04-01 09:55:00": {
"close": "330.5500",
"high": "331.0300",
"low": "330.0500",
"open": "330.4400",
"volume": "7345"
},
"2021-04-01 10:00:00": {
"close": "331.4200",
"high": "331.9900",
"low": "330.9000",
"open": "330.9200",
"volume": "13618"
},
"2021-04-01 10:05:00": {
"close": "329.4100",
"high": "332.0500",
"low": "329.4100",
"open": "331.7400",
"volume": "44828"
},
"2021-04-01 10:10:00": {
"close": "329.5100",
"high": "330.1799",
"low": "328.9784",
"open": "329.3200",
"volume": "22289"
},
"2021-04-01 10:15:00": {
"close": "329.7500",
"high": "329.8700",
"low": "328.8400",
"open": "329.7500",
"volume": "21910"
},
"2021-04-01 10:20:00": {
"close": "329.8800",
"high": "329.8800",
"low": "328.4100",
"open": "329.8200",
"volume": "6477"
},
"2021-04-01 10:25:00": {
"close": "329.2800",
"high": "329.9400",
"low": "328.6400",
"open": "329.5800",
"volume": "5200"
},
"2021-04-01 10:30:00": {
"close": "329.8350",
"high": "330.0800",
"low": "329.0700",
"open": "329.3900",
"volume": "11445"
},
"2021-04-01 10:35:00": {
"close": "329.7950",
"high": "330.5500",
"low": "329.4600",
"open": "330.1300",
"volume": "8154"
},
"2021-04-01 10:40:00": {
"close": "329.3300",
"high": "330.1100",
"low": "329.3300",
"open": "330.1000",
"volume": "8729"
},
"2021-04-01 10:45:00": {
"close": "330.5400",
"high": "330.7000",
"low": "329.2700",
"open": "329.2700",
"volume": "8210"
},
"2021-04-01 10:50:00": {
"close": "330.0800",
"high": "330.4700",
"low": "329.9800",
"open": "330.3450",
"volume": "6976"
},
"2021-04-01 10:55:00": {
"close": "329.9000",
"high": "330.4800",
"low": "329.9000",
"open": "330.1800",
"volume": "6522"
},
"2021-04-01 11:00:00": {
"close": "329.9400",
"high": "329.9500",
"low": "329.2150",
"open": "329.8100",
"volume": "10622"
},
"2021-04-01 11:05:00": {
"close": "330.3000",
"high": "330.3700",
"low": "329.4800",
"open": "329.9300",
"volume": "6394"
},
"2021-04-01 11:10:00": {
"close": "328.3300",
"high": "330.0700",
"low": "328.3300",
"open": "330.0700",
"volume": "7340"
},
"2021-04-01 11:15:00": {
"close": "328.1500",
"high": "328.4350",
"low": "327.8600",
"open": "328.1900",
"volume": "10997"
},
"2021-04-01 11:20:00": {
"close": "326.8909",
"high": "327.9200",
"low": "326.7000",
"open": "327.8300",
"volume": "13479"
},
"2021-04-01 11:25:00": {
"close": "327.7300",
"high": "328.1200",
"low": "326.9500",
"open": "326.9500",
"volume": "7789"
},
"2021-04-01 11:30:00": {
"close": "328.8300",
"high": "328.8700",
"low": "327.4600",
"open": "327.4600",
"volume": "9577"
},
"2021-04-01 11:35:00": {
"close": "329.4800",
"high": "329.5800",
"low": "329.1300",
"open": "329.1300",
"volume": "9107"
},
"2021-04-01 11:40:00": {
"close": "328.3748",
"high": "329.4600",
"low": "328.3748",
"open": "329.4600",
"volume": "13143"
},
"2021-04-01 11:45:00": {
"close": "327.5600",
"high": "328.4600",
"low": "327.3800",
"open": "328.4600",
"volume": "19241"
},
"2021-04-01 11:50:00": {
"close": "328.8784",
"high": "328.9200",
"low": "327.6050",
"open": "327.6700",
"volume": "6235"
},
"2021-04-01 11:55:00": {
"close": "328.9200",
"high": "329.2350",
"low": "328.7100",
"open": "328.9000",
"volume": "9322"
},
"2021-04-01 12:00:00": {
"close": "328.0800",
"high": "329.0800",
"low": "328.0800",
"open": "328.9550",
"volume": "7043"
},
"2021-04-01 12:05:00": {
"close": "328.3300",
"high": "328.6800",
"low": "328.0600",
"open": "328.2500",
"volume": "7816"
},
"2021-04-01 12:10:00": {
"close": "328.7408",
"high": "328.9650",
"low": "328.5100",
"open": "328.5300",
"volume": "8472"
},
"2021-04-01 12:15:00": {
"close": "327.9900",
"high": "328.5800",
"low": "327.7800",
"open": "328.4300",
"volume": "6726"
},
"2021-04-01 12:20:00": {
"close": "328.6100",
"high": "328.6900",
"low": "327.7600",
"open": "327.8650",
"volume": "7855"
},
"2021-04-01 12:25:00": {
"close": "327.5400",
"high": "328.4750",
"low": "327.4900",
"open": "328.4750",
"volume": "7528"
},
"2021-04-01 12:30:00": {
"close": "328.3200",
"high": "328.3200",
"low": "327.4300",
"open": "327.6200",
"volume": "6316"
},
"2021-04-01 12:35:00": {
"close": "328.0100",
"high": "328.7700",
"low": "328.0100",
"open": "328.7700",
"volume": "7293"
},
"2021-04-01 12:40:00": {
"close": "327.2200",
"high": "327.7800",
"low": "326.9600",
"open": "327.7800",
"volume": "9155"
},
"2021-04-01 12:45:00": {
"close": "328.4200",
"high": "328.4800",
"low": "327.2200",
"open": "327.2700",
"volume": "36983"
},
"2021-04-01 12:50:00": {
"close": "327.7300",
"high": "328.8100",
"low": "327.7300",
"open": "328.4620",
"volume": "9833"
},
"2021-04-01 12:55:00": {
"close": "327.6400",
"high": "327.8200",
"low": "327.3900",
"open": "327.3900",
"volume": "6860"
},
"2021-04-01 13:00:00": {
"close": "327.9100",
"high": "328.2000",
"low": "327.7200",
"open": "327.7200",
"volume": "7487"
},
"2021-04-01 13:05:00": {
"close": "327.8300",
"high": "328.5100",
"low": "327.8100",
"open": "328.1900",
"volume": "11032"
},
"2021-04-01 13:10:00": {
"close": "327.0400",
"high": "327.7950",
"low": "327.0400",
"open": "327.7950",
"volume": "6693"
},
"2021-04-01 13:15:00": {
"close": "327.1800",
"high": "327.4250",
"low": "326.7500",
"open": "327.0300",
"volume": "8645"
},
"2021-04-01 13:20:00": {
"close": "326.3250",
"high": "327.3750",
"low": "326.3200",
"open": "327.3750",
"volume": "8253"
},
"2021-04-01 13:25:00": {
"close": "326.8500",
"high": "326.9200",
"low": "326.2400",
"open": "326.4700",
"volume": "5543"
},
"2021-04-01 13:30:00": {
"close": "327.0150",
"high": "327.1700",
"low": "326.8000",
"open": "326.8800",
"volume": "7837"
},
"2021-04-01 13:35:00": {
"close": "327.6350",
"high": "327.6500",
"low": "326.8300",
"open": "326.9800",
"volume": "9763"
},
"2021-04-01 13:40:00": {
"close": "328.3700",
"high": "328.4000",
"low": "327.4600",
"open": "327.4600",
"volume": "13188"
},
"2021-04-01 13:45:00": {
"close": "326.9350",
"high": "328.1900",
"low": "326.9350",
"open": "328.1500",
"volume": "10697"
},
"2021-04-01 13:50:00": {
"close": "326.6050",
"high": "327.0700",
"low": "326.3600",
"open": "327.0700",
"volume": "7741"
},
"2021-04-01 13:55:00": {
"close": "326.8300",
"high": "326.8850",
"low": "326.5300",
"open": "326.6700",
"volume": "7592"
},
"2021-04-01 14:00:00": {
"close": "326.2700",
"high": "326.9700",
"low": "326.2700",
"open": "326.8350",
"volume": "6317"
},
"2021-04-01 14:05:00": {
"close": "326.4200",
"high": "326.5300",
"low": "326.2100",
"open": "326.4000",
"volume": "7903"
},
"2021-04-01 14:10:00": {
"close": "326.2600",
"high": "326.7250",
"low": "325.8500",
"open": "326.3300",
"volume": "19968"
},
"2021-04-01 14:15:00": {
"close": "327.4900",
"high": "327.4900",
"low": "326.3000",
"open": "326.3000",
"volume": "8419"
},
"2021-04-01 14:20:00": {
"close": "326.7900",
"high": "327.3300",
"low": "326.5600",
"open": "327.3300",
"volume": "9085"
},
"2021-04-01 14:25:00": {
"close": "327.3500",
"high": "327.4900",
"low": "326.7300",
"open": "326.8000",
"volume": "8359"
},
"2021-04-01 14:30:00": {
"close": "326.8400",
"high": "327.2300",
"low": "326.6800",
"open": "327.2300",
"volume": "8482"
},
"2021-04-01 14:35:00": {
"close": "326.9300",
"high": "327.1300",
"low": "326.8300",
"open": "326.9600",
"volume": "7836"
},
"2021-04-01 14:40:00": {
"close": "326.8200",
"high": "327.0200",
"low": "326.4250",
"open": "326.9495",
"volume": "12190"
},
"2021-04-01 14:45:00": {
"close": "326.8100",
"high": "326.8700",
"low": "326.6200",
"open": "326.6950",
"volume": "2254"
},
"2021-04-01 14:50:00": {
"close": "327.0800",
"high": "327.2300",
"low": "326.3300",
"open": "326.8200",
"volume": "13308"
},
"2021-04-01 14:55:00": {
"close": "327.1700",
"high": "327.3300",
"low": "326.9700",
"open": "327.1100",
"volume": "9227"
},
"2021-04-01 15:00:00": {
"close": "327.2650",
"high": "327.8700",
"low": "327.1800",
"open": "327.1900",
"volume": "12801"
},
"2021-04-01 15:05:00": {
"close": "326.6100",
"high": "327.3700",
"low": "326.4200",
"open": "327.2600",
"volume": "15935"
},
"2021-04-01 15:10:00": {
"close": "326.9200",
"high": "327.0900",
"low": "326.5000",
"open": "326.5000",
"volume": "23641"
},
"2021-04-01 15:15:00": {
"close": "326.1700",
"high": "326.8500",
"low": "326.1700",
"open": "326.8400",
"volume": "11739"
},
"2021-04-01 15:20:00": {
"close": "326.8700",
"high": "326.9400",
"low": "326.1700",
"open": "326.1700",
"volume": "11382"
},
"2021-04-01 15:25:00": {
"close": "326.8000",
"high": "327.0000",
"low": "326.5800",
"open": "327.0000",
"volume": "9400"
},
"2021-04-01 15:30:00": {
"close": "327.1000",
"high": "327.1100",
"low": "326.7913",
"open": "326.9500",
"volume": "9949"
},
"2021-04-01 15:35:00": {
"close": "327.0300",
"high": "327.4700",
"low": "327.0200",
"open": "327.1000",
"volume": "12255"
},
"2021-04-01 15:40:00": {
"close": "326.8400",
"high": "327.0400",
"low": "326.3700",
"open": "327.0400",
"volume": "16750"
},
"2021-04-01 15:45:00": {
"close": "326.5900",
"high": "326.8500",
"low": "326.3000",
"open": "326.7900",
"volume": "16489"
},
"2021-04-01 15:50:00": {
"close": "327.0800",
"high": "327.3900",
"low": "326.5800",
"open": "326.6050",
"volume": "14594"
},
"2021-04-01 15:55:00": {
"close": "326.9000",
"high": "327.6100",
"low": "326.8800",
"open": "327.0800",
"volume": "25794"
},
"2021-04-01 16:00:00": {
"close": "328.2700",
"high": "328.2800",
"low": "326.9100",
"open": "326.9100",
"volume": "50395"
},
"2021-04-01 16:05:00": {
"close": "328.0500",
"high": "328.0500",
"low": "328.0500",
"open": "328.0500",
"volume": "2197"
}
},
"Time Zone": "US/Eastern"
}
}
}
Human Readable Output
Stock History (Interval: 5min)
2021-03-31 14:45:00 2021-03-31 14:50:00 2021-03-31 14:55:00 2021-03-31 15:00:00 2021-03-31 15:05:00 2021-03-31 15:10:00 2021-03-31 15:15:00 2021-03-31 15:20:00 2021-03-31 15:25:00 2021-03-31 15:30:00 2021-03-31 15:35:00 2021-03-31 15:40:00 2021-03-31 15:45:00 2021-03-31 15:50:00 2021-03-31 15:55:00 2021-03-31 16:00:00 2021-03-31 16:05:00 2021-03-31 16:15:00 2021-03-31 16:25:00 2021-04-01 09:05:00 2021-04-01 09:30:00 2021-04-01 09:35:00 2021-04-01 09:40:00 2021-04-01 09:45:00 2021-04-01 09:50:00 2021-04-01 09:55:00 2021-04-01 10:00:00 2021-04-01 10:05:00 2021-04-01 10:10:00 2021-04-01 10:15:00 2021-04-01 10:20:00 2021-04-01 10:25:00 2021-04-01 10:30:00 2021-04-01 10:35:00 2021-04-01 10:40:00 2021-04-01 10:45:00 2021-04-01 10:50:00 2021-04-01 10:55:00 2021-04-01 11:00:00 2021-04-01 11:05:00 2021-04-01 11:10:00 2021-04-01 11:15:00 2021-04-01 11:20:00 2021-04-01 11:25:00 2021-04-01 11:30:00 2021-04-01 11:35:00 2021-04-01 11:40:00 2021-04-01 11:45:00 2021-04-01 11:50:00 2021-04-01 11:55:00 2021-04-01 12:00:00 2021-04-01 12:05:00 2021-04-01 12:10:00 2021-04-01 12:15:00 2021-04-01 12:20:00 2021-04-01 12:25:00 2021-04-01 12:30:00 2021-04-01 12:35:00 2021-04-01 12:40:00 2021-04-01 12:45:00 2021-04-01 12:50:00 2021-04-01 12:55:00 2021-04-01 13:00:00 2021-04-01 13:05:00 2021-04-01 13:10:00 2021-04-01 13:15:00 2021-04-01 13:20:00 2021-04-01 13:25:00 2021-04-01 13:30:00 2021-04-01 13:35:00 2021-04-01 13:40:00 2021-04-01 13:45:00 2021-04-01 13:50:00 2021-04-01 13:55:00 2021-04-01 14:00:00 2021-04-01 14:05:00 2021-04-01 14:10:00 2021-04-01 14:15:00 2021-04-01 14:20:00 2021-04-01 14:25:00 2021-04-01 14:30:00 2021-04-01 14:35:00 2021-04-01 14:40:00 2021-04-01 14:45:00 2021-04-01 14:50:00 2021-04-01 14:55:00 2021-04-01 15:00:00 2021-04-01 15:05:00 2021-04-01 15:10:00 2021-04-01 15:15:00 2021-04-01 15:20:00 2021-04-01 15:25:00 2021-04-01 15:30:00 2021-04-01 15:35:00 2021-04-01 15:40:00 2021-04-01 15:45:00 2021-04-01 15:50:00 2021-04-01 15:55:00 2021-04-01 16:00:00 2021-04-01 16:05:00 open: 324.2000
high: 324.4400
low: 323.4800
close: 324.1500
volume: 14877open: 324.3850
high: 324.6900
low: 324.0800
close: 324.1300
volume: 7734open: 323.9740
high: 324.4750
low: 323.7500
close: 324.4750
volume: 5611open: 324.4800
high: 324.7500
low: 324.0300
close: 324.0300
volume: 7327open: 324.3800
high: 325.0200
low: 324.3800
close: 325.0200
volume: 5967open: 325.2500
high: 325.2500
low: 324.6000
close: 324.8600
volume: 5504open: 324.6600
high: 325.1390
low: 324.6200
close: 324.8300
volume: 8099open: 324.8500
high: 325.3150
low: 324.4100
close: 324.4100
volume: 12790open: 324.3500
high: 324.7200
low: 323.8200
close: 323.8200
volume: 9676open: 323.6400
high: 324.0000
low: 323.5700
close: 323.8900
volume: 16436open: 323.8500
high: 324.3200
low: 323.4650
close: 324.1800
volume: 17200open: 324.0200
high: 324.3850
low: 323.9150
close: 324.1800
volume: 18491open: 324.2000
high: 325.1900
low: 324.0800
close: 324.9700
volume: 17295open: 325.0000
high: 325.0000
low: 324.0000
close: 324.1700
volume: 12737open: 324.0500
high: 324.4300
low: 322.9500
close: 323.0800
volume: 21790open: 323.0300
high: 323.0900
low: 322.0600
close: 322.3000
volume: 75705open: 322.0600
high: 322.0600
low: 322.0600
close: 322.0600
volume: 24212open: 322.0600
high: 322.0600
low: 322.0600
close: 322.0600
volume: 8400open: 322.0600
high: 322.0600
low: 322.0600
close: 322.0600
volume: 8400open: 322.0600
high: 322.0600
low: 322.0600
close: 322.0600
volume: 2564open: 327.0600
high: 327.5400
low: 327.0600
close: 327.5400
volume: 415open: 327.0000
high: 330.9200
low: 327.0000
close: 330.7000
volume: 41300open: 330.9900
high: 332.7650
low: 329.0000
close: 329.3700
volume: 17485open: 329.3100
high: 330.2900
low: 329.0700
close: 329.2500
volume: 16405open: 329.7350
high: 330.8000
low: 329.3400
close: 330.7800
volume: 7280open: 330.4400
high: 331.0300
low: 330.0500
close: 330.5500
volume: 7345open: 330.9200
high: 331.9900
low: 330.9000
close: 331.4200
volume: 13618open: 331.7400
high: 332.0500
low: 329.4100
close: 329.4100
volume: 44828open: 329.3200
high: 330.1799
low: 328.9784
close: 329.5100
volume: 22289open: 329.7500
high: 329.8700
low: 328.8400
close: 329.7500
volume: 21910open: 329.8200
high: 329.8800
low: 328.4100
close: 329.8800
volume: 6477open: 329.5800
high: 329.9400
low: 328.6400
close: 329.2800
volume: 5200open: 329.3900
high: 330.0800
low: 329.0700
close: 329.8350
volume: 11445open: 330.1300
high: 330.5500
low: 329.4600
close: 329.7950
volume: 8154open: 330.1000
high: 330.1100
low: 329.3300
close: 329.3300
volume: 8729open: 329.2700
high: 330.7000
low: 329.2700
close: 330.5400
volume: 8210open: 330.3450
high: 330.4700
low: 329.9800
close: 330.0800
volume: 6976open: 330.1800
high: 330.4800
low: 329.9000
close: 329.9000
volume: 6522open: 329.8100
high: 329.9500
low: 329.2150
close: 329.9400
volume: 10622open: 329.9300
high: 330.3700
low: 329.4800
close: 330.3000
volume: 6394open: 330.0700
high: 330.0700
low: 328.3300
close: 328.3300
volume: 7340open: 328.1900
high: 328.4350
low: 327.8600
close: 328.1500
volume: 10997open: 327.8300
high: 327.9200
low: 326.7000
close: 326.8909
volume: 13479open: 326.9500
high: 328.1200
low: 326.9500
close: 327.7300
volume: 7789open: 327.4600
high: 328.8700
low: 327.4600
close: 328.8300
volume: 9577open: 329.1300
high: 329.5800
low: 329.1300
close: 329.4800
volume: 9107open: 329.4600
high: 329.4600
low: 328.3748
close: 328.3748
volume: 13143open: 328.4600
high: 328.4600
low: 327.3800
close: 327.5600
volume: 19241open: 327.6700
high: 328.9200
low: 327.6050
close: 328.8784
volume: 6235open: 328.9000
high: 329.2350
low: 328.7100
close: 328.9200
volume: 9322open: 328.9550
high: 329.0800
low: 328.0800
close: 328.0800
volume: 7043open: 328.2500
high: 328.6800
low: 328.0600
close: 328.3300
volume: 7816open: 328.5300
high: 328.9650
low: 328.5100
close: 328.7408
volume: 8472open: 328.4300
high: 328.5800
low: 327.7800
close: 327.9900
volume: 6726open: 327.8650
high: 328.6900
low: 327.7600
close: 328.6100
volume: 7855open: 328.4750
high: 328.4750
low: 327.4900
close: 327.5400
volume: 7528open: 327.6200
high: 328.3200
low: 327.4300
close: 328.3200
volume: 6316open: 328.7700
high: 328.7700
low: 328.0100
close: 328.0100
volume: 7293open: 327.7800
high: 327.7800
low: 326.9600
close: 327.2200
volume: 9155open: 327.2700
high: 328.4800
low: 327.2200
close: 328.4200
volume: 36983open: 328.4620
high: 328.8100
low: 327.7300
close: 327.7300
volume: 9833open: 327.3900
high: 327.8200
low: 327.3900
close: 327.6400
volume: 6860open: 327.7200
high: 328.2000
low: 327.7200
close: 327.9100
volume: 7487open: 328.1900
high: 328.5100
low: 327.8100
close: 327.8300
volume: 11032open: 327.7950
high: 327.7950
low: 327.0400
close: 327.0400
volume: 6693open: 327.0300
high: 327.4250
low: 326.7500
close: 327.1800
volume: 8645open: 327.3750
high: 327.3750
low: 326.3200
close: 326.3250
volume: 8253open: 326.4700
high: 326.9200
low: 326.2400
close: 326.8500
volume: 5543open: 326.8800
high: 327.1700
low: 326.8000
close: 327.0150
volume: 7837open: 326.9800
high: 327.6500
low: 326.8300
close: 327.6350
volume: 9763open: 327.4600
high: 328.4000
low: 327.4600
close: 328.3700
volume: 13188open: 328.1500
high: 328.1900
low: 326.9350
close: 326.9350
volume: 10697open: 327.0700
high: 327.0700
low: 326.3600
close: 326.6050
volume: 7741open: 326.6700
high: 326.8850
low: 326.5300
close: 326.8300
volume: 7592open: 326.8350
high: 326.9700
low: 326.2700
close: 326.2700
volume: 6317open: 326.4000
high: 326.5300
low: 326.2100
close: 326.4200
volume: 7903open: 326.3300
high: 326.7250
low: 325.8500
close: 326.2600
volume: 19968open: 326.3000
high: 327.4900
low: 326.3000
close: 327.4900
volume: 8419open: 327.3300
high: 327.3300
low: 326.5600
close: 326.7900
volume: 9085open: 326.8000
high: 327.4900
low: 326.7300
close: 327.3500
volume: 8359open: 327.2300
high: 327.2300
low: 326.6800
close: 326.8400
volume: 8482open: 326.9600
high: 327.1300
low: 326.8300
close: 326.9300
volume: 7836open: 326.9495
high: 327.0200
low: 326.4250
close: 326.8200
volume: 12190open: 326.6950
high: 326.8700
low: 326.6200
close: 326.8100
volume: 2254open: 326.8200
high: 327.2300
low: 326.3300
close: 327.0800
volume: 13308open: 327.1100
high: 327.3300
low: 326.9700
close: 327.1700
volume: 9227open: 327.1900
high: 327.8700
low: 327.1800
close: 327.2650
volume: 12801open: 327.2600
high: 327.3700
low: 326.4200
close: 326.6100
volume: 15935open: 326.5000
high: 327.0900
low: 326.5000
close: 326.9200
volume: 23641open: 326.8400
high: 326.8500
low: 326.1700
close: 326.1700
volume: 11739open: 326.1700
high: 326.9400
low: 326.1700
close: 326.8700
volume: 11382open: 327.0000
high: 327.0000
low: 326.5800
close: 326.8000
volume: 9400open: 326.9500
high: 327.1100
low: 326.7913
close: 327.1000
volume: 9949open: 327.1000
high: 327.4700
low: 327.0200
close: 327.0300
volume: 12255open: 327.0400
high: 327.0400
low: 326.3700
close: 326.8400
volume: 16750open: 326.7900
high: 326.8500
low: 326.3000
close: 326.5900
volume: 16489open: 326.6050
high: 327.3900
low: 326.5800
close: 327.0800
volume: 14594open: 327.0800
high: 327.6100
low: 326.8800
close: 326.9000
volume: 25794open: 326.9100
high: 328.2800
low: 326.9100
close: 328.2700
volume: 50395open: 328.0500
high: 328.0500
low: 328.0500
close: 328.0500
volume: 2197
Configuration parameters
api_key— API Key (required)insecure— Trust any certificate (not secure)proxy— Use system proxy settings
Commands (2)
-
alphavantage-stock-data-getGets data for a stock.
-
alphavantage-stock-history-getGets historical data for a stock.
""" AlphaVantage is a stock data API """ import urllib3 from CommonServerPython import * # noqa # pylint: disable=unused-wildcard-import from CommonServerUserPython import * # noqa # Disable insecure warnings urllib3.disable_warnings() # pylint: disable=no-member """ CONSTANTS """ DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ" # ISO8601 format with UTC, default in XSOAR """ CLIENT CLASS """ class Client(BaseClient): """Client class to interact with the service API This Client implements API calls, and does not contain any XSOAR logic. Should only do requests and return data. It inherits from BaseClient defined in CommonServer Python. Most calls use _http_request() that handles proxy, SSL verification, etc. For this implementation, no special attributes defined """ def __init__(self, params, base_url, verify): self.api_key = params.get("api_key") super().__init__(base_url, verify) def _http_request( # type: ignore[override] self, method, url_suffix="", full_url=None, headers=None, auth=None, json_data=None, params=None, data=None, files=None, timeout=10, resp_type="json", ok_codes=None, return_empty_response=False, retries=0, status_list_to_retry=None, backoff_factor=5, raise_on_redirect=False, raise_on_status=False, error_handler=None, empty_valid_codes=None, **kwargs, ): """Adding API key and handling errors.""" if not params: params = {} params["apikey"] = self.api_key response = super()._http_request( method, url_suffix=url_suffix, full_url=full_url, headers=headers, auth=auth, json_data=json_data, params=params, data=data, files=files, timeout=timeout, resp_type=resp_type, ok_codes=ok_codes, return_empty_response=return_empty_response, retries=retries, status_list_to_retry=status_list_to_retry, backoff_factor=backoff_factor, raise_on_redirect=raise_on_redirect, raise_on_status=raise_on_status, error_handler=error_handler, empty_valid_codes=empty_valid_codes, **kwargs, ) if error_message := response.get("Error Message"): raise DemistoException(error_message) return response def get_stock_history(self, symbol: str, interval: str, output_size: str = "compact") -> dict: """Gets stock history data Documentation Link: https://www.alphavantage.co/documentation/#intraday https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&interval=5min&outputsize=full&apikey=demo Args: symbol: the stock's ticker/symbol: MSFT, AAPL etc interval: 1min, 5min, 15min, 30min, 60min output_size: compact - latest 100 data points, full - full length array Returns: JSON Response """ params = { "function": "TIME_SERIES_INTRADAY", "symbol": symbol, "interval": interval, "outputsize": output_size, } return self._http_request(method="GET", params=params) def get_stock_data(self, symbol: str) -> dict: """Gets stock data about last trading day: Documentation Link: https://www.alphavantage.co/documentation/#latestprice Example: https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=IBM&apikey=demo Args: symbol: The stock's symbol/ticker. Example: PANW, AAPL, MSFT etc Returns: JSON Response """ params = { "function": "GLOBAL_QUOTE", "symbol": symbol, "datatype": "json", } return self._http_request(method="GET", params=params) # region Helper Function def remove_indexing_from_dictionary_keys(api_response: dict, regex: re.Pattern = re.compile(r"^[0-9][0-9]*\.\s*")) -> dict: """Removes the running index from the keys in a json 01.Key -> Key 01. Key -> Key Args: regex: expression to filter out api_response: json response from api Returns: json response without the unnecessary indices at first """ return {regex.sub("", key): value for key, value in api_response.items()} # endregion # region Commands def test_module(client: Client) -> str: """Tests API connectivity and authentication' Returning 'ok' indicates that the integration works like it is supposed to. Connection to the service is successful. Raises exceptions if something goes wrong. Args: client: client to use Returns: 'ok' if test passed, anything else will fail the test. """ client.get_stock_data(symbol="PANW") return "ok" def get_stock_data(client: Client, args: Dict[str, Any]) -> List[CommandResults]: symbols = argToList(args.get("symbol")) if not symbols: raise ValueError("symbol not specified") # Call the Client function and get the raw response results = [] for symbol in symbols: raw_api_response = client.get_stock_data(symbol) outputs = remove_indexing_from_dictionary_keys(raw_api_response.get("Global Quote", {})) results.append( CommandResults( outputs_prefix="AlphaVantage.StockData", outputs_key_field="symbol", outputs=outputs, raw_response=raw_api_response, ) ) return results def get_stock_history(client: Client, args: Dict[str, Any]) -> List[CommandResults]: symbols = argToList(args["symbol"]) interval = args["interval"] output_size = args["output_size"] if not symbols: raise ValueError("symbol not specified") # Call the Client function and get the raw response results = [] for symbol in symbols: raw_api_response = client.get_stock_history(symbol=symbol, interval=interval, output_size=output_size) outputs = { **remove_indexing_from_dictionary_keys(raw_api_response.get("Meta Data", {})), "Time Series": { key: remove_indexing_from_dictionary_keys(value) for key, value in raw_api_response.get(f"Time Series ({interval})", {}).items() }, } results.append( CommandResults( readable_output=tableToMarkdown(f"Stock History (Interval: {interval})", outputs.get("Time Series", {})), outputs_prefix="AlphaVantage.StockHistory", outputs_key_field=["Symbol", "Last Refreshed", "Interval"], outputs=outputs, raw_response=raw_api_response, ) ) return results # endregion def main(): """main function, parses params and runs command functions""" result: Union[CommandResults, List[CommandResults], str] params = demisto.params() args = demisto.args() base_url = "https://www.alphavantage.co/query?" verify_certificate = not params.get("insecure", False) client = Client( base_url=base_url, params=params, verify=verify_certificate, ) command = demisto.command() demisto.debug(f"Command being called is {demisto.command()}") try: if command == "test-module": # This is the call made when pressing the integration Test button. result = test_module(client) elif command == "alphavantage-stock-data-get": result = get_stock_data(client, args) elif command == "alphavantage-stock-history-get": result = get_stock_history(client, args) else: raise NotImplementedError(f"{command} Not Implemented") return_results(result) # Log exceptions and return errors except Exception as e: demisto.error(traceback.format_exc()) # print the traceback return_error(f"Failed to execute {command} command.\nError:\n{str(e)}") """ ENTRY POINT """ if __name__ in ("__main__", "__builtin__", "builtins"): main()