Alpha Vantage Intraday Coverage for Foreign Stocks
Summary
The discussion explains a data-coverage limitation encountered when building a pandas dataset of a US-listed ADR, its foreign ordinary shares, and the exchange rate between them. The questioner finds a London ticker symbol through the provider's symbol search but receives an invalid-call error when requesting minute-level intraday data. The accepted answer attributes this to Alpha Vantage's intraday equity feed being based on US Securities Information Processor data, which consolidates US exchange quotes and trades.
According to the answer, the intraday endpoint supports US-listed equities, while daily adjusted prices may be available for the London listing. Minute-level London data therefore requires another provider. A second response mentions Yahoo Finance as an alternative, but presents only a brief code sketch and describes the API as unofficial; it does not establish that the source provides reliable or complete intraday coverage. The discussion is specific to the cited service and endpoint and does not compare data quality or licensing across providers.
Key ideas
- The discussed Alpha Vantage intraday equity endpoint supports US-listed stocks rather than foreign listings.
- The answer links that coverage limit to the endpoint's use of a US market-aggregated data feed.
- Daily adjusted prices for the London listing may be available through a separate endpoint.
- Minute-level foreign-market data requires another source, and the suggested alternative is not evaluated for reliability.
Tags
Full text
# Alpha Vantage API time series intraday for foreign stocks into a pandas df
# Alpha Vantage API time series intraday for foreign stocks into a pandas df
I need to compile stock price data for ADR and ORD pairs (and the currency between them) into a Pandas dataframe. I just started using the Alpha Vantage API for this, which works great for getting the US-listed stock prices (at the minute timescale) and the currency rate, but I haven't figured out how to get the foreign-listed stock prices (ORDs). I was almost positive it would've simply been a ticker.exchange type input, but that hasn't seemed to work.
The code below is what I've used in my Jupiter Notebook to get the ADR for Diageo Plc.
```
from alpha_vantage.timeseries import TimeSeries
from pprint import pprint
ts = TimeSeries(key='YOUR_AV_KEY', output_format='pandas')
data, meta_data = ts.get_intraday(symbol='DEO',interval='1min', outputsize='full')
pprint(data.head(20))
```
To find the ticker.exchange symbol for Diageo Plc. on the London exchange, I used this query: https://www.alphavantage.co/query?function=SYMBOL_SEARCH&keywords=Diageo&apikey=$
which gave DGE.LON as the ticker.exchange code. When switching 'DEO' in the above code with 'DGE.LON', I get the following error: Invalid API call. Please retry or visit the documentation (https://www.alphavantage.co/documentation/) for TIME_SERIES_INTRADAY
Is the time series intraday API only for US equity? Is there a way for me to get minute by minute pricing data for DGE.LON through Alpha Vantage?
## Answer by Pleb (score 0, accepted)
https://quant.stackexchange.com/a/61377
Is the time series intraday API only for US equity? It only works for equities listed on US exchanges.
AlphaVantage computes intraday data directly from the market-aggregated data feed of the Securities Information Processors (SIP), which is also written in the documentation. SIP links the US markets by processing and consolidating all bid/ask quotes and trades from every trading venue into a single data feed (you can read more about it here). This implies that the intraday data feed is solely based on US exchanges and therefore symbol calls like "DGE.LON" does not work in this setup.
You can, however, get daily adjusted close values from London stock exchange using the call:
```
data, meta_data = ts.get_daily_adjusted(symbol='DGE.LON', outputsize='full')
```
If you want to use intraday data from London stock exchange, you have to find other means of obtaining the data.
## Answer by Nikolai Kl (score 0)
https://quant.stackexchange.com/a/61380
You can also use yfinance, the inofficial yahoo finance api, to download that kind of market data. I worked on a student project latetly and wrote a function which you can find underneath:
```
import numpy as np
import pandas as pd
import yfinance as yf
def get_tickers(stocks, start, end):
stocks = pd.DataFrame()
tickers = stocks
for ticker in tickers:
stockdata = yf.download(ticker, start = start, end=end, progress=False)
stockdata.columns = stocks
return stocks
```Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.