Comprehensive access to Yahoo Finance data via the yahooquery Python library. This library provides programmatic access to nearly all Yahoo Finance endpoints, including real-time pricing, fundamentals, analyst estimates, options, news, and premium research.
The primary interface for retrieving data about one or more securities.
from yahooquery import Ticker
# Single or multiple symbols
aapl = Ticker('AAPL')
tickers = Ticker('AAPL MSFT NVDA', asynchronous=True)
Access to pre-built screeners for discovering stocks by criteria.
from yahooquery import Screener
s = Screener()
screeners = s.available_screeners # List all available screeners
data = s.get_screeners(['day_gainers', 'most_actives'], count=10)
Access proprietary research reports and trade ideas.
from yahooquery import Research
r = Research(username='you@email.com', password='password')
reports = r.reports(report_type='Analyst Report', report_date='Last Week')
trades = r.trades(trend='Bullish', term='Short term')
The Ticker class exposes dozens of data endpoints via properties and methods.
.income_statement(frequency='a', trailing=True) - Income statement (annual/quarterly).balance_sheet(frequency='a', trailing=True) - Balance sheet.cash_flow(frequency='a', trailing=True) - Cash flow statement.all_financial_data(frequency='a') - Combined financials + valuation measures.valuation_measures - EV/EBITDA, P/E, P/B, P/S across periods.price - Current pricing, market cap, 52-week range.history(period='1y', interval='1d', start=None, end=None) - Historical OHLC1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo.option_chain - Full options chain (all expirations).calendar_events - Next earnings date, EPS/revenue estimates.earning_history - Actual vs. estimated EPS (last 4 quarters).earnings - Historical quarterly/annual earnings and revenue.earnings_trend - Analyst estimates for upcoming periods.recommendation_trend - Buy/Sell/Hold rating changes over time.gradings - Recent analyst upgrades/downgrades.asset_profile - Address, industry, sector, business summary, officers.company_officers - Executives with compensation details.summary_profile - Condensed company information.key_stats - Forward P/E, profit margin, beta, shares outstanding.financial_data - Financial KPIs (ROE, ROA, debt-to-equity, margins).insider_holders - List of insider holders and positions.insider_transactions - Recent buy/sell transactions by insiders.institution_ownership - Top institutional holders.fund_ownership - Top mutual fund holders.major_holders - Ownership summary (institutional %, insider %, float).esg_scores - Environmental, Social, Governance scores and controversies.recommendation_rating - Analyst consensus (Strong Buy → Strong Sell).news() - Recent news articles.technical_insights - Bullish/bearish technical patterns.fund_holding_info - Top holdings, bond/equity breakdown.fund_performance - Historical performance and returns.fund_bond_holdings / .fund_bond_ratings - Bond maturity and credit ratings.fund_equity_holdings - P/E, P/B, P/S for equity holdings.summary_detail - Trading stats (day high/low, volume, avg volume).default_key_statistics - Enterprise value, trailing P/E, forward P/E.index_trend - Performance relative to a benchmark index.quote_type - Security type, exchange, marketimport yahooquery as yq
# Search
results = yq.search('NVIDIA')
# Market Data
market = yq.get_market_summary(country='US') # Major indices snapshot
trending = yq.get_trending(country='US') # Trending tickers
# Utilities
currencies = yq.get_currencies() # List of supported currencies
exchanges = yq.get_exchanges() # List of exchanges
rate = yq.currency_converter('USD', 'EUR') # Exchange rate
The Ticker, Screener, and Research classes accept these optional parameters:
asynchronous=True - Make requests asynchronously (for multiple symbols)max_workers=8 - Number of concurrent workers (when async)retry=5 - Number of retry attemptsbackoff_factor=0.3 - Exponential backoff between retriesstatus_forcelist=[429, 500, 502, 503, 504] - HTTP codes to retrytimeout=5 - Request timeout in secondsformatted=False - If True, returns data with {raw, fmt, longFmt} structurevalidate=True - Validate symbols on instantiation (invalid → .invalid_symbols)country='United States' - Regional data/news (france, germany, canada, etc.)proxies={'http': 'http://proxy:port'} - HTTP/HTTPS proxyuser_agent='...' - Custom user agent stringverify=True - SSL certificate verificationusername='you@email.com' / password='...' - Yahoo Finance Premium loginsession=... / crumb=... - Share auth between Research and Ticker instancestickers = Ticker('AAPL MSFT NVDA TSLA', asynchronous=True)
prices = tickers.price # Returns dict keyed by symbol
Most financial methods return pandas.DataFrame. Convert for JSON output:
df = aapl.income_statement()
print(df.to_json(orient='records', date_format='iso'))
Yahoo limits 1-minute data to 7 days per request. For 30 days:
tickers = Ticker('AAPL', asynchronous=True)
df = tickers.history(period='1mo', interval='1m') # Makes 4 requests automatically
r = Research(username='...', password='...')
reports = r.reports(sector='Technology', investment_rating='Bullish')
# Reuse session for Ticker
tickers = Ticker('AAPL', session=r.session, crumb=r.crumb)
data = tickers.asset_profile
portfolio = Ticker('AAPL MSFT NVDA', asynchronous=True)
summary = portfolio.summary_detail
earnings = portfolio.earnings
history = portfolio.history(period='1y')
s = Screener()
gainers = s.get_screeners(['day_gainers'], count=20)
# Returns DataFrame with price, volume, % change, etc.
nvda = Ticker('NVDA')
options = nvda.option_chain
# Filter for calls/puts, strikes, expirations
tickers = Ticker('AAPL MSFT NVDA')
calendar = tickers.calendar_events
# Shows next earnings date + analyst estimates
Full API docs at: /Users/henryzha/.openclaw/workspace-research/skills/yahooquery/references/
index.md - Overview of classes and functionsticker/ - Detailed breakdown of all Ticker methodsscreener.md - Screener class guideresearch.md - Research class (Premium)keyword_arguments.md - Complete list of configuration optionsmisc.md - Global utility functionsadvanced.md - Sharing sessions between Research and Tickerpython3 -m pip install yahooqueryretry, backoff_factor, and status_forcelist for robustness.共 1 个版本