addisonlynch / iexfinance

Python SDK for IEX Cloud
https://addisonlynch.github.io/iexfinance
Apache License 2.0
649 stars 136 forks source link

Query Issue, Server Side #161

Closed Xnetter closed 3 years ago

Xnetter commented 5 years ago

Summary (include Python version)

Python 3.6

Date/time of issue

7/17/2019 7-8:00 pm

Expected behavior

stock_item = Stock.("AAPL", token = MY_AUTH_TOKEN) stock_item.get_price() should yield the current price,

Actual behavior

Instead I get a query error. "iexfinance.utils.exceptions.IEXQueryError: An error occurred while making the query." No, it is not an authentication or message usage issue. I am under my quota (only 58 messages) and also have tried the tokens of various other accounts, several times. Will try again later. Uninstalled and reinstalled package several times, both through pip and git clone.

sanderlacerda commented 5 years ago

I have the same problem.

chries89 commented 5 years ago

me too :/

LaughableStack commented 5 years ago

As am I

addisonlynch commented 5 years ago

Having a hard time reproducing this. 0.4.2 works for me in Python 3.6.8 and 3.7.0. Is it still throwing IEXQueryError?

LaughableStack commented 5 years ago

Howdy. I just got this error today on 3.7.x, so it's still there. Try making a fresh account and using that key.

addisonlynch commented 5 years ago

I tried with a free tier account and got the following:

The requested data is not available to free tier accounts. Please upgrade for access to this data.

For:

https://cloud.iexapis.com/v1/stock/AAPL/price?token=

https://cloud.iexapis.com/v1/stock/AAPL/chart/1d?token=

Which correspond to the code in the comments above. I will contact the provider to see if any free tier access has changed, but per their site, all equities data is included:

Screen Shot 2019-07-19 at 9 13 10 PM

Both calls above are fine with a launch account. I will work to improve error handling on these types of calls as well such that the exception raised will be more clear.

addisonlynch commented 5 years ago

Provider issue opened:

https://github.com/iexg/IEX-API/issues/1135

Xnetter commented 5 years ago

I tried from their dashboard, and was able to request price information (although I don't know if I checked Apple specifically) but when I tried through the API token I got an error.

w601sxs commented 5 years ago

@Xnetter and @addisonlynch,

I tried from their dashboard with AAPL, and had no errors for chart and symbol APIs. With the token, I get an error.

addisonlynch commented 5 years ago

Per the provider:

Hello,

We recently contacted you regarding upcoming changes surrounding Nasdaq-listed stock data (which is UTP data) on IEX Cloud.

As a reminder, if you use Nasdaq UTP data, please ensure that you carefully review the following details and next steps.

Due to data provider policy, effective Wednesday, July 31, certain fields for Nasdaq-listed stock data (UTP data) will only be available through IEX Cloud if you are on a Launch, Grow, or Scale plan and authorized by UTP directly to continue to receive UTP data. UTP data has already been removed from Start plans.

What does that mean for you? Nasdaq controls UTP consolidated delayed stock prices for companies listed on Nasdaq (i.e., UTP, Nasdaq UTP or “Tape C” securities). That means that all 15-minute delayed intraday price data for Nasdaq-listed stocks will be impacted.

To be clear, IEX Cloud will continue to provide non-delayed intraday data for all stocks when those quotes and trades occur on the Investors Exchange. That’s a lot of data! However, for Nasdaq-listed stocks only, you will notice that some key points such as the official opening and closing price as well as pre- and post-market prices (before 9:30 am ET and after 4:00 pm ET) will be missing. Data for non-Nasdaq listed stocks will not be affected. The full list of affected endpoints for Nasdaq-listed stocks is below.

What if you want to keep receiving this data? If you’d like to get authorization to receive this data through IEX Cloud or any other data vendor (Nasdaq UTP's policy applies to all redistributors of Nasdaq UTP data) you’ll need to fill out Nasdaq UTP’s forms and pay the applicable fees, which start at $250 per year (additional Nasdaq UTP fees may apply). When you are approved to receive Nasdaq UTP data, Nasdaq UTP will alert IEX Cloud, at which point access to Nasdaq UTP data via IEX Cloud can be enabled. We are currently working with Nasdaq UTP to add IEX Cloud as an option in the relevant forms. You can find more information on how to get authorization from Nasdaq UTP to receive the data here.

If you intend to get Nasdaq UTP approval to continue receiving the data, or if you already have a Nasdaq UTP agreement and just need to add IEX Cloud as an approved channel, please email us at support@iexcloud.io. We will do everything we can to help you avoid a disruption in the data you receive through IEX Cloud and will let you know when the forms are ready for you to fill out.

Please reach out to us with any comments or questions. We look forward to continuing to bring you new data and tools to help you build.

Joshua Blackburn Head of IEX Cloud

Affected endpoints for Nasdaq-listed symbols ONLY

"Quote”: open, openTime, close, closeTime, delayedPrice, delayedPriceTime,extendedPrice, extendedPriceTime, extendedChange, extendedChangePercent, week52High, week52Low, high, low fields will be null.
“Quote”: latestPrice, latestUpdate, latestTime, latestSource, change, changePercent, marketCap, ytdChange will no longer incorporate Nasdaq UTP data but will continue to use Investors Exchange data.
“OHLC”: all fields will be null.
“Intraday Prices”: all fields prefixed with “market” will be null.

addisonlynch commented 5 years ago

So certain Nasdaq UTP data is no longer available to Start accounts.

mattangriffel commented 5 years ago

@addisonlynch Does this mean get_historical_data will no longer work?

wflaschka commented 5 years ago

From what I can tell, get_historical_data() will no longer work for anybody. On July 15, IEX sent the email linked here: https://github.com/iexg/IEX-API/files/3419237/Gmail.-.Updates.to.IEX.Cloud.pdf

Based on my reading, the data is only available to paid IEX subscriber accounts that are authorized by the UTP Plan Administrator to receive this data from IEX Cloud. By my reading, we're supposed to pay for the IEX subscription, then pay the annual UTP fee, and then submit a form requesting to be able to access the UTP data through IEX.

[Edit] The above seems to be borne out by the thread here: https://github.com/iexg/IEX-API/issues/1149 ... and FWIW I can't get get_historical_data() working at all with my Launch account.

addisonlynch commented 5 years ago

Thanks, @wflaschka. This is indeed the issue. The OP here was trying to retrieve data for AAPL, which is a nasdaq-listed symbol.

I will update the iexfinance documentation to reflect the new requirements for these.

addisonlynch commented 5 years ago

Another note from the provider:

Hello,

As a reminder, because you have not been authorized by Nasdaq UTP to receive their data, your access to 15-minute delayed price data for Nasdaq-listed stocks through IEX Cloud will be removed later today.

If you believe that this is an error, and you should be authorized to continue using this data, please call Nasdaq UTP directly as soon as possible.

Additional detail about how to get authorization from Nasdaq UTP to have this data reinstated is included below along with background on this change (which you should have received previously).

Joshua Blackburn Head of IEX Cloud

Requesting Authorization from Nasdaq UTP

If you wish to access delayed UTP data via IEX Cloud, you must submit the following documents:

Submit a Vendor Agreement Submit a Data Feed Request Form: Online or Hard Copy (select “IEX Cloud Services LLC” as the Data Provider in the online version) Submit a System Description: Online or Hard Copy Why am I receiving this message?

Effective Wednesday, July 31, certain fields for Nasdaq-listed stock data (UTP data) will only be available through IEX Cloud if you are on a Launch, Grow, or Scale plan and authorized by UTP directly to continue to receive UTP data.

What does that mean for you?

Nasdaq controls UTP consolidated delayed stock prices for companies listed on Nasdaq (i.e., UTP, Nasdaq UTP or “Tape C” securities). That means that all 15-minute delayed intraday price data for Nasdaq-listed stocks will be impacted.

To be clear, IEX Cloud will continue to provide non-delayed intraday data for all stocks when those quotes and trades occur on the Investors Exchange. That’s a lot of data! However, for Nasdaq-listed stocks only, you will notice that some key points such as the official opening and closing price as well as pre- and post-market prices (before 9:30 am ET and after 4:00 pm ET) will be missing.

Data for non-Nasdaq listed stocks will not be affected. The full list of affected endpoints for Nasdaq-listed stocks ONLY is below.

"Quote”: open, openTime, close, closeTime, delayedPrice, delayedPriceTime, extendedPrice, extendedPriceTime, extendedChange, extendedChangePercent, week52High, week52Low, high, low fields will be null. “Quote”: latestPrice, latestUpdate, latestTime, latestSource, change, changePercent, marketCap, ytdChange will no longer incorporate Nasdaq UTP data but will continue to use Investors Exchange data. “OHLC”: all fields will be null. “Intraday Prices”: all fields prefixed with “market” will be null.

addisonlynch commented 5 years ago

So looks like access to this data will end for Launch, Grow, and Scale accounts will end today without the Nasdaq UTP

noobmaster29 commented 4 years ago

If someone is currently on a paid account, could you confirm that you can pull financial data such as get_balance_sheet and get_cash_flow?

I tried the code with the sandbox and it seemed to work. os.environ["IEX_API_VERSION"] = "iexcloud-sandbox"

However, once I used the default live one, it gives the error: IEXQueryError: An error occurred while making the query.

This leads me to believe that financial data is not available with the free account anymore. I would appreciate if someone can help me confirm this. Thanks in advance.

addisonlynch commented 4 years ago

@noobmaster29 fundamental data is not available at the free account tier.