Wednesday, January 15, 2014

Getting the Google Finance Stock Data

Getting the Google Finance Stock Data

Regardless of the programming language your using you can use YQL since it’s REST based. (did I mention how much I love REST?)
Here is a quick example of the YQL call to get Apple and Google stock data. (AAPL and GOOG)


select * from google.igoogle.stock where stock in ('AAPL','GOOG');
The REST URL for the above YQL looks like so:

The Stock Information as a Result

So when you call the Google Finance YQL function (REST API) you get data like so:







































































































<?xml version="1.0" encoding="UTF-8"?>
    yahoo:count="2" yahoo:created="2012-03-06T04:16:21Z" yahoo:lang="en-US">
    <diagnostics>
        <publiclyCallable>true</publiclyCallable>
        <url execution-start-time="20" execution-stop-time="23"
            execution-time="3" proxy="DEFAULT"><![CDATA[http://www.datatables.org/google/google.igoogle.stock.xml]]></url>
        <url execution-start-time="25" execution-stop-time="112"
            execution-time="87" proxy="DEFAULT"><![CDATA[http://www.google.com/ig/api?stock=GOOG]]></url>
        <url execution-start-time="25" execution-stop-time="163"
            execution-time="138" proxy="DEFAULT"><![CDATA[http://www.google.com/ig/api?stock=AAPL]]></url>
        <user-time>164</user-time>
        <service-time>228</service-time>
        <build-version>25587</build-version>
    </diagnostics>
    <results>
        <xml_api_reply version="1">
            <finance mobile_row="0" mobile_zipped="1" module_id="0"
                row="0" section="0" tab_id="0">
                <symbol data="AAPL"/>
                <pretty_symbol data="AAPL"/>
                <symbol_lookup_url data="/finance?client=ig&amp;q=AAPL"/>
                <company data="Apple Inc."/>
                <exchange data="Nasdaq"/>
                <exchange_timezone data="ET"/>
                <exchange_utc_offset data="+05:00"/>
                <exchange_closing data="960"/>
                <divisor data="2"/>
                <currency data="USD"/>
                <last data="533.16"/>
                <high data="547.48"/>
                <low data="526.00"/>
                <volume data="28897169"/>
                <avg_volume data="19174"/>
                <market_cap data="497102.36"/>
                <open data="545.42"/>
                <y_close data="545.18"/>
                <change data="-12.02"/>
                <perc_change data="-2.20"/>
                <delay data="0"/>
                <trade_timestamp data="7 hours ago"/>
                <trade_date_utc data="20120305"/>
                <trade_time_utc data="210001"/>
                <current_date_utc data="20120306"/>
                <current_time_utc data="041621"/>
                <symbol_url data="/finance?client=ig&amp;q=AAPL"/>
                <chart_url data="/finance/chart?q=NASDAQ:AAPL&amp;tlf=12"/>
                <disclaimer_url data="/help/stock_disclaimer.html"/>
                <ecn_url data=""/>
                <isld_last data="532.20"/>
                <isld_trade_date_utc data="20120306"/>
                <isld_trade_time_utc data="005926"/>
                <brut_last data=""/>
                <brut_trade_date_utc data=""/>
                <brut_trade_time_utc data=""/>
                <daylight_savings data="false"/>
            </finance>
        </xml_api_reply>
        <xml_api_reply version="1">
            <finance mobile_row="0" mobile_zipped="1" module_id="0"
                row="0" section="0" tab_id="0">
                <symbol data="GOOG"/>
                <pretty_symbol data="GOOG"/>
                <symbol_lookup_url data="/finance?client=ig&amp;q=GOOG"/>
                <company data="Google Inc"/>
                <exchange data="Nasdaq"/>
                <exchange_timezone data="ET"/>
                <exchange_utc_offset data="+05:00"/>
                <exchange_closing data="960"/>
                <divisor data="2"/>
                <currency data="USD"/>
                <last data="614.25"/>
                <high data="622.49"/>
                <low data="611.38"/>
                <volume data="1593250"/>
                <avg_volume data="2817"/>
                <market_cap data="199714.99"/>
                <open data="620.43"/>
                <y_close data="621.25"/>
                <change data="-7.00"/>
                <perc_change data="-1.13"/>
                <delay data="0"/>
                <trade_timestamp data="7 hours ago"/>
                <trade_date_utc data="20120305"/>
                <trade_time_utc data="210005"/>
                <current_date_utc data="20120306"/>
                <current_time_utc data="041621"/>
                <symbol_url data="/finance?client=ig&amp;q=GOOG"/>
                <chart_url data="/finance/chart?q=NASDAQ:GOOG&amp;tlf=12"/>
                <disclaimer_url data="/help/stock_disclaimer.html"/>
                <ecn_url data=""/>
                <isld_last data=""/>
                <isld_trade_date_utc data=""/>
                <isld_trade_time_utc data=""/>
                <brut_last data=""/>
                <brut_trade_date_utc data=""/>
                <brut_trade_time_utc data=""/>
                <daylight_savings data="false"/>
            </finance>
        </xml_api_reply>
    </results>
</query>
You can see the two distinct stocks, as they are defined by the finance XML header. You can also see the information this YQL call returns ie: high, low, close, open, last, change etc…
If you want more info on how to parse the Google Finance API data in C# take a look at the Yahoo Finance version I’ve posted Reading the Yahoo Finance API in C#

Source http://www.jarloo.com/google-finance-and-yql/

No comments:

Post a Comment