Python wrapper for an unofficial Yahoo Finance API
Python wrapper for an unofficial Yahoo Finance API
Documentation: https://yahooquery.dpguthrie.com
Interactive Demo: https://yahooquery.streamlit.app/
Source Code: https://github.com/dpguthrie/yahooquery
Blog Post: https://towardsdatascience.com/the-unofficial-yahoo-finance-api-32dcf5d53df
Overview
Yahooquery is a python interface to unofficial Yahoo Finance API endpoints. The package allows a user to retrieve nearly all the data visible via the Yahoo Finance front-end.
Some features of yahooquery:
- Fast: Data is retrieved through API endpoints instead of web scraping. Additionally, asynchronous requests can be utilized with simple configuration
- Simple: Data for multiple symbols can be retrieved with simple one-liners
- User-friendly: Pandas Dataframes are utilized where appropriate
- Premium: Yahoo Finance premium subscribers are able to retrieve data available through their subscription
Requirements
Python 3.9+ - Versions on or after 2.4.0 require python 3.9+
- Pandas - Fast, powerful, flexible and easy to use open source data analysis and manipulation tool
- Requests - The elegant and simple HTTP library for Python, built for human beings.
- Requests-Futures - Asynchronous Python HTTP Requests for Humans
Yahoo Finance Premium Subscribers
- Selenium - Web browser automation
Installation
If you're a Yahoo Finance premium subscriber and would like to retrieve data available through your subscription, do the following:
pip install yahooquery[premium]
Otherwise, omit the premium argument:
pip install yahooquery
You can also install with uv if you have that installed:
uv pip install yahooquery
Example
The majority of the data available through the unofficial Yahoo Finance API is related to a company, which is represented in yahooquery as a Ticker. You can instantiate the Ticker class by passing the company's ticker symbol. For instance, to get data for Apple, Inc., pass aapl as the first argument to the Ticker class:
from yahooquery import Ticker
aapl = Ticker('aapl')
aapl.summary_detail
Multiple Symbol Example
The Ticker class also makes it easy to retrieve data for a list of symbols with the same API. Simply pass a list of symbols as the argument to the Ticker class.
from yahooquery import Ticker
symbols = ['fb', 'aapl', 'amzn', 'nflx', 'goog']
faang = Ticker(symbols)
faang.summary_detail
License
This project is licensed under the terms of the MIT license.
