business, webdev

Yahoo Finance (hidden) API

London vis a vis Finance
I was looking for long time after a way to get some finance data from sources like: google, yahoo etc’ without the need to parse long html pages. Then a friend point me to some simple pipe that fetch this information. From there the (short) step to gain access to this nice (hidden) API was inevitable.

In a nutshell, if you want to get data on some stocks you can use this request:

where some special tags:

a Ask a2 Average Daily Volume a5 Ask Size
b Bid b2 Ask (Real-time) b3 Bid (Real-time)
b4 Book Value b6 Bid Size c Change & Percent Change
c1 Change c3 Commission c6 Change (Real-time)
c8 After Hours Change (Real-time) d Dividend/Share d1 Last Trade Date
d2 Trade Date e Earnings/Share e1 Error Indication (returned for symbol changed / invalid)
e7 EPS Estimate Current Year e8 EPS Estimate Next Year e9 EPS Estimate Next Quarter
f6 Float Shares g Day’s Low h Day’s High
j 52-week Low k 52-week High g1 Holdings Gain Percent
g3 Annualized Gain g4 Holdings Gain g5 Holdings Gain Percent (Real-time)
g6 Holdings Gain (Real-time) i More Info i5 Order Book (Real-time)
j1 Market Capitalization j3 Market Cap (Real-time) j4 EBITDA
j5 Change From 52-week Low j6 Percent Change From 52-week Low k1 Last Trade (Real-time) With Time
k2 Change Percent (Real-time) k3 Last Trade Size k4 Change From 52-week High
k5 Percebt Change From 52-week High l Last Trade (With Time) l1 Last Trade (Price Only)
l2 High Limit l3 Low Limit m Day’s Range
m2 Day’s Range (Real-time) m3 50-day Moving Average m4 200-day Moving Average
m5 Change From 200-day Moving Average m6 Percent Change From 200-day Moving Average m7 Change From 50-day Moving Average
m8 Percent Change From 50-day Moving Average n Name n4 Notes
o Open p Previous Close p1 Price Paid
p2 Change in Percent p5 Price/Sales p6 Price/Book
q Ex-Dividend Date r P/E Ratio r1 Dividend Pay Date
r2 P/E Ratio (Real-time) r5 PEG Ratio r6 Price/EPS Estimate Current Year
r7 Price/EPS Estimate Next Year s Symbol s1 Shares Owned
s7 Short Ratio t1 Last Trade Time t6 Trade Links
t7 Ticker Trend t8 1 yr Target Price v Volume
v1 Holdings Value v7 Holdings Value (Real-time) w 52-week Range
w1 Day’s Value Change w4 Day’s Value Change (Real-time) x Stock Exchange
y Dividend Yield

Simple, right? :)

As for historical data you can use something like:

where the FROM date is: &a=01&b=10&c=2010
and the TO date is: &d=01&e=19&f=2010
You can also get it as CSV file with link like:

Now, if you want to play with the data you are getting from yahoo! you can run some fun SQL like:

  • Getting the Standard divination of a specific stock:
    SELECT stock, STD(Close-Price) from `historic_prices` where stock = "NFLX" AND date > "2010-01-01" group by stock

    This will give you the Standard divination on NetFlix (hot hot stock these days) from the beginning of 2010 (and like the meaning of the universe… it’s 42!)

  • For more great examples on statistic and SQL check out this SQL cookbook

Happy hacking!


21 thoughts on “Yahoo Finance (hidden) API

  1. Pingback: Yahoo Finance (hidden) API « Ido's Blog

  2. I actually found some information buried in a forum that this is a reverse-engineered way of pulling the data and violates the Yahoo TOS. Is this true?

  3. The issue I run into is getting historical bid ask prices. How do you combine a date with a ticker and a bid ask price quote over some time when the “f” parameter acts as both the year parameter and the tags parameter?

  4. Is there a place where there is a complete list of available tickers and indexes that are supported by the Yahoo Finance API. I see some tickers like AAL.L where the .L indicates London. I assume that this could be used to identify a stock from a particular exchange but do not know if this applies to all stocks. I also see some are prefixed by ^GSPC (encoded as %5EGSPC), is there a list of these? Any advice as to where to find a complete list would be appreciated and I an sure it will be of help to others.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s