yfinance-data — Claude Code skill: quotes and financials via Yahoo
Skill fetches stock quotes, financial statements, options, dividends and holder data through the yfinance library (Yahoo Finance).
npx skills add himself65/finance-skills --skill yfinance-data -a claude-codeWhat yfinance-data does
Skill recognizes requests for quotes and price history, balance sheets, income statements, cash flows, options chains, dividends, splits, analyst estimates, recommendations, institutional and insider holders, news and multi-ticker comparisons. Just name a ticker (AAPL, MSFT, TSLA) and the agent picks the method. Inside: yfinance install check, automatic pip install, API method lookup by data category table and code execution with error handling.
Yahoo Finance data is for research and educational purposes; the library is not affiliated with Yahoo, Inc. Quarterly data uses methods with the quarterly_ prefix; multiple tickers use yf.download() with multi-threading; options first query expiration dates via ticker.options. Minute intervals (1m) are limited to seven days, hourly (1h) to two years.
What it helps with
- fetch current price and historical quotes for a ticker
- retrieve balance sheet, income statement and cash flow for a company
- find options chains, dividends, splits and analyst forecasts
- compare quotes for multiple tickers over a period
- pull institutional holder and insider transaction data
Example prompts for the agent
- Show me current price and market cap for AAPL
- Get balance sheet and income statement for TSLA over the last year
- Compare closing prices for MSFT and GOOGL over three months
How to install yfinance-data
1Skills CLI (Vercel)
npx skills add himself65/finance-skills --skill yfinance-data -a claude-code2Manually: put the files in place
~/.claude/skills/yfinance-data/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/yfinance-data/
1Skills CLI (Vercel)
npx skills add himself65/finance-skills --skill yfinance-data -a codex2Manually: put the files in place
.agents/skills/yfinance-data/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add himself65/finance-skills --skill yfinance-data -a cursor2Manually: put the files in place
.cursor/skills/yfinance-data/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install himself65/finance-skills yfinance-data2Manually: put the files in place
.github/skills/yfinance-data/SKILL.md1Skills CLI (Vercel)
npx skills add himself65/finance-skills --skill yfinance-data -a gemini-cli2Platform CLI
gemini skills install https://github.com/himself65/finance-skills --path plugins/market-analysis/skills/yfinance-dataManually: put the files in place
.devin/skills/yfinance-data/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add himself65/finance-skills --skill yfinance-data -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set3
The whole set →Similar
Questions about yfinance-data
How to install yfinance-data in Claude Code?
Run npx skills add himself65/finance-skills --skill yfinance-data -a claude-code, then check ~/.claude/skills/yfinance-data/SKILL.md.
What does the yfinance-data skill do?
It fetches stock quotes, financial statements, options, dividends, analyst forecasts and holder data through the yfinance library (Yahoo Finance).
What data can I get with yfinance-data?
Current quotes and price history, balance sheets, income statements, cash flows, options chains, dividends, splits, analyst forecasts and recommendations, institutional and insider holder data, news and multi-ticker comparisons.
Source text
SKILL.md · MIT
---
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
If your host has not already executed the shell probes below (for example, in Codex), run the commands inside the `!` wrappers with its shell tool before choosing a setup path. Use the actual output; if shell access is unavailable, report that limitation.
Fetches financial and market data from Yahoo Finance using the [yfinance](https://github.com/ranaroussi/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:
```python
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
```python
import yfinance as yf
ticker = yf.Ticker("AAPL")
# ... use the appropriate method from the reference
```
### Key rules
1. **Always wrap in try/except** — Yahoo Finance may rate-limit or return empty data
2. **Use `yf.download()` for multi-ticker comparisons** — it's faster with multi-threading
3. **For options, list expiration dates first** with `ticker.options` before calling `ticker.option_chain(date)`
4. **For quarterly data**, use `quarterly_` prefix: `ticker.quarterly_income_stmt`, `ticker.quarterly_balance_sheet`, `ticker.quarterly_cashflow`
5. **For large date ranges**, be mindful of intraday limits — 1m data only goes back ~7 days, 1h data ~730 days
6. **Print DataFrames clearly** — use `.to_string()` or `.to_markdown()` for readability, or select key columns
7. **Timezone handling** — yfinance returns tz-aware datetime indices (e.g., `America/New_York`). When comparing dates, always use `pd.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.
© himself65 · MIT · himself65/finance-skills