Get Stock Data from Yahoo Finance in Google Spreadsheets

G
Published in: Google Apps Script

Google Finance is no longer integrated with Google Apps Script but you can still use Yahoo Finance with the URLFetch service to bring stock data from the Yahoo website into your Google Spreadsheet. Yahoo Finance data is available in CSV format that can be parsed with parseCSV method of Google Scripts.

function getYahooFinanceData(stockSymbol, startDate, endDate) {

  stockSymbol = stockSymbol || "GOOG";

  var start = new Date(startDate),
      end   = new Date(endDate),
      data  = [];

  var url = "http://real-chart.finance.yahoo.com/table.csv?s=" + stockSymbol +
            "&a=" + start.getMonth() + "&b=" + start.getDate() + "&c=" + start.getFullYear() +
            "&d=" + end.getMonth() + "&e=" + end.getDate() + "&f=" + end.getFullYear() +
            "&g=d&ignore=.csv";

  var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});

  if (response.getResponseCode()) {

    var textFile = response.getContentText();

    // If the URL is incorrect, Yahoo will return a 404 html page and not a CSV
    if (textFile.indexOf("") == -1) {

      var csv = Utilities.parseCsv(textFile);
      for (var i=csv.length-1; i>1; i--) {
        data.push(csv[i]);
      }

    }

  }

  return data;

}
Published in: Google Apps Script

Looking for something? Find here!

Meet the Author

Web Geek, Tech Columnist
A
Amit Agarwal

Amit Agarwal is a Google Developer Expert in GSuite and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India. Read more on Lifehacker and YourStory

Get in touch