Yahoo Finance Scraper: yfinance Alternative, Financials & News
Pricing
from $4.00 / 1,000 results
Yahoo Finance Scraper: yfinance Alternative, Financials & News
One record and one charge per ticker from Yahoo Finance: live quote, valuation and fundamentals, financial statements, holders, analyst targets, a year or more of OHLCV history, dividends, splits and news. A yfinance alternative with no API key or login.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Ben
Maintained by CommunityActor stats
0
Bookmarked
424
Total users
51
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
📈 Yahoo Finance Scraper: yfinance Alternative, Quotes, Financials, News
Screen a watchlist's fundamentals, pull financial statements, or feed a model with
market data: give it ticker symbols and get one record per ticker with the live
quote, valuation ratios, financial statements, holders, analyst targets, history and
news you select. It is a drop-in replacement for a self-hosted yfinance script
that keeps breaking on crumb tokens, cookies and 429 Too Many Requests, and needs
no Yahoo account or API key. Export to JSON/CSV/Excel, run on a schedule, call via
API, or connect to Make, Zapier or n8n.
One charge per ticker, including financials and news.
🔁 Replace yfinance in 10 lines
# Before: yfinance on your own machineimport yfinance as yfinfo = yf.Ticker("AAPL").info# After: the same Yahoo data from this Actor (pip install apify-client)from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("benthepythondev/yahoo-finance-scraper").call(run_input={"tickers": "AAPL", "dataTypes": ["quote", "info"]})info = client.dataset(run.default_dataset_id).list_items().items[0]["info"]
Written for apify-client 3.x; on 2.x the last line reads
run["defaultDatasetId"]. The record comes back with readable keys: yfinance's longName, trailingPE and
fullTimeEmployees are name, pe_ratio and employees here. Pass
"tickers": "AAPL, MSFT, GOOGL" and add history, financials or news to
dataTypes to get what yf.Ticker(...).history(), .financials and .news give
you, one record per ticker.
A sample row (shortened):
{"symbol": "AAPL","quote": { "price": 226.31, "market_cap": 3450000000000, "year_high": 237.49 },"info": { "name": "Apple Inc.", "sector": "Technology", "pe_ratio": 35.2, "target_mean_price": 245.0, "recommendation": "buy" },"scraped_at": "2026-06-26T09:00:00.000000"}
One charge per ticker; errors and empty results are free. A symbol Yahoo does not know (a typo or a delisted ticker) writes no record and costs nothing.
🤖 For AI agents
Use it for "get the quote and financial statements for these tickers". It is reachable through the Apify MCP server as benthepythondev/yahoo-finance-scraper. Smallest useful call:
{"tickers": "AAPL", "dataTypes": ["quote", "info", "financials"]}
The run returns one record per ticker. Read symbol, quote.price, quote.market_cap, info.pe_ratio, info.target_mean_price and info.recommendation; the statements are under financials. Add news for recent headlines or history (with historyPeriod) for daily prices; every block lands in the same record. Pass several symbols as "AAPL, MSFT". You are charged once per ticker record, whatever blocks it holds (prices are in the table below), plus one Actor Start per run. A symbol Yahoo does not know writes no record and is not charged, so a missing symbol in the output means it was not found. No credentials besides your Apify token.
💰 What one ticker costs
One ticker is one record and one charge, whatever you put in it. All ten data blocks fit into that single record. Which one should you use? Plain quotes for many tickers are cheaper on a per-row tool. If you also want financials or news per ticker, this record carries more for the same single charge:
| Record | Fields returned for AAPL (test run, 2026-10-28) | Charge |
|---|---|---|
Quote only (quote) | 11 fields | 1 ticker record |
Financials + news (quote, info, financials, news) | 11 quote + 43 info fields, 159 statement lines (income 39, balance sheet 69, cash flow 51), up to 20 news items | 1 ticker record |
Every data block:
| Data block | What it holds for AAPL (test run, 2026-10-28) |
|---|---|
quote | 11 live quote fields (price, volume, market cap, 52-week range) |
info | 43 profile, valuation and analyst fields |
history | 252 daily OHLCV bars for historyPeriod: 1y |
financials | 4 years of income statement (39 lines), balance sheet (69) and cash flow (51) |
holders | major holders, top 10 institutions, top 10 mutual funds |
recommendations | analyst rating counts by month |
earnings | 25 past and upcoming earnings dates with EPS estimate and surprise |
dividends | 92 dividend payments |
splits | 5 stock splits |
news | up to 20 recent headlines with publisher and link |
Price per ticker record from 2026-11-04, plus one Actor Start charge per run (per GB of memory; a default run uses 512 MB, so one start):
| Plan | Per ticker record | Actor Start |
|---|---|---|
| Free | $0.005 | $0.00005 |
| Bronze | $0.0045 | $0.000045 |
| Silver | $0.00425 | $0.0000425 |
| Gold and up | $0.004 | $0.00004 |
Worked example: one ticker, a year of daily prices plus statements. The AAPL test run above returned 252 daily bars and 159 statement lines in one record. A per-row tool bills each of those as its own result: 411 rows, which at $0.0005 to $0.001 per row is $0.21 to $0.41. Here the same data is one record: $0.005 on the Free plan. For a quote-only snapshot of many tickers a per-row tool is cheaper; once you want history or statements per ticker, one charge per ticker is.
100 tickers on the Free plan: 100 × $0.005 + $0.00005 = $0.50005, about 50 cents. Until 2026-11-04 the Actor Start charge is higher ($0.02 on Free, $0.015 Bronze, $0.012 Silver, $0.01 Gold and up); the record price is the same. Errors and empty answers are not charged as records. Platform usage (compute) is billed through these events, so there is nothing else on the invoice. The Apify Store page always shows the price in force.
💹 What is the Yahoo Finance Scraper?
It turns a list of stock symbols into structured financial datasets. Give it
tickers (e.g. AAPL, MSFT, GOOGL) and pick exactly the data you want per ticker
with the dataTypes option, from a live quote to full income statements, and it
returns one tidy record per symbol. Batch dozens or hundreds of tickers in a single
run, with no Yahoo account or API key required.
What data does it extract?
- Quote:
price,previous_close,open,day_high,day_low,volume,market_cap, 50/200-day averages, 52-week high/low - Company info:
name,sector,industry,employees,description,website,country,exchange,currency - Valuation & fundamentals:
pe_ratio,forward_pe,peg_ratio,price_to_book,eps,revenue,ebitda,net_income,profit_margin,return_on_equity,debt_to_equity,free_cash_flow - Analyst targets:
target_mean_price,target_high_price,target_low_price,recommendation,analyst_count - History: OHLCV candles (
open,high,low,close,volume,dividends,stock_splits) over your chosen period and interval - Financials: income statement, balance sheet and cash-flow statements
- Holders: major holders, institutional and mutual-fund ownership
- Recommendations: analyst rating history
- Dividends & splits: full dividend and stock-split history
- News: recent headlines with publisher and link per ticker
⬇️ Input
Pass a list of tickers and choose which data blocks to fetch:
| Field | Description |
|---|---|
tickers (required) | Stock symbols to scrape (e.g. AAPL, MSFT, GOOGL), comma-separated or one per line |
dataTypes | Which blocks to retrieve per ticker: quote, info, history, financials, holders, recommendations, earnings, dividends, splits, news |
historyPeriod | Period for historical data: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max |
historyInterval | Candle interval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo |
historyPeriod and historyInterval only apply when history is in dataTypes.
Defaults: dataTypes = quote, info; period 1mo; interval 1d. Yahoo limits
intraday candles (for example 1m only goes back a few days).
Example input
{"tickers": "AAPL, MSFT, GOOGL, AMZN, META","dataTypes": ["quote", "info", "history", "news"],"historyPeriod": "1mo","historyInterval": "1d"}
⬆️ Output
Each ticker returns one structured record (the blocks present depend on the
dataTypes you select). View as a table, or export JSON / CSV / Excel:
{"symbol": "AAPL","quote": {"price": 226.31,"previous_close": 224.47,"open": 225.10,"day_high": 227.29,"day_low": 223.10,"volume": 41855600,"market_cap": 3450000000000,"fifty_day_average": 219.84,"two_hundred_day_average": 205.12,"year_high": 237.49,"year_low": 164.08},"info": {"name": "Apple Inc.","sector": "Technology","industry": "Consumer Electronics","employees": 164000,"exchange": "NMS","currency": "USD","pe_ratio": 35.2,"eps": 6.43,"dividend_yield": 0.0044,"target_mean_price": 245.0,"recommendation": "buy","analyst_count": 41},"history": [{ "date": "2026-06-25T00:00:00-04:00", "open": 224.9, "high": 227.1, "low": 223.8, "close": 226.31, "volume": 41855600, "dividends": null, "stock_splits": 0.0 }],"news": [{ "title": "Apple unveils...", "publisher": "Reuters", "link": "https://...", "published": "1718960400", "type": "STORY" }],"scraped_at": "2026-06-26T09:00:00.000000"}
💡 Use cases
- 📊 Fintech & trading apps: power dashboards and watchlists with reliable, real-time market data.
- 🔬 Quant research & backtesting: pull historical OHLCV across many tickers for model development.
- 💼 Portfolio & risk tools: track positions, valuation multiples, exposure and news in one feed.
- 🤖 AI / LLM finance apps: feed structured fundamentals and headlines as context for analysis.
❓ FAQ
How do I scrape Yahoo Finance without an API key? Just give the actor a list of
tickers and choose your dataTypes. No Yahoo account, API key or crumb token is
needed, access is handled for you.
Do I need an API key or login? No. It reads publicly available data and manages rate limits, cookies and tokens internally.
How many tickers can I scrape at once? There is no fixed cap in the Actor. Tickers
are read one after another, so a very large list, especially with history or
financials, needs a longer run timeout. Pass them comma-separated or one per line; each ticker becomes
its own record.
Which data types cost extra? None. The price is per ticker record whichever
dataTypes you select. Heavier types (history over max, financials, holders,
earnings) only make the record bigger and the run slower.
How much does a year of prices plus financial statements cost for one stock? One ticker record: $0.005 on the Free plan, $0.004 from Gold up (from 2026-11-04). For AAPL that record held 252 daily bars and 159 statement lines; a tool that bills per row would count 411 results for the same data.
Is this a yfinance alternative? Yes. It runs yfinance for you on Apify, so
you get the same Yahoo data without keeping a script, crumb tokens and retries
working yourself, and you can schedule it or call it over the API. The 10-line
swap at the top of this page shows the change in your code.
What do I do when yfinance says "Too Many Requests"? Yahoo rate-limits by IP,
and YFRateLimitError / HTTP 429 waves have hit many yfinance users at once (for
example in April 2025). Running the same request through this Actor moves it off
your IP; your code only swaps yf.Ticker(...) for the apify-client call above.
Can I get historical stock prices? Yes, include history in dataTypes and set
historyPeriod and historyInterval (for example a year of daily candles, or a day
of one-minute bars).
Can I get company fundamentals and valuation ratios? Yes, the info block
returns P/E, PEG, price-to-book, EPS, revenue, margins, ROE, debt-to-equity, free
cash flow, analyst price targets and more.
Does it include financial statements? Yes, add financials for income
statement, balance sheet and cash-flow data, or holders for institutional and
mutual-fund ownership.
Can I get dividends, splits and earnings? Yes, enable dividends, splits or
earnings to retrieve full histories and estimates.
How fresh is the data? Real-time, every run fetches live from the source.
Can I run it on a schedule or via API? Yes, schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n.
How do I get a watchlist into a spreadsheet? The tutorial
yfinance alternative: a watchlist's quotes, P/E and financials in a spreadsheet
has a tested Python script that writes a CSV, and the Task, schedule and Google
Sheets IMPORTDATA steps, with real output from a live run.
Is scraping Yahoo Finance legal? It retrieves publicly accessible data. Use it responsibly for research and analysis, and respect Yahoo's Terms of Service and applicable laws.
Which one should I use?
- Need to know what Reddit thinks of a ticker? Use Stock Sentiment Intelligence: it counts stock mentions and bullish or bearish tone on Reddit.
- Need crypto prices and market data? Use Crypto Intelligence: it covers the CoinGecko crypto market.
- Need charts and trending coins? Use CoinGecko Crypto Intelligence: it returns prices, charts and trending coins.
- Need currency rates? Use Forex Exchange Intelligence: it returns ECB exchange rates.
🔗 You might also like
- Tech Stack and Email Provider Detector — look up the website technology and email provider of the companies in your watchlist.
Keywords: Yahoo Finance scraper, Yahoo Finance API, stock data API, scrape stock prices, real-time stock quotes, historical stock data, stock market data, yfinance alternative, financial data API, analyst ratings, dividends data, stock news API, company fundamentals, OHLCV data, P/E ratio scraper.