Answered Apr 14, 2015 · 106 votes
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.
Answered Dec 28, 2009 · 33 votes
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]
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.
Answered May 29, 2015 · 25 votes
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.
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.