Yahoo Finance Scraper
Pricing
from $0.40 / 1,000 data categories
Yahoo Finance Scraper
[๐ฐ $0.80 / 1K] Extract Yahoo Finance data for any ticker, ETF, index, or crypto: live quotes, company profiles, financial statements, historical prices, dividends, splits, earnings, analyst recommendations, holders, options chains, and news. Pick only the data categories you need.
Pricing
from $0.40 / 1,000 data categories
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Pull structured Yahoo Finance data for any symbol at scale โ live quotes, company profiles, three financial statements, 40+ years of historical prices, dividends, splits, earnings, analyst ratings, institutional holders, full options chains, and news. Stocks, ETFs, mutual funds, market indices, FX pairs, and crypto all use the same input. Built for quant researchers, fintech builders, and analysts who need a clean, spreadsheet-ready financial dataset without exporting one ticker at a time or wrestling with deeply nested JSON.
Why This Scraper?
- 13 data categories selectable per run โ quote, company profile, income statement, balance sheet, cash-flow statement, earnings history, dividends, splits, analyst recommendations, institutional holders, options chain, news, and OHLCV history. Pick only what you need, and pay only for what you pick.
- 40+ years of daily history โ pull AAPL all the way back to 1980 (11,466 daily rows in a single run), or any symbol's full available record with one
maxrange. - Intraday granularity down to 1-minute bars โ 8 price intervals (1m, 5m, 15m, 30m, 60m, 1d, 1wk, 1mo) across 10 range presets, or an exact
historyStartDate/historyEndDatewindow. - Every asset class, one input shape โ stocks (
AAPL), ETFs (SPY), mutual funds, market indices (^GSPC), FX pairs (EURUSD=X), and crypto (BTC-USD) in the same run. - Full options chains โ calls and puts with strike, bid, ask, last price, implied volatility, open interest, volume, and in-the-money flag, across up to 25 expiration dates per ticker.
- Analyst ratings + institutional ownership โ strong-buy / buy / hold / sell / strong-sell recommendation counts per period, plus institutional, fund, and insider holders with share counts and percent held.
- Three financial statements, annual and quarterly โ income statement, balance sheet, and cash flow with named line items (TotalRevenue, NetIncome, FreeCashFlow, TotalAssets, and more) and reporting currency.
- Flat, typed rows tagged by
recordTypeโ load straight into a spreadsheet or database with no nested-JSON wrangling, unlike scrapers that dump one giant blob per ticker. - Invalid symbols skipped automatically โ a single bad ticker never fails the run; you get a clear partial-result summary of what resolved and what didn't.
Use Cases
Quant Research & Backtesting
- Build multi-decade OHLCV datasets for strategy backtests
- Pull 1-minute intraday bars for short-horizon signal research
- Align dividends and splits with price history for total-return series
- Mix equities, FX, and crypto in one dataset for cross-asset models
Market & Equity Research
- Compare income statements and balance sheets across a peer group
- Track analyst recommendation trends quarter over quarter
- Monitor institutional and insider ownership changes
- Pull sector and industry classification for screening universes
Portfolio Monitoring
- Refresh live quotes, market cap, and P/E ratios for a holdings list
- Watch earnings surprises (actual vs. estimate) each reporting season
- Track dividend payments and ex-dates across a dividend portfolio
- Flag 52-week highs and lows across a watchlist
Options & Derivatives Analysis
- Capture full call and put chains with implied volatility and open interest
- Build volatility surfaces across multiple expiration dates
- Screen for high-open-interest strikes near the money
Fintech & Product Data
- Power dashboards, screeners, and alerting tools with fresh fundamentals
- Feed news headlines and publishers into market-sentiment pipelines
- Enrich a CRM or research platform with company profiles and contacts
Getting Started
Single Ticker Quote
The simplest run โ one symbol, live quote and profile:
{"tickers": ["AAPL"],"dataModules": ["quote", "profile"]}
Multi-Ticker Fundamentals
Pull statements, earnings, and analyst data across several symbols:
{"tickers": ["MSFT", "GOOGL", "NVDA"],"dataModules": ["financials", "balanceSheet", "cashFlow", "earnings", "recommendations"]}
Full History, Options & News
Bulk daily history with an exact date window, options chains, and capped news:
{"tickers": ["AAPL", "TSLA", "SPY"],"dataModules": ["history", "dividends", "splits", "options", "news"],"historyStartDate": "2015-01-01","historyEndDate": "2024-12-31","historyInterval": "1d","maxOptionExpirations": 2,"maxNewsPerTicker": 5}
Input Reference
Symbols & Categories
| Parameter | Type | Default | Description |
|---|---|---|---|
tickers | string[] | ["AAPL", "MSFT", "GOOGL"] | Symbols to look up. Stocks (AAPL), indices (^GSPC), ETFs (SPY), currencies (EURUSD=X), and crypto (BTC-USD) all work. Each symbol is looked up independently. |
dataModules | select[] | ["quote", "profile"] | Which data categories to return: Quote & current price, Company profile, Historical prices (OHLCV), Income statement, Balance sheet, Cash flow statement, Earnings history, Dividend history, Stock splits, Analyst recommendations, Institutional holders, Options chain, Latest news. |
Historical Range
| Parameter | Type | Default | Description |
|---|---|---|---|
historyStartDate | string | โ | Earliest date for prices, dividends, and splits (YYYY-MM-DD). Overrides the quick preset when set. |
historyEndDate | string | today | Latest date for prices, dividends, and splits (YYYY-MM-DD). |
historyRange | select | Last 1 year | Quick preset: Last 5 days, 1 month, 3 months, 6 months, 1 year, 2 years, 5 years, 10 years, Year to date, or Maximum available. Ignored when a start date is set. |
historyInterval | select | 1 day | Candle granularity: 1, 5, 15, 30, or 60 minutes, 1 day, 1 week, or 1 month. Intraday intervals cover a limited recent window. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxNewsPerTicker | integer | 10 | Max news articles per ticker. Applies only when Latest news is selected. |
maxOptionExpirations | integer | 2 | Extra option expiration dates per ticker beyond the nearest. 0 returns the nearest expiry only; capped at 25. |
Output
Every row is flat and carries a recordType discriminator plus the ticker it belongs to, so you can filter the dataset by type or split it into tables. The sections below show each major record type.
Quote & Profile
{"recordType": "quote","ticker": "AAPL","shortName": "Apple Inc.","longName": "Apple Inc.","exchange": "NasdaqGS","currency": "USD","quoteType": "EQUITY","regularMarketPrice": 229.87,"regularMarketChangePercent": 1.23,"regularMarketPreviousClose": 227.08,"dayHigh": 230.16,"dayLow": 227.34,"fiftyTwoWeekHigh": 237.49,"fiftyTwoWeekLow": 164.08,"marketCap": 3490000000000,"trailingPE": 34.7,"forwardPE": 29.1,"epsTrailingTwelveMonths": 6.62,"dividendYield": 0.44,"averageAnalystRating": "1.9 - Buy","scrapedAt": "2026-06-11T14:30:00Z"}
| Field | Type | Description |
|---|---|---|
recordType | string | quote or profile |
ticker | string | Symbol this row belongs to |
shortName / longName | string | Company or instrument name |
exchange | string | Listing exchange |
currency | string | Quote currency |
regularMarketPrice | number | Latest price |
regularMarketChangePercent | number | Percent change on the day |
dayHigh / dayLow | number | Intraday high and low |
fiftyTwoWeekHigh / fiftyTwoWeekLow | number | 52-week range |
marketCap | number | Market capitalization |
trailingPE / forwardPE | number | Price-to-earnings ratios |
epsTrailingTwelveMonths | number | Trailing-twelve-month EPS |
dividendYield | number | Dividend yield |
sector / industry | string | Sector and industry (profile) |
longBusinessSummary | string | Company description (profile) |
website / phone / address | string | Company contact details (profile) |
fullTimeEmployees | number | Headcount (profile) |
Historical Prices
{"recordType": "historyRow","ticker": "AAPL","date": "2024-12-31T14:30:00Z","open": 252.23,"high": 253.28,"low": 250.75,"close": 250.42,"adjClose": 250.42,"volume": 39480700,"interval": "1d"}
| Field | Type | Description |
|---|---|---|
date | string | ISO 8601 timestamp of the candle |
open / high / low / close | number | OHLC prices |
adjClose | number | Split- and dividend-adjusted close |
volume | number | Shares (or contracts) traded |
interval | string | Candle granularity (e.g. 1d, 1m) |
Financial Statements
{"recordType": "incomeStatement","ticker": "MSFT","periodType": "annual","endDate": "2024-06-30","currency": "USD","totalRevenue": 245122000000,"grossProfit": 171008000000,"operatingIncome": 109433000000,"netIncome": 88136000000,"dilutedEPS": 11.8}
| Field | Type | Description |
|---|---|---|
recordType | string | incomeStatement, balanceSheet, or cashFlow |
periodType | string | annual or quarterly |
endDate | string | Reporting period end date |
currency | string | Reporting currency |
| line items | number | Named metrics โ e.g. totalRevenue, netIncome, totalAssets, stockholdersEquity, operatingCashFlow, freeCashFlow, capitalExpenditure |
Corporate Actions โ Earnings, Dividends & Splits
{"recordType": "earnings","ticker": "AAPL","period": "-1q","quarter": "2024-09-30T00:00:00Z","epsActual": 1.64,"epsEstimate": 1.6,"epsDifference": 0.04,"surprisePercent": 0.025}
| Field | Type | Description |
|---|---|---|
recordType | string | earnings, dividend, or split |
period / quarter | string | Reporting period (earnings) |
epsActual / epsEstimate | number | Reported vs. expected EPS (earnings) |
surprisePercent | number | Earnings surprise (earnings) |
date | string | Pay/effective date (dividend, split) |
amount | number | Dividend amount per share (dividend) |
ratio | string | Split ratio, e.g. 4:1 (split) |
Analysts & Holders
{"recordType": "recommendation","ticker": "AAPL","period": "0m","strongBuy": 11,"buy": 21,"hold": 6,"sell": 1,"strongSell": 0}
| Field | Type | Description |
|---|---|---|
recordType | string | recommendation or holder |
strongBuy โฆ strongSell | number | Analyst recommendation counts (recommendation) |
holderType | string | institutional, fund, insider, or major (holder) |
name | string | Holder or organization name (holder) |
shares | number | Shares held (holder) |
pctHeld | number | Percent of shares held (holder) |
value | number | Position value (holder) |
dateReported | string | Position report date (holder) |
Options
{"recordType": "optionContract","ticker": "AAPL","expirationDate": "2026-06-19T00:00:00Z","contractType": "call","contractSymbol": "AAPL260619C00230000","strike": 230,"lastPrice": 5.4,"bid": 5.3,"ask": 5.5,"volume": 1240,"openInterest": 8800,"impliedVolatility": 0.281,"inTheMoney": false}
| Field | Type | Description |
|---|---|---|
expirationDate | string | Contract expiration date |
contractType | string | call or put |
contractSymbol | string | OCC contract symbol |
strike | number | Strike price |
lastPrice / bid / ask | number | Latest, bid, and ask prices |
volume / openInterest | number | Daily volume and open interest |
impliedVolatility | number | Implied volatility |
inTheMoney | boolean | Whether the contract is in the money |
News
{"recordType": "news","ticker": "TSLA","title": "Tesla Reports Record Quarterly Deliveries","publisher": "Reuters","url": "https://finance.yahoo.com/news/example","publishedAt": "2026-06-10T18:05:00Z","type": "STORY","relatedTickers": ["TSLA"]}
| Field | Type | Description |
|---|---|---|
title | string | Headline |
publisher | string | Source publisher |
url | string | Link to the article |
publishedAt | string | ISO 8601 publish time |
relatedTickers | string[] | Other symbols mentioned |
Tips for Best Results
- Select only the categories you need โ every category you skip makes the run faster and cheaper. Start with
quoteandprofileto test, then add what you want. - Use an exact window for backtests โ set
historyStartDateandhistoryEndDatefor a precise date range, or usehistoryRange: "max"to pull the full available history (AAPL goes back to 1980). - Intraday intervals only cover a recent window โ 1-minute bars reach back about a week, and other intraday intervals about two months. Request a longer range and the window is automatically trimmed to what's available, so the run never errors out.
- Batch many symbols in one run โ pass a long
tickerslist; live quotes for the whole list are gathered together, and each symbol's other data is added independently. - Cap unbounded categories โ set
maxNewsPerTickerandmaxOptionExpirationsto keep result counts predictable when pulling news or options across many tickers. - Mix asset classes freely โ combine stocks, ETFs, indices, FX pairs, and crypto in the same run; categories that don't apply to a symbol (like options on an index) are simply skipped.
- Invalid tickers are safe โ a misspelled or delisted symbol is reported in the run summary and never blocks the rest of the batch.
Pricing
From $0.40 per 1,000 data pulls โ a standard quote + profile lookup is about $0.80 per 1,000 tickers. You're charged once per data category you pull for each ticker (quote, profile, each financial statement, earnings, analyst data, holders, dividends, splits, news), plus a small per-row fee only for bulk price history and options chains. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee.
Per data pull โ one charge for each category that returns data for a ticker, no matter how many rows it contains.
| Data pulls | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.05 | $0.05 | $0.04 | $0.04 |
| 1,000 | $0.48 | $0.45 | $0.43 | $0.40 |
| 10,000 | $4.80 | $4.50 | $4.30 | $4.00 |
| 100,000 | $48.00 | $45.00 | $43.00 | $40.00 |
Per history / options data point โ charged only when you pull bulk price history or full options chains.
| Data points | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.005 | $0.005 | $0.004 | $0.004 |
| 1,000 | $0.048 | $0.045 | $0.043 | $0.040 |
| 10,000 | $0.48 | $0.45 | $0.43 | $0.40 |
| 100,000 | $4.80 | $4.50 | $4.30 | $4.00 |
Realistic example costs at the Gold tier:
| What you run | Approx. cost |
|---|---|
| 100 tickers, quote + profile (200 pulls) | $0.08 |
| 1,000 tickers, quote + profile | $0.80 |
| 100 tickers, full fundamentals (~8 categories, 800 pulls) | $0.32 |
| 50 stocks ร 5-year daily history (~63,000 rows) | ~$2.52 |
| 10 stocks, 2 options expirations each (~1,350 contracts) | ~$0.05 |
Bronze, Silver, and Gold subscribers pay progressively less. Platform fees depend on your Apify plan and are additional.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate financial research, market analysis, and product development. Users are responsible for complying with applicable laws and Yahoo Finance's Terms of Service. Market data is provided for informational purposes only and is not investment advice. Do not redistribute data in violation of source terms, and verify figures independently before making financial decisions.