Pricing
from $0.06 / 1,000 chart rows
Yahoo Finance Stock Data Scraper
π Extract Yahoo Finance quote metadata and OHLCV chart rows for stocks, ETFs, indices, forex, crypto, and funds in clean datasets.
Pricing
from $0.06 / 1,000 chart rows
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Extract public Yahoo Finance stock quote metadata and historical OHLCV chart rows for stocks, ETFs, indices, crypto pairs, forex pairs, and funds. Use it to turn symbols such as AAPL, MSFT, SPY, BTC-USD, or ^GSPC into clean dataset rows that are ready for spreadsheets, dashboards, backtests, and automations.
What does Yahoo Finance Stock Data Scraper do?
- π Fetches Yahoo Finance chart rows for one or many symbols.
- π―οΈ Returns open, high, low, close, and volume values for each timestamp.
- π·οΈ Adds quote metadata such as exchange, currency, previous close, and current regular market price.
- π¦ Saves flat JSON rows that export cleanly to CSV, Excel, Google Sheets, databases, and BI tools.
- β οΈ Keeps per-symbol error rows so bad tickers do not stop the whole run.
Who is it for?
- Investors can collect repeatable historical prices for portfolio analysis.
- Market researchers can compare symbols across a consistent period and interval.
- Data teams can schedule stock datasets for warehouses and dashboards.
- Automation builders can trigger alerts or enrich workflows with recent Yahoo Finance market data.
- Developers can call the Actor API instead of maintaining ticker-fetching scripts.
Why use this actor?
- β Multi-symbol input in one run.
- β Simple range and interval controls.
- β Flat, typed output with timestamp and ISO date.
- β Works well for recurring jobs because the input stays compact.
- β Designed for public market data workflows without browser automation.
Example use cases
- Build a daily stock-price export for watchlists.
- Collect ETF OHLCV data for allocation dashboards.
- Backfill one month or one year of candles for a trading model.
- Compare market movements across tickers after earnings or macro events.
- Refresh Google Sheets, Airtable, or a database with clean Yahoo Finance rows.
Data returned
- Each dataset row represents one symbol at one chart timestamp.
- The same quote metadata is repeated per row so exported files remain self-contained.
- Rows with a symbol-level problem include the
errorfield instead of failing the entire run. - Numeric fields are returned as numbers, not formatted strings.
- Dates are returned in ISO format for easy sorting and parsing.
Output fields
symbolβ Yahoo Finance symbol returned by the source.exchangeNameβ exchange code when available.currencyβ quote currency.regularMarketPriceβ latest regular market price from quote metadata.previousCloseandchartPreviousCloseβ previous close values from metadata.timezoneβ exchange timezone.rangeandintervalβ requested chart settings.timestampanddateβ raw Unix timestamp and ISO date.open,high,low,close,volumeβ OHLCV values.sourceUrlβ Yahoo Finance quote page URL.scrapedAtβ when the row was collected.errorβ per-symbol error message when applicable.
How much does it cost to scrape Yahoo Finance stock data?
- The Actor uses pay-per-event pricing: a
$0.005start event plus oneresultevent for each saved chart row. - Current per-row tiers are
$0.000115on FREE,$0.0001on BRONZE,$0.000078on SILVER,$0.00006on GOLD,$0.00004on PLATINUM, and$0.000028on DIAMOND. - Example FREE-plan cost: 3 symbols Γ about 22 daily rows for
1mo= 66 rows Γ$0.000115+$0.005start β$0.0126. - Example BRONZE cost: 10 symbols Γ about 252 daily rows for
1y= 2,520 rows Γ$0.0001+$0.005start β$0.257. - Example GOLD cost: 50 symbols Γ about 22 daily rows for
1mo= 1,100 rows Γ$0.00006+$0.005start β$0.071. - Free-plan users can run small watchlists and short daily ranges cheaply; use shorter ranges or coarser intervals when testing.
How to use it
- Open the Actor input page.
- Enter one or more ticker symbols.
- Choose a range such as
1mo,6mo,1y, ormax. - Choose an interval such as
1d,1wk, or1mo. - Run the Actor and export the dataset as JSON, CSV, Excel, or via API.
Input: symbols
- Use Yahoo Finance ticker syntax.
- Examples:
AAPL,MSFT,SPY,BTC-USD,EURUSD=X,^GSPC. - Symbols are normalized to uppercase and duplicates are removed.
- Invalid symbols create error rows so valid symbols still finish.
- Start with a small watchlist when testing a new interval or range.
Input: range
- Supported values include
1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd, andmax. - The default range is
1mo. - Longer ranges produce more rows and therefore cost more.
- Some intervals are only available for shorter ranges.
- If Yahoo Finance rejects a combination, the actor records an error row for the symbol.
Input: interval
- Supported intervals include
1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo, and3mo. - The default interval is
1d. - Intraday intervals usually work only for recent ranges.
- Daily, weekly, and monthly intervals are best for historical backfills.
- Use the same interval across symbols when comparing time series.
Tips for best results
- Use valid Yahoo Finance symbols exactly as shown on Yahoo Finance.
- Prefer daily candles for long-range historical analysis.
- Keep concurrency at the default unless you have a large watchlist.
- Review the
errorcolumn after each run. - Schedule recurring runs for stable dashboards.
Integrations
- Send dataset rows to Google Sheets for lightweight portfolio tracking.
- Load CSV exports into Excel or Numbers for analysis.
- Connect Apify integrations to Make, Zapier, or webhooks.
- Use the API to push rows into PostgreSQL, BigQuery, Snowflake, or a data lake.
- Trigger downstream alerts when recent close prices meet your rules.
API usage with Node.js
Install the Apify client with npm install apify-client, set APIFY_TOKEN, and call the actor by its full owner/name ID.
import{ ApifyClient }from'apify-client';const client =newApifyClient({token: process.env.APIFY_TOKEN});const run =await client.actor('fetch_cat/yahoo-finance-stock-data-scraper').call({symbols:['AAPL','MSFT','SPY'],range:'1mo',interval:'1d',includeRawTimestamps:true,maxConcurrency:3,});const{ items }=await client.dataset(run.defaultDatasetId).listItems({limit:1000});console.log(items.slice(0,3));
API usage with Python
Install the client with pip install apify-client, set APIFY_TOKEN, and stream rows from the default dataset.
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("fetch_cat/yahoo-finance-stock-data-scraper").call(run_input={"symbols":["AAPL","MSFT","SPY"],"range":"1mo","interval":"1d","includeRawTimestamps":True,"maxConcurrency":3,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
API usage with cURL
Use the synchronous dataset-items endpoint for small jobs when you want results returned directly in the response.
RUN_JSON=$(curl-sS\"https://api.apify.com/v2/acts/fetch_cat~yahoo-finance-stock-data-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN"\-H'Content-Type: application/json'\-d'{"symbols": ["AAPL", "MSFT", "SPY"],"range": "1mo","interval": "1d","includeRawTimestamps": true,"maxConcurrency": 3}')echo"$RUN_JSON"
For larger jobs, start an async run with /runs, poll until it succeeds, and download https://api.apify.com/v2/datasets/<DATASET_ID>/items.
MCP usage
- You can connect this Actor to Claude through Apify MCP.
- Use the MCP URL with
?tools=fetch_cat/yahoo-finance-stock-data-scraper. - Claude Code setup example:
claude mcp add apify-yahoo-finance https://mcp.apify.com/?tools=fetch_cat/yahoo-finance-stock-data-scraper. - Claude Desktop JSON config example:
{"mcpServers":{"apify-yahoo-finance":{"url":"https://mcp.apify.com/?tools=fetch_cat/yahoo-finance-stock-data-scraper"}}}
- Example prompt: βFetch one month of daily rows for AAPL, MSFT, and SPY.β
- Example prompt: βCompare closing prices for BTC-USD and ETH-USD over the last five days.β
- MCP is useful for ad hoc research and spreadsheet-style workflows.
Scheduling
- Create a schedule in Apify Console for daily or weekly refreshes.
- Use a small symbol list for frequent jobs.
- Use longer ranges for backfills and shorter ranges for ongoing updates.
- Export each run or connect it to a webhook.
- Monitor run errors if your ticker universe changes over time.
Troubleshooting
- If a symbol returns an error, verify it on Yahoo Finance and copy the exact ticker.
- If intraday data fails, try a shorter range or daily interval.
- If a run returns fewer rows than expected, remember markets close on weekends and holidays.
- If costs are higher than expected, reduce range length or use a coarser interval.
- If you need fields not included here, request a feature for fundamentals, news, or options.
Legality and responsible use
- This Actor extracts publicly available market data.
- Respect Yahoo Finance terms and applicable laws for your use case.
- Do not use scraped data for unlawful trading, market manipulation, or redistribution that violates your agreements.
- For regulated investment workflows, verify data quality independently.
- You are responsible for how you use and store the exported data.
Related scrapers
These related actors from fetch_cat can complement Yahoo Finance price data:
- Google News Scraper β monitor public news results for tickers, companies, competitors, or market themes.
- Google Trending Searches Scraper β track broad public search interest that may explain market attention.
- Y Combinator Companies Scraper β collect startup/company data for market maps and lead lists.
- LinkedIn Jobs Scraper β enrich market research with hiring demand signals.
- Schedule each actor separately so failures stay isolated and datasets stay easy to troubleshoot.
FAQ
- Can I scrape multiple tickers? Yes, add them to the
symbolsarray. - Can I get crypto data? Yes, use Yahoo Finance symbols such as
BTC-USD. - Can I get forex data? Yes, use Yahoo Finance symbols such as
EURUSD=X. - Can I export to CSV? Yes, every Apify dataset can be exported as CSV.
- Does one invalid ticker stop the run? No, it creates an error row and continues.
Changelog
- Version 0.1 focuses on chart rows and quote metadata.
- Initial fields include OHLCV, timestamp, exchange, currency, market price, and errors.
- Future versions may add fundamentals, dividends, news, or options if requested.
- Pricing is pay-per-result so small tests stay inexpensive.
- The default input is intentionally small for a cheap first run.
Example input
{"symbols":["AAPL","MSFT","SPY"],"range":"1mo","interval":"1d","includeRawTimestamps":true,"maxConcurrency":3}
Example output row
{"symbol":"AAPL","exchangeName":"NMS","currency":"USD","regularMarketPrice":295.95,"range":"1mo","interval":"1d","date":"2026-06-17T20:00:00.000Z","open":294.38,"high":302.07,"low":294.38,"close":295.95,"volume":42329351,"error":null}
Field checklist for exports
- Include
symbolin downstream schema mappings. - Include
exchangeNamein downstream schema mappings. - Include
currencyin downstream schema mappings. - Include
regularMarketPricein downstream schema mappings. - Include
previousClosein downstream schema mappings. - Include
chartPreviousClosein downstream schema mappings. - Include
timezonein downstream schema mappings. - Include
rangein downstream schema mappings. - Include
intervalin downstream schema mappings. - Include
timestampin downstream schema mappings. - Include
datein downstream schema mappings. - Include
openin downstream schema mappings. - Include
highin downstream schema mappings. - Include
lowin downstream schema mappings. - Include
closein downstream schema mappings. - Include
volumein downstream schema mappings. - Include
sourceUrlin downstream schema mappings. - Include
scrapedAtin downstream schema mappings. - Include
errorin downstream schema mappings.
