views:

7144

answers:

11

Is there any sort of API that just offers a simple symbol lookup service? i.e., input a company name and it will tell you the ticker symbol? I've tried just screen-scraping Google Finance, but after a little while it rate limits you and you have to enter a CAPTCHA. I'm trying to batch-lookup about 2000 ticker symbols. Any ideas?

A: 

Your best bets are probably going with one of the other lookup services (still screen-scraping), and checking whether they don't require CAPTCHAs.

The last appears the least likely to require a CAPTCHA at any point, but it's worth checking all three.

Noldorin
+1  A: 

Google Finance has an API - you probably have to apply for a developers key, but at least you'd save yourself the hassle of screen-scraping: http://code.google.com/apis/finance/reference.html

mjd79
+7  A: 

You can send an HTTP request to http://finance.yahoo.com requesting symbols, names, quotes, and all sorts of other data. Data is returned as a .CSV so you can request multiple symbols in one query.

So if you send:

http://finance.yahoo.com/d/quotes.csv?s=MSFT+F+ATT&f=sn

You'll get back something like:

"MSFT","Microsoft Corp"
"F","FORD MOTOR CO"
"ATT","AT&T"

Here is an article called Downloading Yahoo Data which includes the various tags used to request the data.

Enjoy,

Robert C. Cartaino

Robert Cartaino
Unfortunately, finding the company name from a symbol is easy. I'm looking for a way to automate a batch-lookup of ticker symbols from a list of company names. Google has by far the best search, I can find the symbol for almost any company in my list without having to manually search, but Google has rate-limiting and will give you a 503 error after about 1000 requests.
dancavallaro
not an answer, but useful for the domain
kenny
+1  A: 

If you didn't want to sign up for a service, I'd probably go back to the exchanges themselves; most of them aren't CAPTCHAed yet...

The symbol lookup page for:

etc...

Stobor
Better yet, skip symbol lookup at the exchange sites -- just screen-scrape their full listings into your own local table and do the lookup yourself.
John Pirie
@John Pirie: Yeah, that too... :-)
Stobor
A: 

This thread is exactly what I'm looking for...

Can someone tell me if the google API works to find ticker symbols from a batch load of company names?

+10  A: 

You can use yahoo's symbol lookup like so:

http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback

Where query is the company name.

You'll get something like this in return:

YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"ya","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ"},{"symbol":"AUY","name": "Yamana Gold, Inc.","exch": "NYQ","type": "S","exchDisp":"NYSE"},{"symbol":"YZC","name": "Yanzhou Coal Mining Co. Ltd.","exch": "NYQ","type": "S","exchDisp":"NYSE"},{"symbol":"YRI.TO","name": "YAMANA GOLD INC COM NPV","exch": "TOR","type": "S","exchDisp":"Toronto"},{"symbol":"8046.TW","name": "NAN YA PRINTED CIR TWD10","exch": "TAI","type": "S","exchDisp":"Taiwan"},{"symbol":"600319.SS","name": "WEIFANG YAXING CHE 'A'CNY1","exch": "SHH","type": "S","exchDisp":"Shanghai"},{"symbol":"1991.HK","name": "TA YANG GROUP","exch": "HKG","type": "S","exchDisp":"Hong Kong"},{"symbol":"1303.TW","name": "NAN YA PLASTIC TWD10","exch": "TAI","type": "S","exchDisp":"Taiwan"},{"symbol":"0294.HK","name": "YANGTZEKIANG","exch": "HKG","type": "S","exchDisp":"Hong Kong"},{"symbol":"YAVY","name": "Yadkin Valley Financial Corp.","exch": "NMS","type": "S","exchDisp":"NASDAQ"}]}})

Which is JSON and very easy to work with.

Hush... don't tell anybody.

Jalmarez
+3  A: 

Google Finance does let you retrieve up to 100 stock quotes at once using the following URL:

www.google.com/finance/info?infotype=infoquoteall&q=[ticker1],[ticker2],...,[tickern]

For example:

www.google.com/finance/info?infotype=infoquoteall&q=C,JPM,AIG

Someone has deciphered the available fields here:

http://qsb-mac.googlecode.com/svn/trunk/Vermilion/Modules/StockQuoter/StockQuoter.py

The current price ("l") is real-time and the delay is on par with Yahoo Finance. There are a few quirks you should be aware of. A handful of stocks require an exchange prefix. For example, if you query "BTIM", you'll get a "Bad Request" error but "AMEX:BTIM" works. A few stocks don't work even with the exchange prefix. For example, querying "FTWRD" and "NASDAQ:FTWRD" both generate "Bad Request" errors even though Google Finance does have information for this NASDAQ stock.

The "el" field, if present, tells you the current pre-market or after-hours price.

Aliphany
A: 

Which JSON parser do you use for this?

foxy
A: 

Use YQL: a sql-like language to retrieve stuff from public api's: YQL Console (external link)

It gives you a nice XML file to work with!

Fabdrol
A: 

is there any API to lookup for synbols with wildcard. For Ex: goo* should return all stocks starting with goo like goog etc. Any help would be great

Satish
A: 

You can use the "Company Search" operation in the Company Fundamentals API here: http://www.mergent.com/servius/

Eugene Osovetsky