Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to IEXCloud data provider breaking iexfinance? #230

Open
BrentGrammer opened this issue Dec 1, 2020 · 21 comments
Open

Changes to IEXCloud data provider breaking iexfinance? #230

BrentGrammer opened this issue Dec 1, 2020 · 21 comments

Comments

@BrentGrammer
Copy link

I've been using iexfinance for a while without issue, but recently some calls started breaking (for instance getting quarterly cash flow statement information for more than the last quarter). I believe this is due to IEXCloud upgrading their data provider and some previous endpoints being changed. Is iexfinance still compatible with IEXClouds recent changes and is there a guide to how to upgrade or change method signatures?

@addisonlynch
Copy link
Owner

Thanks @BrentGrammer it looks like you are correct. There are a number of test cases failing since IEX started to implement changes this week. A number of issues have come into their tracker as well.

We'll continue to monitor and make changes as necessary. It seems that most of the problems are on there end for now. I can confirm that cash flow statements and other fundamentals are indeed not working for more than one quarter. Let me know if you see anything else specific.

@BrentGrammer
Copy link
Author

IEXCloud has indicated that some changes due to the data provider switch are in place now as of Dec. 1st. Is this still a problem on their end or does this library need to be updated to adjust to recent changes in their API?

@sharonchoong
Copy link

Not sure if related, or if I'm using this wrong, but get_historical_data is no longer providing adjusted prices.

e.g. split on December 1st here:
image

@addisonlynch
Copy link
Owner

@BrentGrammer The same tests are still failing for me. I will take a look.

@addisonlynch
Copy link
Owner

addisonlynch commented Dec 6, 2020

@sharonchoong those are the adjusted prices. Probably need to document this better...

You can use stock.get_chart if you would like to obtain unadjusted prices (via uClose, uOpen, etc. fields)

https://iexcloud.io/docs/api/#historical-prices

@BrentGrammer
Copy link
Author

BrentGrammer commented Dec 6, 2020

Thanks. Another thing I just noticed is that it does not look like there is a "totalCurrentLiabilities" field being returned for the call to .get_balance_sheet(period='quarterly'). IEXCloud's API documentation indicates it is part of the response and it was there before - so not sure if they made a change on their end somewhere and did not update the docs(?). I'm having a hard time getting a clear idea of what all changed reading their website help page.

@addisonlynch
Copy link
Owner

@BrentGrammer looks like the fundamentals are indeed missing fields. I created an issue in their tracker https://github.com/iexg/IEX-API/issues/1655.

Also, all 3 of the fundamentals endpoints are only returning up to 3 periods (should be 12 for quarterly). Entered an issue for this as well https://github.com/iexg/IEX-API/issues/1654.

Let me know if you see any other problems.

@BrentGrammer
Copy link
Author

Thank you for following up with IEXCloud. I'm asking their support team about all of this and will pass on any relevant information.

@addisonlynch
Copy link
Owner

@BrentGrammer sounds good. Thank you for letting me know!

@sharonchoong
Copy link

sharonchoong commented Dec 7, 2020

@sharonchoong those are the adjusted prices. Probably need to document this better...

You can use stock.get_chart if you would like to obtain unadjusted prices (via uClose, uOpen, etc. fields)

https://iexcloud.io/docs/api/#historical-prices

@addisonlynch OK, I just realized that it's not an issue with this python module but something funky happening with the IEX data. I made a direct call to the API to check the data, sorry should have done that first. Historical prices are no longer adjusted for splits. For example, 2020-11-30 close for MKC should have been $93.64, not $187. They mentioned that they would be making changes to the adjusted price computation on December 1st; I guess there were issues with it.

Also, given the changes in IEX, now get_historical_data should be pulling fClose to get fully adjusted prices, not close.

@BrentGrammer
Copy link
Author

BrentGrammer commented Dec 10, 2020

Here is an update and response I received from IEXCloud support re: "totalCurrentLiabilities" property missing from the balance sheet and not being able to retrieve 4 years/quarters of financials:

" We are aware of an issue when using last=x when trying to get recent information. 
As a workaround, try increasing x until you get the amount of entries you are looking for. 
Putting in last=4 will still retrieve 3 entries.

totalCurrentLiabilities missing should be fixed at some point this week."

So looks like they are still working out some bugs from the transition on their end.

@addisonlynch
Copy link
Owner

@sharonchoong that is correct. Thank you. I will update #231 with this information and try to fit in for next weeks 0.5.0 release.

@addisonlynch
Copy link
Owner

@BrentGrammer thank you for following up on this. It has been extremely difficult to tell what's changed, what's broken, and what's still WIP. On top of that, they just shut down their github issue tracker and would like developers to email directly with bugs.

@addisonlynch
Copy link
Owner

@BrentGrammer looks like the period issue has been resolved.

@BrentGrammer
Copy link
Author

BrentGrammer commented Dec 12, 2020

@addisonlynch I'm not getting any financial data now - tried with 3 tickers - GNUS, SSPK, and HEXO. Looks like this is going to be a rough transition...

@addisonlynch
Copy link
Owner

@BrentGrammer I'm getting the same. Seems to work for other tickets (e.g. AAPL).

@BrentGrammer
Copy link
Author

Dang, even GOOG doesn't work. Seems to be hit or miss. I emailed IEXCloud to let them know. Hopefully they'll get these endpoints restored before too long.

@addisonlynch
Copy link
Owner

@BrentGrammer thanks. Can you let me know what you hear back?

@BrentGrammer
Copy link
Author

@addisonlynch yes, will keep you updated. They usually respond 2-3 days after an email.

@BrentGrammer
Copy link
Author

@addisonlynch IEXCloud responded and said they are tracking the issue:

"I'll log those tickers with Dev and make sure they are aware. We are also aware of an issue regarding description missing in /company."

@BrentGrammer
Copy link
Author

BrentGrammer commented Dec 20, 2020

@addisonlynch Hey I just wanted to pass something along I'm seeing while debugging my app (which is in shambles after the recent change).

The endpoint on IEXCloud for iexStockInstance.get_income_statement(period=interval, last=4) returns a string, not a list as it used to.

Ex:

costOfRevenue     currency  ...   date                   updated
2020-10-30   40009000000      USD  ...  1601078400000  1608330865000
 2020-07-31   37005000000      USD  ...  1593216000000  1608330865000
2020-05-01   35943000000      USD  ...  1585353600000  1608330865000
2020-01-29   56602000000      USD  ...  1577491200000  1608330865000

It's just one big string. I don't know if they are working on this, but I'm going to forward this info to IEXCloud as well in case they are unaware of this - to me it does not make sense to return a big string with quarterly data, so this must be an oversight on their part

UPDATE: so that string looked kind of looked like something table-like/dataframe-ish from the Panda library - on further debugging, I'm getting an error when trying to parse the response to json that 'type Series is not serializable'. Still not sure exactly how the response is a Series type, unless IEXCloud is returning Panda Dataframes(?). Still trying to make sense of what's going on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants