Yahoo Finance Scraper — Live Quotes & Stock History
Pricing
from $0.86 / 1,000 live stock quotes
Yahoo Finance Scraper — Live Quotes & Stock History
Collect Yahoo Finance quotes and OHLCV bars. Get structured records with price, volume, metrics, and metadata. Run with symbols in quote or history mode; no API key or login. Pricing: $0.00089 per quote item or $0.00049 per history bar on Free plan.
Pricing
from $0.86 / 1,000 live stock quotes
Rating
5.0
(1)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
1
Bookmarked
153
Total users
53
Monthly active users
a day ago
Last modified
Features
Share
Yahoo Finance Scraper for Stocks and Crypto
Yahoo Finance Scraper collects live quotes and historical OHLCV bars for stocks, ETFs, crypto, indices and forex from Yahoo Finance. No API key, Yahoo Finance login or proxy is required.
- Extract price, volume, market cap, P/E, dividend yield and 52-week range fields.
- Fetch daily, weekly, monthly, hourly or intraday OHLCV history.
- Track portfolio prices or build datasets for stocks, ETFs, crypto, indices and forex.
- Supply historical bars to return calculations, charting or AI-agent tools.
- Inspect
parse_confidenceandwarningson every output record.
What you get
The Actor uses Yahoo Finance public quote and chart endpoints. Quote mode performs the crumb and cookie handshake; history mode uses the chart endpoint without a crumb. Every row is unified, with inapplicable or source-missing fields set to null.
| Field family | Fields | Type | Mode |
|---|---|---|---|
| Identity | symbol, currency, exchange | string | Quote and history |
| Quote identity | name, quote_type | string | Quote; history: null |
| Current pricing | regular_price, prev_close, price_change_pct | number | Quote; history: null |
| Quote ranges and metrics | day_high, day_low, fifty_two_week_high, fifty_two_week_low, trailing_pe, forward_pe, dividend_yield | number | Quote; history: null |
| Quote status | market_state | string | Quote; history: null |
| Quote time | timestamp | ISO 8601 string | Quote; history: null |
| History OHLCV | date, close, adj_close | date: ISO 8601 string; close, adj_close: number | History; quote: null |
| Shared OHLCV | open, day_high, day_low, volume | open, day_high, day_low: number; volume: integer | Quote and history |
| Market value | market_cap | number | Quote; history: null |
| Run metadata | mode | string | Quote and history |
| Run metadata | scraped_at | ISO 8601 string | Quote and history |
| Data quality | parse_confidence | number | Quote and history |
| Data quality | warnings | array of strings | Quote and history |
In history rows, day_high and day_low are the bar's high and low. Quote-only fields are null in history rows; date, close and adj_close are null in quote rows. Missing or non-numeric values are null; adj_close is null when adjustedClose is false or Yahoo sends no adjusted close.
Quote rows use Yahoo's full exchange name, such as NasdaqGS; history rows use the short exchange name, such as NMS. date contains the UTC calendar day, including for intraday intervals. parse_confidence is 1 minus deductions, rounded to 3 decimals with a minimum of 0. Quote deductions are symbol_missing 0.5, currency_missing 0.05, regular_price_missing 0.3 and prev_close_missing 0.1. History deductions are date_missing 0.3, close_missing 0.25 and open_missing 0.05. warnings is empty when nothing was deducted.
Supported symbol formats
| Category | Examples |
|---|---|
| US equities | AAPL, MSFT, GOOGL |
| ETFs | SPY, QQQ |
| Crypto | BTC-USD |
| Indices | ^GSPC |
| Forex | EURUSD=X |
Quote output contains one record per resolved symbol. History output contains one record per returned OHLCV bar.
Sample output
One complete record from a quote-mode run:
{"symbol": "AAPL","name": "Apple Inc.","quote_type": "EQUITY","currency": "USD","exchange": "NasdaqGS","regular_price": 343.91, "prev_close": 347.725,"open": 343.9, "day_high": 347.09, "day_low": 341.03,"volume": 42263954, "market_cap": 5019084521472,"price_change_pct": -1.09713,"fifty_two_week_high": 351.73, "fifty_two_week_low": 243.42,"trailing_pe": 39.43922, "forward_pe": 35.96463, "dividend_yield": 0.31,"market_state": "PRE", "timestamp": "2026-10-26T20:00:01Z","date": null, "close": null, "adj_close": null,"mode": "quote", "scraped_at": "2026-10-27T13:11:44Z","parse_confidence": 1, "warnings": []}
Pricing
The current billing model is Pay Per Event. quote-item and history-bar are charged per record pushed. Actor Start is charged once per run, once per GB of run memory, with a minimum of one event.
On the Free plan:
quote-item(Free plan): $0.00089 per event ($0.89 per 1,000 quote snapshots, $8.90 per 10,000)history-bar(Free plan): $0.00049 per event ($0.49 per 1,000 history bars, $4.90 per 10,000)apify-actor-start(Free plan): $0.00005 per event ($0.05 per 1,000 start events, $0.50 per 10,000)
A quote record is pushed and charged even when parsing leaves warnings. A symbol omitted from Yahoo's quote response and a failed history symbol produce no record or bars, so neither is charged.
Event prices by plan
| Event | Free plan | Silver plan | Gold plan |
|---|---|---|---|
| Actor Start | $0.00005 | $0.000049 | $0.0000485 |
| Historical Bar | $0.00049 | $0.0004802 | $0.0004753 |
| Live Stock Quote | $0.00089 | $0.0008722 | $0.0008633 |
| Event | Platinum plan | Diamond plan | Bronze plan |
|---|---|---|---|
| Actor Start | $0.000048 | $0.0000475 | $0.0000495 |
| Historical Bar | $0.0004704 | $0.0004655 | $0.0004851 |
| Live Stock Quote | $0.0008544 | $0.0008455 | $0.0008811 |
Worked example: 1,000 quote results = $0.89 on the Free plan, plus the Actor Start event.
1,000 history bars = $0.49 on the Free plan, plus the Actor Start event.
At the Free-plan event rates, the $5 credit covers 5,617 quote-item events assuming one start event: floor((5 - 0.00005) / 0.00089).
Apify Free plan includes $5 of monthly platform usage credit. You pay only for the events listed above. This Actor does not use the Pay per event + usage option, so platform usage of your runs (compute, proxy traffic and storage) is not billed separately.
How to use
- Select
quotefor current snapshots orhistoryfor OHLCV bars. - Enter Yahoo Finance symbols such as
AAPL,BTC-USD,^GSPCorEURUSD=X. - Set
rangeandintervalfor history mode. - Set
maxItems,adjustedCloseorincludePrePostas needed. - Run the Actor and read the structured records from the resulting dataset. On a non-paying run,
maxItemsabove20or equal to0is set to20, and only the first5symbols are kept. - Repeat the run through Apify Schedules, using a daily schedule as a starting point for price data.
Example input for one year of daily history:
{"mode": "history","symbols": ["AAPL", "BTC-USD"],"range": "1y","interval": "1d","maxItems": 1000,"adjustedClose": true,"includePrePost": false}
Export the resulting Apify dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
mode | Selects quote for a snapshot or history for OHLCV bars. | quote |
symbols | Yahoo Finance ticker array; whitespace is trimmed and symbols are uppercased. | ["AAPL", "MSFT", "GOOGL"] |
range | History lookback: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd or max. | 1mo |
interval | History interval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 1wk or 1mo. | 1d |
maxItems | Maximum total records across symbols. 0 means no limit unless the Free-plan limit overrides it. | 1000 |
adjustedClose | In history mode, retains adj_close when true; otherwise sets it to null. | true |
includePrePost | In history mode, includes pre-market and after-hours intraday bars when true. | false |
disableUsageStats | Set to true to turn off the run summary in Usage statistics. | false |
Limits and edge cases
| Condition | What happens | What to do |
|---|---|---|
| Non-paying run | The first 5 symbols are kept and maxItems is set to 20 when it is 0 or above 20. Both changes are logged; nothing is written to OUTPUT. | Use no more than 5 symbols and set maxItems to 20 or less. |
maxItems reached | The Actor stops adding records after the configured total. | Increase maxItems when more output is required, subject to plan and source limits. |
More than 100 symbols in a quote request | Quote requests are sent in batches of up to 100; non-paying runs are limited to 5 first. | The Actor batches larger lists. |
Intraday intervals 1m to 90m | Yahoo sets a limited range. A rejected combination fails that symbol; no returned bars produce no records. | Check a combination with one symbol and maxItems set to 1. |
| A symbol cannot be resolved in quote mode | Yahoo may omit it, so no record is produced. | Check the Yahoo Finance symbol format. It is not charged. |
| A history request fails for one symbol | The symbol is skipped and listed in OUTPUT as failedCount and failedDetails. The first 20 failures are listed, with reasons cut to 200 characters; no bars are produced. If every symbol fails, the run ends Succeeded with an empty dataset. | Check the symbol and range or interval, then run again if needed. |
| No symbols remain, crumb acquisition fails, a quote fetch fails, or a quote request receives HTTP 429 | The Actor writes an error to OUTPUT, returns, and the run ends Succeeded with an empty dataset. HTTP 429 is not retried. | Inspect the OUTPUT error and provide at least one non-empty symbol. |
| Records are produced, or the run is aborted, times out, or fails mid-run | Records are buffered and pushed in batches of 100, plus a final push. Pushed batches remain in the dataset and are charged. After an abort, timeout or mid-run failure, up to 99 buffered records are not in the dataset, and the final summary is not written. | Read the dataset for pushed batches and inspect the run status. |
FAQ
How much does it cost to scrape quotes and history?
Quote items cost $0.00089 per event on the Free plan and history bars cost $0.00049 per event on the Free plan. 1,000 quote results = $0.89 on the Free plan, plus the Actor Start event.
Why is my dataset empty?
This can happen when no symbols remain, quote symbols are absent from Yahoo's response, a quote request fails, every history symbol fails, or Yahoo returns no bars. Check OUTPUT, symbol formatting and the requested history combination.
What should I check if a run is not working?
Quote mode acquires a crumb before fetching quotes. If crumb acquisition or the quote fetch fails, the Actor writes an error to OUTPUT and returns. Check that error and verify the Yahoo Finance symbols.
Is using this public data legal?
The Actor uses Yahoo Finance's publicly accessible endpoints and is not affiliated with Yahoo Finance or Yahoo Inc. Whether a use is legal or allowed depends on your use case, applicable law and the source's terms; this README does not provide a legal guarantee.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.