karlwancl / YahooFinanceApi

A handy Yahoo! Finance api wrapper, based on .NET Standard 2.0

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sorry, Unable to process request at this time -- error 999

dennislwy opened this issue · comments

Yahoo seems terminated their free api service

Flurl.Http.FlurlHttpException occurred
HResult=0x80131500
Message=GET https://download.finance.yahoo.com/d/quotes.csv?s=AAPL%2BGOOG&f=l1ohgp failed with status code 999 (Request denied).
Response body:

<title>Yahoo! - 999 Unable to process request at this time -- error 999</title>Sorry, Unable to process request at this time -- error 999. Source= StackTrace: at Flurl.Http.FlurlRequest.d__18.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Flurl.Http.FlurlRequest.d__18.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Flurl.Http.FlurlRequest.d__18.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Flurl.Http.HttpResponseMessageExtensions.d__4.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at YahooFinanceApi.Yahoo.Builder.d__9.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at WindowsFormsApp1.Form1.d__2.MoveNext() in d:\temp\WindowsFormsApp1\WindowsFormsApp1\Form1.cs:line 27

@dennislwy I can confirm that I'm also getting this issue, hopefully there is a way around this

I'm also getting the issue

yahoo coment with:
"It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com."

@dennislwy What query type you call to produce this GET URI ?

I checked the historical api, and the URI generated for a call is like that:

https://query1.finance.yahoo.com/v7/finance/download/JUNO?period1=1488949200&period2=1490673600&interval=1d&events=history&crumb=j1WuKmwg9Nz

And this endpoint works perfectly fine.

@dennislwy Thanks for your notice! It seems Yahoo has changed the mechanism again, I need some time to find a solution of it. If anyone has any fix or discovered something, please also comment here 😄

Update: Historical api is still OK, but it seems Yahoo has discontinued their quote service, please refer: https://yahoo.uservoice.com/forums/382977-finance/suggestions/32117227-yahoo-support-i-have-used-the-http-code-below-fo#comments

@lppkarl have you planned to use https://query1.finance.yahoo.com/v7/finance/quote?symbols=AAPL to fix the issue? I personally just need the last price (delayed is OK).

You can upvote this suggestion to implement api keys to address Yahoo's concerns: https://yahoo.uservoice.com/forums/382977-finance/suggestions/32214556-reinstate-the-stock-quote-api-using-unique-keys
The other thread has been closed by Yahoo, with a rather laughable explanation.

@mayerwin, @dshe has completed the task 👍 and I have pushed the new version to nuget as a beta version. The QueryTag will be implemented later for easier access of quote properties 😄