yfinance-data
himself65/finance-skills
Fetch stock prices, financial statements, and market data from Yahoo Finance using yfinance.
What is yfinance-data?
Retrieves financial and market data from Yahoo Finance via the yfinance Python library. Use this skill whenever users ask for stock prices, historical data, financial statements, options chains, dividends, earnings, analyst recommendations, or any market data by ticker symbol.
- Fetch current stock prices and quotes
- Retrieve historical OHLCV price data with configurable periods and intervals
- Access financial statements (balance sheet, income statement, cash flow)
- Get options chains, calls, and puts data with expiration dates
- Retrieve dividends, stock splits, and corporate actions
- Access analyst price targets, recommendations, and upgrades/downgrades
How to install yfinance-data
npx skills add https://github.com/himself65/finance-skills --skill yfinance-data- Python 3 environment with pip
- yfinance library (auto-installed if not present)
- Internet connection to access Yahoo Finance
How to use yfinance-data
- 1.Check if yfinance is installed; install with pip if needed
- 2.Identify the data category the user needs (price, financials, options, etc.)
- 3.Create a Ticker object with the stock symbol (e.g., yf.Ticker('AAPL'))
- 4.Call the appropriate method based on the data type (e.g., ticker.history(), ticker.balance_sheet, ticker.option_chain())
- 5.For quarterly data, use quarterly_ prefix methods
- 6.Wrap code in try/except to handle rate limits or missing data
- 7.Format and present results clearly with summaries and tables
Use cases
- Get current price and key metrics for a single stock ticker
- Download historical price data for technical analysis or backtesting
- Compare financial metrics across multiple companies
- Retrieve options chain data for a specific expiration date
- Analyze dividend history and corporate actions
- Financial analysts and researchers
- Investment portfolio managers
- Traders and quantitative analysts
- Data scientists building financial models
- Anyone needing programmatic access to market data
yfinance-data FAQ
yfinance fetches data from Yahoo Finance. It is not affiliated with Yahoo, Inc. Data is intended for research and educational purposes.
Most daily data goes back many years. Intraday data has limits: 1m data only ~7 days back, 1h data ~730 days back. Use valid periods like '1y', '5y', 'max' for longer ranges.
Yes, use yf.download() with a list of tickers for faster multi-threaded downloads, or loop through individual Ticker objects.
yfinance returns tz-aware datetime indices (e.g., America/New_York). Use pd.Timestamp with tz parameter or strip timezones with .tz_localize(None) when comparing dates.
Wrap requests in try/except blocks to handle errors gracefully. Add delays between requests if making many calls, and consider using yf.download() for bulk operations as it's optimized for multiple tickers.
Full instructions (SKILL.md)
Source of truth, from himself65/finance-skills.
name: yfinance-data description: > Fetch financial and market data using the yfinance Python library. Use this skill whenever the user asks for stock prices, historical data, financial statements, options chains, dividends, earnings, analyst recommendations, or any market data. Triggers include: any mention of stock price, ticker symbol (AAPL, MSFT, TSLA, etc.), "get me the financials", "show earnings", "what's the price of", "download stock data", "options chain", "dividend history", "balance sheet", "income statement", "cash flow", "analyst targets", "institutional holders", "compare stocks", "screen for stocks", or any request involving Yahoo Finance data. Always use this skill even if the user only provides a ticker — infer intent from context.
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
Current environment status:
!`python3 -c "import yfinance; print('yfinance ' + yfinance.__version__ + ' installed')" 2>/dev/null || echo "YFINANCE_NOT_INSTALLED"`
If YFINANCE_NOT_INSTALLED, install it before running any code:
import subprocess, sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "yfinance"])
If yfinance is already installed, skip the install step and proceed directly.
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.optionsbefore callingticker.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 - Timezone handling — yfinance returns tz-aware datetime indices (e.g.,
America/New_York). When comparing dates, always usepd.Timestamp(..., tz=...)or strip timezones with.tz_localize(None). See the reference file for details.
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.
Related skills
More from himself65/finance-skills and the wider catalog.

company-valuation
>

discord-reader
>

earnings-preview
>

earnings-recap
>

cli-anything
Build, refine, test, and validate CLI harnesses for GUI applications using the CLI-Anything methodology.

cli-hub-meta-skill
Discover and install agent-native CLIs for creative, productivity, AI, and development workflows.