Retrieve nearly all data from Yahoo Finance for one or more ticker symbols
Project description
Yahooquery
Python wrapper around an unofficial Yahoo Finance API.
Install
pip install yahooquery
Ticker
The Ticker module is the access point to the Yahoo Finance API. Pass a ticker symbol to the Ticker class.
from yahooquery import Ticker
aapl = Ticker('aapl')
Or pass a list of tickers.
tickers = Ticker(['aapl', 'msft'])
Data
Based on the data you'd like, the result will either be accessed through a dict or as a pandas.DataFrame. Accessing data is incredibly easy and pythonic.
Dictionaries
aapl = Ticker('aapl')
# Asset Profile
aapl.asset_profile
{'aapl': {'address1': 'One Apple Park Way', 'city': 'Cupertino', ... }}
# ESG Scores
aapl.esg_scores
{'aapl': {'totalEsg': 72.27, 'environomentScore': 89.81, ... }}
# Financial Data
aapl.financial_data
{'aapl': {'currentPrice': 275.15, 'targetHighPrice': 342.4, ... }}
# Key Statistics
aapl.key_stats
{'aapl': {'priceHint': 2, 'enterpriseValue': 1230054359040, ... }}
# Price Information
aapl.price
{'aapl': {'preMarketChange': {}, 'preMarketPrice': {}, ... }}
# Quote Type
aapl.quote_type
{'aapl': {'exchange': 'NMS', 'quoteType': 'EQUITY', ... }}
# Share Purchase Activity
aapl.share_purchase_activity
{'aapl': {'period': '6m', 'buyInfoCount': 20, ... }}
# Summary Information
aapl.summary_detail
{'aapl': {'priceHint': 2, 'previousClose': 271.46, ... }}
aapl.summary_profile
{'aapl': {'address1': 'One Apple Park Way', 'city': 'Cupertino', ... }}
How about more than one ticker?
# Pass a list of tickers to the Ticker class
tickers = Ticker(['aapl', 'msft'])
tickers.asset_profile
{'aapl': {'address1': 'One Apple Park Way', 'city': 'Cupertino', ... }, 'msft': {'address1': 'One Microsoft Way', 'city': 'Redmond', ... }}
tickers.esg_scores
{'aapl': {'totalEsg': 72.27, 'environomentScore': 89.81, ... }, 'msft': {'totalEsg': 74.8, 'environmentScore': 84.17, ... }}
tickers.financial_data
{'aapl': {'currentPrice': 275.15, 'targetHighPrice': 342.4, ... }, 'msft': {'currentPrice': 154.53, 'targetHighPrice': 174.0, ... }}
tickers.key_stats
{'aapl': {'priceHint': 2, 'enterpriseValue': 1230054359040, ... }, 'msft': {'priceHint': 2, 'enterpriseValue': 1127840350208, ... }}
tickers.price
{'aapl': {'preMarketChange': {}, 'preMarketPrice': {}, ... }, 'msft': {'preMarketChange': {}, 'preMarketPrice': {}, ... }}
tickers.quote_type
{'aapl': {'exchange': 'NMS', 'quoteType': 'EQUITY', ... }, 'msft': {'exchange': 'NMS', 'quoteType': 'EQUITY', ... }}
tickers.share_purchase_activity
{'aapl': {'period': '6m', 'buyInfoCount': 20, ... }, 'msft': {'period': '6m', 'buyInfoCount': 30, ... }}
tickers.summary_detail
{'aapl': {'priceHint': 2, 'previousClose': 271.46, ... }, 'msft': {'priceHint': 2, 'previousClose': 153.24, ... }}
tickers.summary_profile
{'aapl': {'address1': 'One Apple Park Way', 'city': 'Cupertino', ... }, 'msft': {'address1': 'One Microsoft Way', 'city': 'Redmond', ... }}
Dataframes
aapl.balance_sheet
aapl.cash_flow
aapl.company_officers
aapl.earning_history
aapl.grading_history
aapl.income_statement
aapl.insider_holders
aapl.insider_transactions
aapl.institution_ownership
aapl.recommendation_trend
aapl.sec_filings
aapl.fund_ownership
aapl.major_holders
aapl.earnings_trend
Fund Specific
Mutual Funds have many of the accessors detailed above as well as the additional ones below:
fund = Ticker('rpbax')
fund.fund_category_holdings # pandas.DataFrame
fund.fund_bond_ratings # pandas.DataFrame
fund.fund_sector_weightings # pandas.DataFrame
fund.fund_performance # dict
fund.fund_bond_holdings # dict
fund.fund_equity_holdings # dict
Options
Retrieve option pricing for every expiration date for given ticker(s)
aapl.option_chain # returns pandas.DataFrame
Historical Pricing
Historical price data can be retrieved for one or more tickers through the history method.
aapl.history()
If no arguments are provided, as above, default values will be supplied for both period and interval, which are ytd and 1d, respectively. Additional arguments you can provide to the method are start and end. Start and end dates can be either strings with a date format of yyyy-mm-dd or as a datetime.datetime object.
aapl.history(period='max')
aapl.history(start='2019-05-01') # Default end date is now
aapl.history(end='2018-12-31') # Default start date is 1900-01-01
# Period options = 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
# Interval options = 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo
If trying to retrieve more than one ticker, one dataframe will be returned and the column ticker can be used to identify each row appropriately.
tickers = Ticker(['aapl', 'msft'])
tickers.history()
| dates | volume | open | low | high | close | ticker |
|---|---|---|---|---|---|---|
| 2019-01-02 07:30:00 | 37039700 | 154.89 | 154.23 | 158.85 | 157.92 | AAPL |
| 2019-01-03 07:30:00 | 91312200 | 143.98 | 142 | 145.72 | 142.19 | AAPL |
| 2019-12-12 07:30:00 | 24612100 | 151.65 | 151.02 | 153.44 | 153.24 | MSFT |
| 2019-12-13 14:00:01 | 23850062 | 153.003 | 152.85 | 154.89 | 154.53 | MSFT |
Multiple Endpoints
Access more than one endpoint in one call using the get_multiple_endoints method of the Ticker class. This method ONLY returns dictionaries.
aapl = Ticker('aapl')
endpoints = ['assetProfile', 'esgScores', 'incomeStatementHistory']
aapl.get_multiple_endpoints(endpoints)
{'aapl': {'assetProfile': {...}, 'esgScores', {...}, 'incomeStatementHistory', {...}}}
Type Ticker._ENDPOINTS to view the list of endpoints supported through this method.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yahooquery-1.0.4.tar.gz.
File metadata
- Download URL: yahooquery-1.0.4.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26a70eb40f41118574d159e14a2c497dc846d95819c1126df9d63c9bb2685c9f
|
|
| MD5 |
cec2f9a91653fbe4db7350cc921225d5
|
|
| BLAKE2b-256 |
437c6a2530c4b3dc0fe702e8bd0433eee617a1748f7dcd7ca07b7e8641a6924e
|
File details
Details for the file yahooquery-1.0.4-py3-none-any.whl.
File metadata
- Download URL: yahooquery-1.0.4-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d274c265a51cfa7310eb6b0f850eb461929647b56e337d1d418c3ddd6fe77044
|
|
| MD5 |
cd445029232cc681192883ed45075795
|
|
| BLAKE2b-256 |
7656b0bdfbd1ce4b34005d092e64b7645946d78ad48a95d8d6ee4e7513494930
|