Stock ticker symbol lookup API

ApiFinanceStocks

Api Problem Overview


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?

Api Solutions


Solution 1 - Api

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.

Solution 2 - Api

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.

Solution 3 - Api

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.

Solution 4 - Api

The NASDAQ site hosts separate CSV lists for ticker symbols in each stock exchange (NYSE, AMEX and NASDAQ). You need to complete the captcha and get the CSV dump.

http://www.nasdaq.com/screening/company-list.aspx

Solution 5 - Api

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

Solution 6 - Api

Use YQL and you don't need to worry. It's a query language by Yahoo and you can get all the stock data including the name of the company for the ticker. It's a REST API and it returns the results via XML or JSON. I have a full tutorial and source code on my site take a look: http://www.jarloo.com/yahoo-stock-symbol-lookup/

Solution 7 - Api

Currently, the NASDAQ web site publicly provides CSV files containing bulk listings -- it is broken up by first letter.

> http://www.nasdaq.com/screening/companies-by-name.aspx?letter=A&render=download

Solution 8 - Api

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

Solution 9 - Api

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.

Solution 10 - Api

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!

Solution 11 - Api

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondancavallaroView Question on Stackoverflow
Solution 1 - ApiJalmarezView Answer on Stackoverflow
Solution 2 - ApiAliphanyView Answer on Stackoverflow
Solution 3 - ApiRobert CartainoView Answer on Stackoverflow
Solution 4 - ApiKarthikView Answer on Stackoverflow
Solution 5 - ApiStoborView Answer on Stackoverflow
Solution 6 - ApiKellyView Answer on Stackoverflow
Solution 7 - ApiPaulView Answer on Stackoverflow
Solution 8 - ApimattView Answer on Stackoverflow
Solution 9 - ApiNoldorinView Answer on Stackoverflow
Solution 10 - ApiFabdrolView Answer on Stackoverflow
Solution 11 - ApiEugene OsovetskyView Answer on Stackoverflow