Yahoo Finance Scraper - Stocks, Crypto, Quotes & History
Pricing
from $3.00 / 1,000 results
Yahoo Finance Scraper - Stocks, Crypto, Quotes & History
Scrape Yahoo Finance reliably: real-time stock & crypto quotes, historical OHLCV, fundamentals, and symbol search. Solves the 429 rate-limiting that breaks free yfinance. No API key. Export JSON/CSV/Excel.
Yahoo Finance Scraper – Stocks, Crypto, Quotes & History (No API Key)
Scrape Yahoo Finance market data reliably: real-time quotes for stocks, crypto, FX, ETFs and indices; historical OHLCV price history; fundamentals (company profile, financials, key statistics); and ticker search — all via Yahoo's public JSON endpoints. No API key, no login. Export to JSON, CSV, or Excel.
Built for stock & crypto market research, portfolio tracking, backtesting datasets, and financial dashboards.
Why this scraper
The free yfinance library and naive scripts keep breaking with HTTP 429 (Too Many Requests) and "Invalid Cookie / Invalid Crumb" errors, because Yahoo now gates its quote and fundamentals endpoints behind a session cookie + crumb handshake and rate-limits by IP. This Actor implements that handshake the way yfinance does it internally — fetch a session cookie, obtain a fresh crumb, reuse both — and adds automatic crumb refresh on 401, exponential back-off on 429, IP rotation via Apify Proxy, and request pacing. That is the edge: it keeps pulling data when free tools get blocked.
What it does
- 📈 Real-time quotes – price, change, % change, market cap, volume, day high/low, 52-week range, P/E, dividend yield, and more. Batched (many symbols per request).
- 🕯️ Historical OHLCV – open, high, low, close, adjusted close, and volume per bar, from 1-minute intraday up to monthly, over ranges up to
max. - 🏢 Fundamentals – company profile (sector, industry, website, employees), key statistics, summary detail, and financial data via Yahoo's
quoteSummarymodules. - 🔎 Symbol search – look up tickers by company/asset name.
- 🪙 Any asset class – stocks, crypto (
BTC-USD), FX (EURUSD=X), indices (^GSPC), ETFs (SPY). - 🛡️ Reliable – cookie+crumb handshake, refresh on Invalid Crumb, 429 back-off, proxy rotation, graceful skipping of delisted/invalid tickers.
Example input
{"dataType": "quote","symbols": ["AAPL", "MSFT", "BTC-USD", "EURUSD=X"],"proxyConfiguration": { "useApifyProxy": true }}
Historical:
{"dataType": "historical","symbols": ["AAPL", "TSLA"],"interval": "1d","range": "6mo","proxyConfiguration": { "useApifyProxy": true }}
Fundamentals:
{"dataType": "fundamentals","symbols": ["AAPL"],"modules": ["assetProfile", "summaryDetail", "financialData", "defaultKeyStatistics"]}
Search:
{"dataType": "search","searchQuery": "apple"}
Example output
Quote (type: "quote")
{"type": "quote","symbol": "AAPL","name": "Apple Inc.","quoteType": "EQUITY","exchange": "NasdaqGS","currency": "USD","price": 283.78,"change": 2.41,"changePercent": 0.857,"previousClose": 281.37,"dayHigh": 285.95,"dayLow": 274.21,"volume": 261244321,"marketCap": 4200000000000,"fiftyTwoWeekHigh": 317.4,"fiftyTwoWeekLow": 199.26,"trailingPE": 31.2,"marketState": "REGULAR","scrapedAt": "2026-06-26T15:00:00.000Z"}
Historical bar (type: "bar")
{"type": "bar","symbol": "AAPL","date": "2026-06-25T13:30:00.000Z","timestamp": 1782480600,"open": 281.10,"high": 285.95,"low": 274.21,"close": 283.78,"adjClose": 283.78,"volume": 261244321,"currency": "USD"}
Fundamentals (type: "fundamentals")
{"type": "fundamentals","symbol": "AAPL","name": "Apple Inc.","sector": "Technology","industry": "Consumer Electronics","website": "https://www.apple.com","country": "United States","employees": 164000,"marketCap": 4200000000000,"currency": "USD","trailingPE": 31.2,"dividendYield": 0.0045,"revenue": 400000000000,"recommendationKey": "buy","targetMeanPrice": 305.0,"modules": ["assetProfile", "summaryDetail", "price", "defaultKeyStatistics", "financialData"],"summaryDetail": { "trailingPE": 31.2, "marketCap": 4200000000000 },"scrapedAt": "2026-06-26T15:00:00.000Z"}
Search result (type: "searchResult")
{"type": "searchResult","symbol": "AAPL","name": "Apple Inc.","exchange": "NASDAQ","assetType": "Equity","sector": "Technology","industry": "Consumer Electronics","query": "apple","scrapedAt": "2026-06-26T15:00:00.000Z"}
Output fields
Every item carries a type discriminator so you can split the dataset by output kind.
Quote (type: "quote")
| Field | Description |
|---|---|
symbol | Ticker symbol |
name | Company / asset name |
quoteType | EQUITY, CRYPTOCURRENCY, CURRENCY, INDEX, ETF, … |
exchange | Exchange name |
currency | Quote currency |
price | Current/last regular-market price |
change | Absolute price change |
changePercent | Percent price change |
previousClose | Previous close |
open | Regular-market open |
dayHigh / dayLow | Intraday high / low |
volume | Regular-market volume |
marketCap | Market capitalization |
fiftyTwoWeekHigh / fiftyTwoWeekLow | 52-week high / low |
trailingPE / forwardPE | Price/earnings ratios |
epsTrailingTwelveMonths | Trailing EPS |
dividendYield | Dividend yield |
bid / ask | Bid / ask |
preMarketPrice / postMarketPrice | Extended-hours prices (when available) |
marketState | PRE, REGULAR, POST, CLOSED |
regularMarketTime | Quote timestamp (ISO 8601) |
scrapedAt | Scrape timestamp (ISO 8601) |
Historical bar (type: "bar")
| Field | Description |
|---|---|
symbol | Ticker symbol |
date | Bar timestamp (ISO 8601) |
timestamp | Unix epoch seconds |
open / high / low / close | OHLC prices |
adjClose | Split/dividend-adjusted close |
volume | Bar volume |
currency | Quote currency |
Fundamentals (type: "fundamentals")
| Field | Description |
|---|---|
symbol | Ticker symbol |
name | Company name |
sector / industry | Classification |
website / country / employees | Profile basics |
marketCap / currency | Valuation |
trailingPE / forwardPE / beta | Key statistics |
dividendYield / profitMargins | Ratios |
revenue / revenueGrowth | Financials |
recommendationKey / targetMeanPrice | Analyst signals |
modules | Modules requested (array) |
<moduleName> | Each requested module, flattened (e.g. summaryDetail, financialData) |
scrapedAt | Scrape timestamp (ISO 8601) |
Search result (type: "searchResult")
| Field | Description |
|---|---|
symbol | Ticker symbol |
name | Company / asset name |
exchange | Exchange (display) |
assetType | Equity, Cryptocurrency, ETF, … |
sector / industry | Classification (when available) |
score | Yahoo relevance score |
query | The search query used |
Input reference
| Field | Type | Description |
|---|---|---|
dataType | string | quote, historical, fundamentals, or search (default quote). |
symbols | array | Tickers to fetch (quote / historical / fundamentals). |
searchQuery | string | Name to look up (only for search). |
interval | string | Bar size for historical (1m…3mo, default 1d). |
range | string | History range for historical (1d…max, default 1mo). |
modules | array | quoteSummary modules for fundamentals. |
requestDelayMs | integer | Delay between requests in ms (default 600). |
proxyConfiguration | object | Apify Proxy settings (residential recommended at volume). |
Common use cases
- Portfolio & watchlist tracking – batch quotes for a list of holdings.
- Backtesting & quant research – pull historical OHLCV for many symbols.
- Fundamental screening – sector, P/E, margins, revenue, analyst targets.
- Crypto & FX monitoring –
BTC-USD,ETH-USD,EURUSD=X, etc. - Dashboards & alerts – schedule runs and feed a spreadsheet or BI tool.
Notes & limits
- Rate limiting: Yahoo throttles by IP (HTTP 429). This Actor paces requests, backs off, rotates proxy IPs, and refreshes the crumb on 401. For large symbol lists, use residential proxies and/or increase
requestDelayMs. - Intraday history: intervals below
1d(e.g.1m,5m) are only available for short ranges (typically ≤ 60 days) per Yahoo's own limits. - Crumb flow changes: Yahoo occasionally changes the cookie/crumb handshake (cookie host, EU consent gate, crumb location). The Actor has a fallback consent flow, but if quotes/fundamentals suddenly fail with 401, the handshake is the first thing to revisit.
- Unofficial source: these are Yahoo's public web endpoints, not a supported/commercial API. Data is provided as-is; respect Yahoo's terms and use responsibly.
- Delisted / invalid tickers are skipped and logged rather than crashing the run.
FAQ
Do I need a Yahoo / API key? No. The Actor uses Yahoo's public JSON endpoints and handles the cookie+crumb session for you.
Why does free yfinance keep getting 429 / Invalid Crumb? Yahoo rate-limits by IP and rotates the crumb. This Actor refreshes the crumb on 401, backs off on 429, and rotates IPs via Apify Proxy.
Which symbols are supported? Anything Yahoo Finance lists: stocks (AAPL), crypto (BTC-USD), FX (EURUSD=X), indices (^GSPC), ETFs (SPY).
Can I get many symbols at once? Yes — quote batches up to ~50 symbols per request. Historical and fundamentals are one request per symbol.
Is the data real-time? Quotes are Yahoo's regular-market values, which for many exchanges are delayed (commonly ~15 min). Crypto and FX are effectively live.