Yahoo Finance
Widely-used source for historical and real-time market data across global equities, ETFs, forex, and crypto. Accessed primarily via the yfinance Python library. Unofficial API — ideal for research and prototyping; not suitable as a sole source for production commercial pipelines.
Current status
100.0% operational in known checks
Checked Jun 4, 10:10 AM
Access
delisted
Collection level
L0
Confidence
low
Recommended next action
Delisted from active collection: Yahoo Finance has no official public API; unofficial query endpoints are fragile and should not be marketed as a data source.
Exportable data
unofficial
Docker fit
not_recommended
Estimated size
unknown
Cost
Free
Access type
open
Signup required
No
Update alerts
Not offered
Coverage
global
Update frequency
real-time
Source Documentation
What You're Getting
yfinance provides market data — OHLCV price history, real-time quotes, options chains, earnings dates, analyst estimates, and basic fundamentals — for global equities, ETFs, indices, forex, and crypto. The yfinance library wraps the unofficial API and handles response parsing. Price history is split and dividend-adjusted. For most research and prototyping use cases, it's the fastest path to clean price data with no setup.
Ingestion Strategy
import yfinance as yf
# Single ticker — full history
spy = yf.Ticker("SPY")
hist = spy.history(period="max")
print(f"SPY rows: {len(hist)}, from {hist.index.min().date()} to {hist.index.max().date()}")
# Batch download
tickers = ["SPY", "QQQ", "GLD", "TLT"]
batch = yf.download(tickers, start="2010-01-01", auto_adjust=True)
closes = batch["Close"]
# Fundamentals
msft = yf.Ticker("MSFT")
info = msft.info
print(info.get("trailingPE"), info.get("totalRevenue"))
Rate Limits & API Details
- No published limit; ~2,000 req/hour before soft throttling
- yfinance:
pip install yfinance - Periods:
1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max - Intervals:
1m(last 7d),1h(last 730d),1d,1wk,1mo
Schema Stability
Unstable by nature — Yahoo periodically changes internal endpoints without notice. Pin yfinance to a known-good version in production. The history() DataFrame columns (Open, High, Low, Close, Volume, Dividends, Stock Splits) have been consistent for years.
Data Quality Gotchas
- Unofficial API: may break without notice
- Adjusted prices: use
auto_adjust=True(default in recent versions) explicitly - Timezone handling: intraday data timezone varies by exchange — normalize to UTC on ingest
- Missing fundamentals: some fields are empty for non-US or smaller tickers
Data Formats
API Quickstart
No snippet available yet.
How to Access
- 🌐 end user
- ⚡ automation ready programmable
Notable Datasets
8 total- ▸ Global Equities (70,000+ tickers)
- ▸ ETFs and Indices
- ▸ Forex pairs
- ▸ Cryptocurrency
- ▸ Options chains
- ▸ Earnings calendars
- ▸ Analyst estimates
- ▸ Basic fundamentals
Index entry
Added: May 2, 2026
Last indexed: Jun 4, 2026
Unverified entry