Commercial Free & Open

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.

Status Tracker Past 24 hours

Current status

Operational

100.0% operational in known checks

Checked Jun 4, 10:10 AM

24h ago Now
Operational Polling issues Impacted No data
All sources
Data access source profile JSON profile →

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

apiautomation-readydelistedend-userjsonliveness-onlyportalunofficial-endpoints
Access & Pricing Visit source →

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
Visit Data Source

Data Formats

json api

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

Learn

Recent articles

View all →