yfinance-data
himself65/finance-skills
Fetch stock quotes, financials, options, and market data from Yahoo Finance via yfinance.
What is yfinance-data?
Retrieves financial and market data from Yahoo Finance using the yfinance Python library. Use this skill when the user requests stock prices, historical data, financial statements, options chains, dividends, earnings, analyst ratings, holdings, news, or multi-ticker comparisons.
- Fetch current stock quotes and historical OHLCV price data
- Retrieve financial statements (income statement, balance sheet, cash flow)
- Access options chains, calls, and puts with expiration dates
- Get dividends, stock splits, and corporate actions
- Pull earnings history, analyst price targets, and recommendations
- Query institutional and insider holdings
How to install yfinance-data
npx skills add https://github.com/himself65/finance-skills --skill yfinance-data- Python 3 environment
- yfinance library (auto-installed if missing via pip)
How to use yfinance-data
- 1.Check if yfinance is installed; install via pip if needed
- 2.Identify the data category the user needs (price, financials, options, etc.)
- 3.Use the appropriate yfinance method (e.g., ticker.history(), ticker.balance_sheet, ticker.option_chain())
- 4.Wrap code in try/except to handle rate-limiting or missing data
- 5.Format and present results with key columns highlighted and notable data points called out
Use cases
- Get current stock price and recent price history for a ticker symbol
- Analyze quarterly or annual financial statements for revenue and profitability trends
- Retrieve options chain data to evaluate call and put pricing
- Compare historical performance across multiple stocks simultaneously
- Screen stocks by sector or industry using yfinance screener tools
- Financial analysts and researchers
- Investment professionals and traders
- Data scientists building financial models
- Students learning about market data and finance
- Anyone analyzing stock fundamentals or technical data
yfinance-data FAQ
yfinance fetches data from Yahoo Finance. It is not affiliated with Yahoo, Inc., and data is intended for research and educational purposes.
You can request data back to the earliest available on Yahoo Finance (often decades for major stocks). Intraday data (1m intervals) is limited to ~7 days; hourly data to ~730 days.
yfinance provides near-real-time quotes via ticker.info or ticker.fast_info, though there may be slight delays compared to live market feeds.
Use yf.download() with a list of tickers for faster multi-threaded retrieval, or loop through individual Ticker objects.
Wrap requests in try/except blocks to handle rate-limiting or data gaps. Verify the ticker symbol is correct and that the data exists on Yahoo Finance.
Full instructions (SKILL.md)
Source of truth, from himself65/finance-skills.
name: yfinance-data description: > Fetch financial and market data with the yfinance Python library (Yahoo Finance). Use this skill whenever the user wants stock data: current quotes and price history, financial statements (income statement, balance sheet, cash flow), options chains, dividends and splits, earnings and analyst estimates, price targets and ratings, institutional and insider holdings, news, multi-ticker comparisons, stock screens, or sector and industry data. Use it even when the user gives only a ticker symbol (AAPL, MSFT, TSLA) and the intent has to be inferred. For earnings previews or recaps, estimate revisions, valuation, correlation, liquidity, or ETF premium analysis, prefer the dedicated skill.
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 "exec('try:\n import yfinance\n print(\'yfinance \' + yfinance.__version__ + \' installed\')\nexcept Exception:\n print(\'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.screen() + 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 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
Answer with the numbers the user asked for first, then the supporting table (markdown, or a trimmed DataFrame with the key columns). Call out anything notable in the data — an earnings beat or miss, unusual volume, a dividend change — and add context such as sector averages, historical ranges, or analyst consensus where it changes how the numbers read. If the user wants a chart, pair the data with a visualization.
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
Estimate intrinsic value via DCF, peer multiples, and sum-of-parts methods with sensitivity analysis.

discord-reader
Read Discord servers, channels, and messages for financial research via opencli.

earnings-preview
Pre-earnings briefing with consensus estimates, beat/miss history, and analyst sentiment from Yahoo Finance.

earnings-recap
Analyze company earnings reports with actual vs estimated EPS, surprise size, and stock price reaction using Yahoo Finance data.

hithink-finance
Query, analyze, sync, and export A-share stocks, indices, funds, futures, and options data from Tonghuashun Finance via CLI, MCP, or REST API.

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