Documentación de la API de cotización de todas las monedas de Yahoo Finance


He estado usando este feed durante mucho tiempo, creo que Apple lo hace también en uno de los widgets de mac. pero lo que es realmente curioso es que simplemente no puedo encontrar ninguna documentación para ello, he probado Google y todo.

Http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote

Puedo ver personas usando diferentes parámetros como view=basic date=Ymd; currency=true pero es horrible que no haya nada oficial.

Por ahora estoy usando estos parámetros:

format=json y callback=list a veces...

Pero sigue siendo un misterio para mí. ¿Alguien sabe la verdad real al respecto porque parece Yahoo está tratando de ocultarlo en otro lugar:)

Author: Benjamin, 2011-02-24

7 answers

De la investigación que he hecho, no parece haber ninguna documentación disponible para la API que está utilizando. Dependiendo de los datos que esté tratando de obtener, le recomendaría usar la API YQL de Yahoo para acceder a Yahoo Finance (Un ejemplo se puede encontrar aquí). Alternativamente, puede intentar usar esta forma bien documentada de obtener datos CSV de Yahoo Finance.

EDITAR:

Ha habido alguna discusión en los foros Yahoo developer y parece que no hay documentación (énfasis mío):

La razón de la falta de documentación es que no tenemos una API Financiera. Parece que algunos han hecho ingeniería inversa a una API que utilizan para extraer datos Financieros, pero están rompiendo nuestros Términos de Servicio (sin redistribución de datos financieros) al hacer esto, por lo que le animo a evitar el uso de estos servicios web.

Al mismo tiempo, se puede acceder a la URL que ha enumerado utilizando el YQL console, aunque no soy lo suficientemente inteligente como para saber cómo extraer parámetros de URL con ella.

 19
Author: NT3RP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-02 17:14:06

| ATENCIÓN !!! |

| SERVICIO SUSPENDIDO POR YAHOO, la solución ya no es válida. |

Obtenga de Yahoo un JSON o XML que pueda analizar a partir de una consulta REST.

Puede intercambiar de cualquier a cualquier moneda e incluso obtener la fecha y hora de la consulta utilizando el YQL (Yahoo Query Language).

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fd%2Fquotes.csv%3Fe%3D.csv%26f%3Dnl1d1t1%26s%3Dusdeur%3DX%22%3B&format=json&callback=

Esto traerá un ejemplo como el siguiente:

{
 "query": {
  "count": 1,
  "created": "2016-02-12T07:07:30Z",
  "lang": "en-US",
  "results": {
   "row": {
    "col0": "USD/EUR",
    "col1": "0.8835",
    "col2": "2/12/2016",
    "col3": "7:07am"
   }
  }
 }
}

Puedes probar la consola

Creo que esto no romper cualquier Término de Servicio, ya que es una solución 100% yahoo.

 10
Author: FedeKrum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-12 23:17:20

Esto podría ayudar: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=c4l1&s=EURUSD=X, GBPUSD = X Devolverá el archivo csv:

"EUR",1.2972
"GBP",1.6034

O si necesita json: Yahoo csv parser

 8
Author: Sergey Dirin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-28 14:11:02

Estoy desarrollando una aplicación que necesita conversión de moneda, y he estado usando Tipos de Cambio Abiertos porque no estaría pagando ya que la aplicación está en pruebas. Pero a partir de septiembre de 2012, las tasas de cambio abiertas se pagarán por no personales, así que comprobé que estaban utilizando el Servicio Web de Yahoo Finance (el que "no existe") y buscando documentación sobre él llegó aquí, y optó por usar YQL.

Usando YQL con la tabla Yahoo Finance (yahoo.financiación.citas) enlazadas por NT3RP, las monedas aparecen con el símbolo = "ISOCODE = X", por ejemplo:" ARS=X "para el Peso argentino," AUD=X " para el Dólar Australiano. "USD = X" no existe, pero sería 1, ya que el resto son tarifas frente al USD.

El valor "price" en la OP API está en el campo "LastTradePriceOnly" de la tabla. Para mi aplicación utilicé el campo "Preguntar".

 5
Author: Einacio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-27 05:11:35

Como NT3RP nos dijo que:

... nosotros (Yahoo!) no tiene una API Financiera. Parece que algunos han hecho ingeniería inversa a una API que utilizan para extraer datos Financieros, pero están rompiendo nuestros Términos de Servicio...

Así que pensé en compartir este sitio contigo:
http://josscrowcroft.github.com/open-exchange-rates /
[actualización: el sitio se ha movido a - http://openexchangerates.org]

Este sitio dice:

Sin tarifas de acceso, sin límites de tarifas, sin XML feo: solo tipos de cambio actualizados por hora y gratuitos en formato JSON
[actualización: Gratis para uso personal, una ganga para su negocio.]

Espero haber ayudado y esto es de alguna utilidad para usted (y otros también). : )

 5
Author: zeFree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-19 10:59:13

He utilizado esta URL para obtener múltiples cotizaciones de mercado de divisas.

Http://finance.yahoo.com/d/quotes.csv?e=.csv&f=c4l1&s=USD=X, CAD = X, EUR = X

"USD",1.0000
"CAD",1.2458
"EUR",0.8396

Se pueden analizar en PHP de la siguiente manera:

$symbols = ['USD=X', 'CAD=X', 'EUR=X'];
$url = "http://finance.yahoo.com/d/quotes.csv?e=.csv&f=c4l1&s=".join($symbols, ',');

$quote = array_map( 'str_getcsv', file($url) );

foreach ($quote as $key => $symb) {
    $symbol = $quote[$key][0];
    $value = $quote[$key][1];
}
 1
Author: Liam Hogan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-01 01:49:06

Como alternativa a Yahoo Finance, comencé a usar API de Quandl para obtener cotizaciones de divisas. Hay una opción gratuita que se puede utilizar para aplicaciones simples y también de pago para bases de datos premium.

Una vez que tenga una cuenta en Quandl, obtendrá una clave para realizar sus solicitudes. Por ejemplo, una conversión de USD a EUR se puede obtener mediante:

curl https://www.quandl.com/api/v3/datasets/CURRFX/USDEUR/data.json?rows=1&api_key=YOUR_KEY

El resultado de dicha llamada es:

{
  "dataset_data":{"limit":1,"transform":null,"column_index":null,
  "column_names":[ "Date","Rate","High (est)","Low (est)"],
  "start_date":"1999-09-06","end_date":"2018-01-19","frequency":"daily",
  "data":[
    ["2018-01-19",0.81721997261047,0.8183100 2235413,0.81335002183914]
  ],
  "collapse":null,"order":null}
}

Más tipos de cambio de USD están disponibles aquí: Tipos de cambio versus USD

 0
Author: Marcio Jasinski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-23 13:18:45