Community data 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.

API Quickstart

No quickstart snippet available for this source yet.

💳 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

Notable Datasets

8 total
  • Global Equities (70,000+ tickers)
  • ETFs and Indices
  • Forex pairs
  • Cryptocurrency
  • Options chains
  • Earnings calendars
  • Analyst estimates
  • Basic fundamentals
Visit Data Source

Access

Cost
Free
Access type
Open
Update alerts
Not offered

Data Profile

Coverage
Global
Frequency
Real-time
History from
1962
Source updated
Jan 2025

Data Formats

json api

How to Access

  • 🌐 Browser/UI
  • Automation Ready programmable

Index entry

Added: May 2, 2026

Last indexed: May 2, 2026

~ Community-sourced entry

Learn

Recent guides

View all →