雅虎财经全币种报价 API 文档

Posted

技术标签:

【中文标题】雅虎财经全币种报价 API 文档【英文标题】:Yahoo Finance All Currencies quote API Documentation 【发布时间】:2011-07-03 18:20:43 【问题描述】:

我已经使用这个提要很长时间了,我相信 Apple 在其中一个 mac 小部件中也是这样做的。但真正令人好奇的是,我根本找不到任何文档,我已经尝试了 google 和一切。

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

我可以看到人们使用不同的参数,例如 view=basic date=Ymd; currency=true,但没有任何官方信息真是太可怕了。

现在我使用这些参数:

format=jsoncallback=list 有时...

但这对我来说仍然是个谜。有谁知道它的真实情况,因为雅虎似乎试图将其隐藏在其他地方:)

【问题讨论】:

您只是在寻找 API 调用的文档吗? 是的,我只是在为这项服务寻找一个记录在案的 API,它通过返回包含与美元相关的所有货币的 JSON 或 XML 来完全满足我的需求 我在这里处理同样的问题。我有一个问题,我们可以从您问题中提到的雅虎链接获取数据吗? 【参考方案1】:

根据我所做的研究,您正在使用的 API 似乎没有任何可用的文档。根据您尝试获取的数据,我建议使用 Yahoo 的 YQL API 访问 Yahoo Finance (An example can be found here)。或者,您可以尝试使用这种有据可查的方式来get CSV data from Yahoo Finance。

编辑:

在Yahoo developer forums 上进行了一些讨论,看起来没有文档(强调我的):

缺少文档的原因是我们没有 Finance API。似乎有些人对用于提取财务数据的 API 进行了逆向工程,但这样做违反了我们的服务条款(不重新分发财务数据),因此我建议您避免使用这些网络服务。

同时,您列出的 URL 可以使用 YQL console 访问,虽然我不够精明,不知道如何使用它提取 URL 参数。

【讨论】:

嗨 Nicholas,感谢您提供的信息,据我所知,您提供的链接仅涉及股票信息,不幸的是,我认为这不能解决我的问题,因为我需要汇率之前提供的链接之类的信息,不是库存:( 抱歉,我会继续寻找。 :) 是的,感谢 Nicolas 深入挖掘,我真的不明白他们为什么会避免使用提要,无论如何......创建一个可以改变结果基于传递的自定义参数,至少供个人使用。在没有任何支持的情况下,这种事情在网络上飞来飞去仍然有点令人沮丧,但再次感谢您的帮助 这太棒了 YQL 是我见过的最好的免费云 如果您想要使用 YQL 的教程和 C# 示例,请查看此处:jarloo.com/get-yahoo-finance-api-data-via-yql。更多关于 C# 中 CSV API 的信息可以在这里找到jarloo.com/yahoo_finance【参考方案2】:

正如 NT3RP 告诉我们的那样:

...我们(雅虎!)没有财务 API。似乎有些人对用于提取财务数据的 API 进行了逆向工程,但他们违反了我们的服务条款...

所以我只是想与您分享这个网站:http://josscrowcroft.github.com/open-exchange-rates/ [更新:网站已移至 -http://openexchangerates.org]

这个网站说:

没有访问费用,没有速率限制,没有丑陋的 XML - 只是免费的,每小时更新的 JSON 格式的汇率 [更新:免费供个人使用,对您的企业来说很划算。]

我希望我有所帮助,这对您(以及其他人)有些用处。 :)

【讨论】:

它来自同一个 yahoo api 它非常有用且简单,但要在 2012 年 9 月付款 每月只有 1000 个 API 调用免费。 “永远免费”计划仍然可用。谢谢。【参考方案3】:

我正在开发一个需要货币转换的应用程序,并且一直在使用 Open Exchange Rates,因为由于该应用程序处于测试阶段,所以我不会付款。但截至 2012 年 9 月,Open Exchange Rates 将为非个人支付,因此我检查了他们使用的是 Yahoo Finance Webservice(“不存在”的服务)并在此处查找有关它的文档,并且选择使用 YQL。

将 YQL 与由 NT3RP 链接的 Yahoo Finance 表 (yahoo.finance.quotes) 结合使用时,货币以符号="ISOCODE=X" 显示,例如:“ARS=X”表示阿根廷比索,“AUD=X”表示澳元。 "USD=X" 不存在,但它会是 1,因为其余的是兑美元汇率。

OP API 上的“价格”值位于表格的“LastTradePriceOnly”字段中。对于我的应用程序,我使用了“询问”字段。

【讨论】:

【参考方案4】:

这可能会有所帮助: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=c4l1&s=EURUSD=X,GBPUSD=X 它将返回 csv 文件:

"EUR",1.2972
"GBP",1.6034

或者如果你需要 json: Yahoo csv parser

【讨论】:

如何绑定你的两个链接,当我点击测试按钮时它工作得很好)但是我怎样才能得到 json 而不是 csv 直接链接? This is a json query 我是用Yahoo csv parser制作的 但是如何获得直接链接? 直接链接是什么意思?为什么这个链接不是直接的? 好的,我的意思是直接链接,例如当您将该链接设置到浏览器中的地址行并获取 JSON 时。使用您的链接我需要导航到解析器并按下测试按钮,然后我收到 JSON【参考方案5】:

注意!!!

服务被雅虎暂停,解决方案不再有效。

我现在使用https://currencyscoop.com/ 的免费 帐户,让我可以在商业上使用 API,每月最多 5000 个请求(大约每 10 分钟一个请求) )。

过时的解决方案

从 Yahoo 获取可以从 REST 查询中解析的 JSON 或 XML。

您可以从任何货币兑换成任何货币,甚至可以使用 YQL(雅虎查询语言)获取查询的日期和时间。

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=

这将带来如下示例:


 "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"
   
  
 

你可以试试the console

我认为这不会违反任何服务条款,因为它是 100% 雅虎解决方案。

【讨论】:

优秀的解决方案,对我来说很好,我需要将美元转换为巴西雷亚尔。惊人的!坦克@FedeKrum 太棒了,我一直在努力实现这样的目标。你是怎么得到像f=nl1d1t1这个参数这样的列的显示格式的。我尝试了各种方法,但找不到任何参考。有什么想法吗? 看起来雅虎弃用了这项伟大的服务 你是对的!我今天得到了这个。 "query":"count":1,"created":"2017-11-12T22:50:18Z","lang":"en-us","re​​sults":"row":"col0 ":" Yahoo! - 403 Forbidden -- error 403我们注意到该服务的使用违反了雅虎条款服务。因此","col1":"该服务已停止。对于所有未来的市场和股票数据研究","col2":"请参阅finance.yahoo.com。 " 控制台也死了【参考方案6】:

我已使用此 URL 获取多个货币市场报价。

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

php 中可以这样解析:

$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];

【讨论】:

【参考方案7】:

更新了 Yahoo! 的查询金融,

https://query1.finance.yahoo.com/v7/finance/quote?&symbols=USD,CAD,EUR,XMR&fields=regularMarketPrice

返回


"quoteResponse": 
    "result": [
        
            "language": "en-US",
            "region": "US",
            "quoteType": "ETF",
            "quoteSourceName": "Delayed Quote",
            "triggerable": true,
            "exchange": "PCX",
            "exchangeTimezoneName": "America/New_York",
            "exchangeTimezoneShortName": "EDT",
            "gmtOffSetMilliseconds": -14400000,
            "market": "us_market",
            "esgPopulated": false,
            "firstTradeDateMilliseconds": 1170340200000,
            "priceHint": 2,
            "regularMarketTime": 1628712000,
            "regularMarketPrice": 35.56,
            "fullExchangeName": "NYSEArca",
            "tradeable": false,
            "sourceInterval": 15,
            "exchangeDataDelayedBy": 0,
            "marketState": "PRE",
            "symbol": "USD"
        ,
        
            "language": "en-US",
            "region": "US",
            "quoteType": "ETF",
            "quoteSourceName": "Delayed Quote",
            "triggerable": true,
            "exchange": "PCX",
            "exchangeTimezoneName": "America/New_York",
            "exchangeTimezoneShortName": "EDT",
            "gmtOffSetMilliseconds": -14400000,
            "market": "us_market",
            "esgPopulated": false,
            "firstTradeDateMilliseconds": 1320935400000,
            "priceHint": 2,
            "regularMarketTime": 1411675200,
            "regularMarketPrice": 95.879,
            "fullExchangeName": "NYSEArca",
            "tradeable": false,
            "sourceInterval": 15,
            "exchangeDataDelayedBy": 0,
            "marketState": "PRE",
            "symbol": "CAD"
        ,
        
            "language": "en-US",
            "region": "US",
            "quoteType": "INDEX",
            "triggerable": false,
            "exchange": "NYS",
            "exchangeTimezoneName": "America/New_York",
            "exchangeTimezoneShortName": "EDT",
            "gmtOffSetMilliseconds": -14400000,
            "market": "us_market",
            "esgPopulated": false,
            "firstTradeDateMilliseconds": 1543501800000,
            "priceHint": 4,
            "regularMarketTime": 0,
            "regularMarketPrice": 0.0,
            "fullExchangeName": "NYSE",
            "tradeable": false,
            "sourceInterval": 15,
            "exchangeDataDelayedBy": 0,
            "marketState": "PRE",
            "symbol": "EUR"
        ,
        
            "language": "en-US",
            "region": "US",
            "quoteType": "ECNQUOTE",
            "quoteSourceName": "Delayed Quote",
            "triggerable": true,
            "exchange": "NMS",
            "exchangeTimezoneName": "America/New_York",
            "exchangeTimezoneShortName": "EDT",
            "gmtOffSetMilliseconds": -14400000,
            "market": "us_market",
            "esgPopulated": false,
            "firstTradeDateMilliseconds": 1493213400000,
            "fullExchangeName": "NasdaqGS",
            "tradeable": false,
            "sourceInterval": 15,
            "exchangeDataDelayedBy": 0,
            "marketState": "PRE",
            "symbol": "XMR"
        
    ],
    "error": null

【讨论】:

对于像 USD-XMR 这样的货币对,query1.finance.yahoo.com/v7/finance/quote?&symbols=XMR-USD,

以上是关于雅虎财经全币种报价 API 文档的主要内容,如果未能解决你的问题,请参考以下文章

雅虎财经 API 的替代品? [关闭]

从谷歌金融、雅虎金融或交易所本身获取股票报价

雅虎财经 API [关闭]

雅虎财经网络服务API

雅虎财经 API 错误 400 在亚洲

雅虎财经 Python API JSON 错误?