- yfinance Data Skill
- Fetches financial and market data from Yahoo Finance using the
- yfinance
- Python library.
- Important
- yfinance is not affiliated with Yahoo, Inc. Data is for research and educational purposes. Step 1: Ensure yfinance Is Available Before running any code, install yfinance if needed: import subprocess , sys subprocess . check_call ( [ sys . executable , "-m" , "pip" , "install" , "-q" , "yfinance" ] ) Always include this at the top of your script. Step 2: Identify What the User Needs Match the user's request to one or more data categories below, then use the corresponding code from references/api_reference.md . User Request Data Category Primary Method Stock price, quote Current price ticker.info or ticker.fast_info Price history, chart data Historical OHLCV ticker.history() or yf.download() Balance sheet Financial statements ticker.balance_sheet Income statement, revenue Financial statements ticker.income_stmt Cash flow Financial statements ticker.cashflow Dividends Corporate actions ticker.dividends Stock splits Corporate actions ticker.splits Options chain, calls, puts Options data ticker.option_chain() Earnings, EPS Analysis ticker.earnings_history Analyst price targets Analysis ticker.analyst_price_targets Recommendations, ratings Analysis ticker.recommendations Upgrades/downgrades Analysis ticker.upgrades_downgrades Institutional holders Ownership ticker.institutional_holders Insider transactions Ownership ticker.insider_transactions Company overview, sector General info ticker.info Compare multiple stocks Bulk download yf.download() Screen/filter stocks Screener yf.Screener + yf.EquityQuery Sector/industry data Market data yf.Sector / yf.Industry News News ticker.news Step 3: Write and Execute the Code General pattern import subprocess , sys subprocess . check_call ( [ sys . executable , "-m" , "pip" , "install" , "-q" , "yfinance" ] ) import yfinance as yf ticker = yf . Ticker ( "AAPL" )
... use the appropriate method from the reference
Key rules Always wrap in try/except — Yahoo Finance may rate-limit or return empty data Use yf.download() for multi-ticker comparisons — it's faster with multi-threading For options, list expiration dates first with ticker.options before calling ticker.option_chain(date) For quarterly data , use quarterly_ prefix: ticker.quarterly_income_stmt , ticker.quarterly_balance_sheet , ticker.quarterly_cashflow For large date ranges , be mindful of intraday limits — 1m data only goes back ~7 days, 1h data ~730 days Print DataFrames clearly — use .to_string() or .to_markdown() for readability, or select key columns Valid periods and intervals Periods 1d , 5d , 1mo , 3mo , 6mo , 1y , 2y , 5y , 10y , ytd , max Intervals 1m , 2m , 5m , 15m , 30m , 60m , 90m , 1h , 1d , 5d , 1wk , 1mo , 3mo Step 4: Present the Data After fetching data, present it clearly: Summarize key numbers in a brief text response (current price, market cap, P/E, etc.) Show tabular data formatted for readability — use markdown tables or formatted DataFrames Highlight notable items — earnings beats/misses, unusual volume, dividend changes Provide context — compare to sector averages, historical ranges, or analyst consensus when relevant If the user seems to want a chart or visualization, combine with an appropriate visualization approach (e.g., generate an HTML chart or describe the trend). Reference Files references/api_reference.md — Complete yfinance API reference with code examples for every data category Read the reference file when you need exact method signatures or edge case handling.