Yahoo Finance Scraper
Pricing
$1.00 / 1,000 item returneds
Yahoo Finance Scraper
Scrape Yahoo Finance with no API key: search symbols by name, get real-time price quotes (price, currency, % change, 52-week range), or pull OHLCV price history for stocks, ETFs, indices, FX and crypto. Clean structured JSON.
Pricing
$1.00 / 1,000 item returneds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Scrape Yahoo Finance with no API key and no login. Three modes:
- search — find ticker symbols by name (e.g. "apple" → AAPL).
- quote — current price snapshot for one or more symbols.
- history — OHLCV price history (candles) over a range/interval.
Works for stocks, ETFs, indices (^GSPC), FX (EURUSD=X) and crypto (BTC-USD).
It calls Yahoo's public JSON endpoints directly (query1/query2.finance.yahoo.com) — no HTML parsing, no scraping fragility.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
mode | string | quote | search | quote | history |
query | string | — | Search text (search mode), e.g. apple |
symbols | array | — | Tickers (quote/history mode), e.g. ["AAPL","MSFT","BTC-USD"] |
range | string | 1mo | 1d,5d,1mo,3mo,6mo,1y,5y,max (history) |
interval | string | 1d | 1m,5m,1d,1wk,1mo (history; intraday needs short range) |
maxItems | integer | 100 | Caps history rows / search results |
proxyConfiguration | object | { "useApifyProxy": false } | Optional; only needed if Yahoo rate-limits your IP (429) |
Examples
{ "mode": "search", "query": "apple", "maxItems": 20 }
{ "mode": "quote", "symbols": ["AAPL", "MSFT", "BTC-USD"] }
{ "mode": "history", "symbols": ["AAPL"], "range": "1mo", "interval": "1d" }
Output
search rows:
{ "symbol": "AAPL", "name": "Apple Inc.", "exchange": "NASDAQ", "quoteType": "EQUITY", "sector": "Technology", "industry": "Consumer Electronics" }
quote rows:
{ "symbol": "AAPL", "price": 201.0, "currency": "USD", "exchange": "NMS", "previousClose": 198.0, "changePct": 1.52, "fiftyTwoWeekHigh": 260.1, "fiftyTwoWeekLow": 169.2, "marketTime": "2026-06-11T20:00:00.000Z" }
history rows (one per bar):
{ "symbol": "AAPL", "date": "2026-05-12T13:30:00.000Z", "open": 210.9, "high": 211.3, "low": 206.7, "close": 207.0, "volume": 51000000 }
Every successful row has ok: true. Failures and empty results come back as ok: false rows with an errorCode (RATE_LIMITED, NOT_FOUND, NO_RESULTS, BAD_INPUT, NETWORK, …) and are never charged.
Pricing
Pay-per-result: one charge per successful row (item). Diagnostic, empty, and rate-limited rows are not charged.
Notes
- Yahoo rejects generic User-Agents — the actor always sends a browser-like UA and rotates it per retry.
- Yahoo rate-limits aggressively. On HTTP 429 the actor backs off and retries; persistent limits surface as
RATE_LIMITEDrows. Enable Apify Proxy if you hit this under high volume. - Invalid symbols surface as
NOT_FOUNDrows (other symbols in the batch still return data).