Yahoo Finance Scraper: yfinance Alternative, Financials & News avatar

Yahoo Finance Scraper: yfinance Alternative, Financials & News

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Yahoo Finance Scraper: yfinance Alternative, Financials & News

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

Ben

Maintained by Community

Actor stats

0

Bookmarked

424

Total users

51

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

📈 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 machine
import yfinance as yf
info = yf.Ticker("AAPL").info
# After: the same Yahoo data from this Actor (pip install apify-client)
from apify_client import ApifyClient
client = 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:

RecordFields returned for AAPL (test run, 2026-10-28)Charge
Quote only (quote)11 fields1 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 items1 ticker record

Every data block:

Data blockWhat it holds for AAPL (test run, 2026-10-28)
quote11 live quote fields (price, volume, market cap, 52-week range)
info43 profile, valuation and analyst fields
history252 daily OHLCV bars for historyPeriod: 1y
financials4 years of income statement (39 lines), balance sheet (69) and cash flow (51)
holdersmajor holders, top 10 institutions, top 10 mutual funds
recommendationsanalyst rating counts by month
earnings25 past and upcoming earnings dates with EPS estimate and surprise
dividends92 dividend payments
splits5 stock splits
newsup 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):

PlanPer ticker recordActor 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:

FieldDescription
tickers (required)Stock symbols to scrape (e.g. AAPL, MSFT, GOOGL), comma-separated or one per line
dataTypesWhich blocks to retrieve per ticker: quote, info, history, financials, holders, recommendations, earnings, dividends, splits, news
historyPeriodPeriod for historical data: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
historyIntervalCandle 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?


🔗 You might also like

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.