Knowledge Base | How to Load Historical Stock Prices from Yahoo Finance to CSV

How to Load Historical Stock Prices from Yahoo Finance to CSV

Updated: August 28, 2019

Contents

Historical Prices at Yahoo Finance

Yahoo Finance provides data for a lot of exchanges.

You can open https://finance.yahoo.com/, search a ticker like AAPL, and click the 'Historical Data' tab.

You can use URLs like https://finance.yahoo.com/quote/AAPL/history to open pages with historical prices directly.

You can download historical prices to a CSV file using the 'Download Data' link above the Volume column.

You can download data for the required selected period.
Unfortunately, Yahoo disabled loading historical prices using download utilities in May 2017.

Undocumented URLs to Download Historical Prices from Yahoo Finance

Yahoo Finance uses an internal web service to load historical stock and currency prices into its web pages.

You can use any tool like CURL to download data.

Also, you can use a specialized tool, gsqlcmd, to download and convert JSON data to CSV.

For example, to get daily historical prices, use the command:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=2y&interval=1d&indicators=quote&includeTimestamps=true" AAPL.csv ^
    /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.unadjquote

To get weekly historical prices:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=5y&interval=1wk&indicators=quote&includeTimestamps=true" AAPL-weekly.csv ^
    /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.unadjquote

To get monthly historical prices:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=max&interval=1mo&indicators=quote&includeTimestamps=true; AAPL-monthly.csv ^
    /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.unadjquote

To get 1-minute intraday prices:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=1d&interval=1m&indicators=quote&includeTimestamps=true" AAPL-1.csv
    

To get 5-minute intraday prices:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=5d&interval=5m&indicators=quote&includeTimestamps=true" AAPL-5.csv
    

To get 15-minute intraday prices:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=5d&interval=15m&indicators=quote&includeTimestamps=true" AAPL-15.csv
    

To get 60-minute intraday prices:

gsqlcmd convert ^
    "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=1mo&interval=60m&indicators=quote&includeTimestamps=true" AAPL-15.csv
    

Use the convert mode to download and convert JSON to CSV.

Use the /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.unadjquote option to point to the JSON root of historical prices.

You can load historical prices for currencies. Just use tickers like GBPUSD=X.

Loading Historical Prices from Yahoo Finance with Batch Files

gsqlcmd allows automating downloads using batch files.

Create a text file like 'task.txt' and place tickers one by line like:

TICKERS.TXT
AAPL
FB
GOOGL

Create a batch file like 'load.cmd' with the following commands:

LOAD.CMD
@echo off

@for /F %%i in (tickers.txt) do (
    gsqlcmd convert ^
        "https://query1.finance.yahoo.com/v7/finance/chart/%%i?range=2y&interval=1d&indicators=quote&includeTimestamps=true" %%i.CSV ^
        /delay=200 /echoOutputFileName /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.unadjquote
)

Run it. You will see the result:

C:>load.cmd
AAPL.CSV - 504 rows
FB.CSV - 504 rows
GOOGL.CSV - 504 rows

Pay attention to the /delay parameter. Use the delay to avoid banning your IP due to frequent multiple automatic requests.

Downloading Historical Prices from Yahoo Finance using MARKET.CSV

MARKET.CSV is a specialized tool for loading data from Yahoo Finance and MSN Money.

For example, you can place the required tickers to a file like tickers.txt.

TICKERS.TXT
^VIX
SPY
126.1.AAPL.NAS
NYSE:BRK.B
RIO.L
GBPUSD

Then, you can execute the following commands to download data using the required data providers:

C:\MarketData
market.csv.exe download YahooHistoricalPricesDaily
market.csv.exe download YahooHistoricalPricesWeekly
market.csv.exe download YahooHistoricalPricesMonthly
market.csv.exe download YahooIntradayPrices1m
market.csv.exe download YahooIntradayPrices5m
market.csv.exe download YahooIntradayPrices15m
market.csv.exe download YahooIntradayPrices60m

The tool downloads data, archives the data to zip files, and converts the data to CSV.

You can get results in the output files like YahooHistoricalPricesDaily.csv, YahooHistoricalPricesWeekly.csv, etc.

Moreover, MARKET.CSV includes ready-to-use SQL codes and format files to import CSV data into a Microsoft SQL Server database.

Downloads

Products for Traders and Investors
MARKET.CSV
The app loads data from Yahoo Finance and MSN Money to CSV and SQL Server
Version: 2.18 | 03/22/2021 | 1.5MB | Getting Started | What's New | Edition Comparison
Download
gsqlcmd
This tool downloads, converts, and imports data from Yahoo Finance and MSN Money
Version: 5.9 | 07/22/2020 | 14.6MB | www.gsqlcmd.com
Download

Disclaimer

Yahoo Finance is a logo and registered trademark of Yahoo! Inc.