JSON格式的股票报价API(现场或历史)

我正在为自己构build一个REST风格的Web应用程序,我有兴趣获得免费的JSON格式的库存数据。 我打算为客户端使用JavaScript。 是否有免费的股票API,我可以利用, 返回XML,不使用C#。

编辑:我发现这个JSON查询…它会做的工作?

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22MSFT%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json 

当然,如果带回来并使用javascriptparsing为JSON,则可以执行以下操作,并从每个返回的库存中提取所需的所有内容:

 var callback = function(_return /* The json returned for yahooapis */) { var totalReturned = _return.query.count; //OR: var totalReturned = _return.query.results.quote.length; for (var i = 0; i < totalReturned; ++i) { var stock = _return.query.results.quote[i]; var symbol = stock.symbol; var percent_change = stock.Change_PercentChange; var changeRealTime = stock.ChangeRealtime; ... } } 

 var url = 'http://query.yahooapis.com/v1/public/yql'; var startDate = '2012-01-01'; var endDate = '2012-01-08'; var data = encodeURIComponent('select * from yahoo.finance.historicaldata where symbol in ("YHOO","AAPL","GOOG","MSFT") and startDate = "' + startDate + '" and endDate = "' + endDate + '"'); $.getJSON(url, 'q=' + data + "&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json", callback); 

YQL演示

(格式为yyyy-mm-dd的date的查询添加和startDate = "" and endDate = ""来做你想做的事情,也请确保selectJSON作为输出格式)

来自评论的一些额外信息:

  • 在上面的例子中,查询来自yahoo.finance.historicaldata的历史数据,您也可以实时查询yahoo.finance.quotes – 滞后大约15分钟)
  • 如果你想真正的实时信息查询web服务:例如finance.yahoo.com/webservice/v1/symbols/YHOO/quote?format=json (如果你想要更详细的输出,添加&view=detail该查询的详细信息)

作为一名软件开发人员,我会推荐Alpha Vantage 。 他们提供实时和历史股票报价(每日,每周,每月等)作为RESTful JSON API

它是完全免费的无限制的API调用。 只要股票在主要证券交易所上市,这是实时的。

以下是MSFT每日价格和交易量的API调用示例,充实了分拆/股息调整。 最新的数据点是当前交易日的实时信息。

根据他们的文档,他们还根据市场数据提供技术分析API。