O serviço de finanças do Yahoo desapareceu? API alterada? Abaixo temporariamente?

Há algum tempo venho usando a seguinte API REST para consultar o Yahoo finance sobre os preços atuais. Ele está documentado em várias postagens do Stack Overflow, por exemplo, no serviço de finanças do Yahoo e em outras partes do yahoo-finance .

http://finance.yahoo.com/webservice/v1/symbols/$SYMBOLS/quote?format=json 

onde $ SYMBOLS é uma lista delimitada por vírgulas de símbolos de ações ou índices.

Ontem a consulta parou de funcionar, retornando apenas uma mensagem “Movido temporariamente. Redirecionando para …”.

Este serviço da web está fechado agora? Foi substituído por YQL ou outra API? Consultas para uma tabela de preços históricos para “ichart” ainda funcionam. Por exemplo,

 http://ichart.finance.yahoo.com/table.csv?d=2&e=3&f=2016&g=d&a=0&b=1&c=2011&ignore=.csv&s=$SYMBOL 

Obrigado.

Eu estava enfrentando um problema semelhante dos últimos 2-3 dias. A url funciona no smartphone, onde na área de trabalho é fornecido o erro “Não é um parâmetro válido” e o Código HTTP 406.

Isto pode ser resolvido adicionando user agent como “Mozilla / 5.0 (Linux; Android 6.0.1; MotoG3 Build / MPI24.107-55) AppleWebKit / 537.36 (KHTML, como o Gecko) Chrome / 51.0.2704.81 Mobile Safari / 537.36” invocando o pedido get.

Por exemplo, se você estiver baixando do curl no php use da seguinte maneira:

 curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (Linux; Android 6.0.1; MotoG3 Build/MPI24.107-55) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36"); 

Espero que isso resolva o problema.

Eu tive o mesmo problema. Aqui está o URL da API para extrair ações da YAHOO. Espero que isto ajude.

 https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback= 

Como o serviço está inativo, uso o seguinte URL para consultar os dados do Yahoo (para ACA.PA):

Ligação

O resultado do JSON é diferente, mas encontrei as informações que me interessam.

Para mais informações, visite a página https://developer.yahoo.com/yql/

Sim, parece que o Yahoo! descontinuou a API do Yahoo Finance (privada, em grande parte não documentada) que muitos vêm confiando há anos para dados monetários. Recebemos algumas notifications sobre isso nas últimas 24 horas. (Edit: Todas as respostas parecem estar retornando "Not a valid parameter" . Eu suponho que há uma chance de que eles possam ser reativados, mas eles não suportam oficialmente essa API em nenhum lugar, tanto quanto eu posso dizer.)

Eu criei o Open Exchange Rates há cinco anos, e nossa API de taxa de câmbio agora suporta uma comunidade de dezenas de milhares de desenvolvedores – e suas dezenas de milhões de usuários – com informações precisas e atualizadas.

Por favor, sinta-se bem-vindo para conferir nosso serviço Forever Free em https://openexchangerates.org .

Nossa API está em um formato JSON simples e original, que na verdade tem sido usado como um método padrão para exibir taxas porque é muito simples de trabalhar (ao contrário da API do Yahoo, que exigia que você analisasse os objects nesteds obscuros para extrair as informação que você precisava …)

Se você precisar de portabilidade de assistência do Yahoo! API, ficaremos felizes em ajudar por e-mail.

(Eu sou o fundador da Open Exchange Rates.)

Eu sou o autor do ValueViz no github .

Preços diários

Você precisa estar familiarizado com os serviços da RESTFUL.

https://quantprice.herokuapp.com/api/v1.1/scoop/day?tickers=MSFT&date=2017-06-09

Preços históricos

Você precisa fornecer um período:

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19&end=2012-02-20

Se você não fornecer início ou fim, ele usará a data mais antiga ou atual:

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=MSFT&begin=2012-02-19

Vários tickers

Você pode apenas separar os tickers:

https://quantprice.herokuapp.com/api/v1.1/scoop/period?tickers=IBM,MSFT&begin=2012-02-19

Taxa limite

Todas as solicitações são limitadas a 10 solicitações por hora. Se você quer se registrar para uma API de access completo, me envie DM no twitter. Você receberá uma chave de API para adicionar ao URL.

Estamos configurando uma conta paypal para assinatura paga sem taxas.

Lista de tickers disponíveis

https://github.com/robomotic/valueviz/blob/master/scoop_tickers.csv

Estou trabalhando também para fornecer dados fundamentais e dados da empresa da EDGAR. Felicidades.

Ele está redirecionando para a mesma página, mas adicionando o parâmetro “bypass = true”, o que gera um erro.

EDIT: A resposta dada por https://stackoverflow.com/users/6593038/hemant-prasad está trabalhando para mim. Ao alterar o agente do usuário para um dispositivo móvel, a API funciona bem e não redireciona até o momento.

Este é o código que estou usando em Java (é para a versão XML, mas também pode ser usado para JSON):

 URL url = new URL ("https://finance.yahoo.com/webservice/v1/symbols/" + stocks + "/quote"); HttpURLConnection urlc = (HttpURLConnection) url.openConnection (); urlc.setRequestProperty ("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; MotoE2(4G-LTE) Build/MPI24.65-39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36"); Document xml = DocumentBuilderFactory.newInstance ().newDocumentBuilder ().parse (urlc.getInputStream ()); 

Confira este excelente Wrapper de API, disponível no NuGet: https://github.com/salmonthinlion/YahooFinanceApi

Receba cotações de ações

 var quotes = await Yahoo.Symbol("AAPL", "GOOG").Tag(Tag.LastTradePriceOnly, Tag,ChangeAndPercentChange, Tag.DaysLow, Tag.DaysHigh).GetAsync(); var aapl = quotes["AAPL"]; var price = aapl[Tag.LastTradePriceOnly]; 

Obter dados históricos de um estoque

 // You should be able to query data from various markets including US, HK, TW var history = await Yahoo.GetHistoricalAsync("AAPL", new DateTime(2016, 1, 1), new DateTime(2016, 7, 1), Period.Daily); foreach (var candle in history) { Console.WriteLine($"DateTime: {candle.DateTime}, Open: {candle.Open}, High: {candle.High}, Low: {candle.Low}, Close: {candle.Close}, Volume: {candle.Volume}, AdjustedClose: {candle.AdjustedClose}"); } 

Obter histórico de dividendos para um estoque

 // You should be able to query data from various markets including US, HK, TW var dividendHistory = await Yahoo.GetHistoricalDividendsAsync("AAPL", new DateTime(2016, 1, 1), new DateTime(2016, 7, 1)); foreach (var candle in dividendHistory) { Console.WriteLine($"DateTime: {candle.DateTime}, Dividend: {candle.Dividend}"); } 

Eu encontrei uma maneira de usar a API csv.

binding

onde você precisa escrever o símbolo, os parâmetros e colunas.

Use este site para encontrar os parâmetros necessários: http://www.jarloo.com/yahoo_finance/

exemplo:

Se você precisa saber o volume do símbolo, substitua a string sl1d1t1c1ohgv por v

e substitua o symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume colunas symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Cvolume com volume

O único problema é que os dados são randoms e não são em tempo real como na API do serviço web

O Python Yahoo Finance API parece ter um problema também. Se você usá-lo para pesquisar, por exemplo, os preços das ações da Amazon mostram os mesmos dois valores repetidas vezes.

 from yahoo_finance import Share import time f = open('/tmp/amazon/amzn.csv', 'w') while True: amzn=Share("AMZN") s = amzn.get_price() + "," + amzn.get_trade_datetime() + '\n' print (s) f.write (s) f.flush() time.sleep(5) del amzn 
Intereting Posts