# Yahoo Finance Scraper: Stock Prices, History & Dividends (`tidyharvest/yahoo-finance-scraper`) Actor

Yahoo Finance prices for any ticker (stocks, ETFs, indices, crypto, forex): one summary row with price, 52-week range, returns, moving averages and dividend yield, or OHLCV candles from 1 minute to monthly, plus symbol search and news. $0.40 per 1,000 tickers, $0.15 per 1,000 candles.

- **URL**: https://apify.com/tidyharvest/yahoo-finance-scraper.md
- **Developed by:** [TidyHarvest](https://apify.com/tidyharvest) (community)
- **Categories:** Developer tools
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Yahoo Finance Scraper: Stock Prices, History & Dividends

Get **stock prices, historical OHLCV data, fundamentals, financial statements, earnings, analyst ratings, ownership, options chains and news** from **Yahoo Finance** for any ticker: **stocks, ETFs, mutual funds, indices, crypto, forex, futures and private companies** on every exchange Yahoo covers. Or let Yahoo's **screeners** (day gainers, most active, most shorted, undervalued growth, sector lists, top ETFs and funds...) and **trending lists** pick the tickers for you.

Every ticker gets **one summary row**: latest price, daily change, day and **52-week high/low**, volume, **5d / 1m / 3m / 6m / YTD / 1y returns**, **50- and 200-day moving averages** and trailing **dividend yield**. Turn on the **data sections** you need and they are added to that same row **at no extra charge**: company/fund profile, key statistics, financial statements, earnings, analyst ratings and targets, ownership, technical insights, similar symbols, news and the options chain. Add **one row per candle** for price history from **1 minute to 3 months**. No API key, no login.

**$0.40 per 1,000 tickers with every section included**, $0.15 per 1,000 candles. Less on paid Apify plans.

### What you can do with it

- **Daily watchlist / portfolio snapshot:** schedule a run on your tickers and get price, change, 52-week position, returns, moving averages, market cap, P/E, analyst target and next earnings date in one row each, straight into Sheets, Excel or a database (see the *Fundamentals* view).
- **Fundamental research:** income statement, balance sheet and cash flow (annual, quarterly, trailing 12 months, every line item), valuation ratios, margins, short interest, insider and institutional ownership.
- **Earnings and analyst tracking:** next earnings date, EPS/revenue estimates and revisions, surprise history, consensus rating, price targets and the full upgrade/downgrade history.
- **Options:** calls and puts with bid/ask, volume, open interest and implied volatility, for the nearest expiration, every expiration or the dates you choose, optionally only the strikes near the price.
- **Market scans:** today's gainers, losers, most active, most shorted, 52-week highs, sector leaders, top ETFs and funds, crypto movers, trending tickers by country, each with the full summary row.
- **Fund research:** ETF and mutual fund family, category, expense ratio, turnover, net assets, top holdings, asset allocation, sector weights and performance.
- **Backtesting and charting:** years of daily, weekly or monthly OHLCV with adjusted close, or intraday candles (1m-1h) for recent weeks; optional total-return-adjusted OHLC.
- **Ticker lookup and news:** turn company names into Yahoo symbols; latest headlines per ticker or per topic.

### How to use it

1. Enter **tickers** in Yahoo format (`AAPL`, `BRK-B`, `SHOP.TO`, `7203.T`, `^GSPC`, `BTC-USD`, `EURUSD=X`, `GC=F`) or paste `finance.yahoo.com/quote/...` URLs. Or pick **screeners** / **trending regions**.
2. Turn on the **data sections** you want (all off by default, so a plain price run stays fast).
3. Pick **Output**: `summary`, `candles` or `both`. For candles choose a **period** or **start/end date** and a **candle size**.
4. Click **Start**, then download JSON, CSV or Excel, or use the API, Zapier, Make or Sheets.

### Input

| Field | What it does |
|---|---|
| `tickers` | Yahoo symbols or quote URLs, one per line. |
| `outputMode` | `summary` (default): one row per ticker. `candles`: one row per OHLCV candle. `both`. |
| `includeStatistics` | Market cap, enterprise value, P/E, PEG, P/B, P/S, EPS, beta, shares, float, short interest, margins, ROE/ROA, cash, debt, dividend rate/yield, payout ratio, pre/post-market price, bid/ask. |
| `includeProfile` | Sector, industry, employees, address, website, description, officers and pay, governance risk, recent SEC filings. Funds: family, category, expense ratio, holdings, allocation, sector weights, performance. |
| `includeFinancials` | Income statement, balance sheet, cash flow: annual, quarterly, trailing 12 months (companies). |
| `includeEarnings` | Next earnings date, estimates, EPS history and surprises, revenue/earnings by year and quarter, estimate trends and revisions, ex-dividend date. |
| `includeAnalyst` | Consensus rating, price targets, analyst count, recommendation trend, upgrade/downgrade history, growth estimates. |
| `includeOwnership` | Insider/institutional %, top institutional and fund holders, insider holders and transactions. |
| `includeInsights` | Technical outlook (short/mid/long term), support/resistance/stop-loss, valuation, research rating and target, bull/bear case, technical events, significant developments, research report titles. |
| `includeSimilar` | Similar symbols with a relevance score. |
| `includeNews`, `maxNewsPerTicker` | Latest headlines per ticker (default 10, max 50). |
| `includeOptions` | Options chain, nearest expiration. `optionAllExpirations`: every expiration. `optionDates`: only these dates (`YYYY-MM-DD`). `optionStrikesAroundPrice`: only the N strikes on each side of the price. |
| `screeners` | Any of 49 Yahoo Finance screeners (list below). |
| `trendingRegions` | Country codes (`US`, `GB`, `DE`, `CA`, `AU`, `IN`, `HK`...): tickers trending there now. |
| `maxDiscoveryResults` | Tickers per screener or trending list (default 25, up to 1,000 per screener). |
| `range` / `interval` | Candle period (`1d` ... `max`) and size (`1m` ... `3mo`). |
| `startDate` / `endDate` | Exact window instead of `range`: `YYYY-MM-DD` or relative (`30 days`, `6 months`). |
| `includePrePost`, `adjustedPrices`, `maxCandlesPerTicker` | Extended-hours candles; split/dividend-adjusted OHLC; keep only the latest N candles. |
| `includeEvents` | Dividends and splits on candles and summaries (default on). |
| `searchQueries` | Free-text lookups: matching symbols and news. `scrapeSearchMatches` also scrapes each query's top match. |
| `lang`, `region` | Language and market region for news, text and screeners (default `en-US`, `US`). |
| `maxItems` | Hard cap on all rows in the run; also caps cost. |

**Coming from another Yahoo Finance actor?** Inputs written for `kaix/yahoo-finance-scraper` work as they are: `symbols`, `searchQuery`, `screener`, `trending` + `trendingRegion`, `maxSearchResults`, `includeProfile`/`includeFinancials`/`includeAnalyst`/`includeOwnership`/`includeOptions`/`includeNews`/`includeInsights`, `includeRecommendations`, `includeChart`, `optionAllExpirations`, `optionDates`, `chartRange`, `chartInterval`, `chartStartDate`/`chartEndDate`, `maxNewsResults`, `lang`, `region` (their analyst section's earnings data is `includeEarnings` here; `includeQuote` is always on and `proxyConfiguration` isn't needed).

<details>
<summary>All 49 screeners</summary>

| Group | `screeners` values |
|---|---|
| Stocks | `DAY_GAINERS`, `DAY_LOSERS`, `MOST_ACTIVES`, `MOST_SHORTED_STOCKS`, `MOST_WATCHED_TICKERS`, `UNDERVALUED_GROWTH_STOCKS`, `UNDERVALUED_LARGE_CAPS`, `STRONG_UNDERVALUED_STOCKS`, `GROWTH_TECHNOLOGY_STOCKS`, `AGGRESSIVE_SMALL_CAPS`, `SMALL_CAP_GAINERS`, `MOST_ACTIVE_PENNY_STOCKS`, `FIFTY_TWO_WK_GAINERS`, `FIFTY_TWO_WK_LOSERS` |
| Sectors | `MS_TECHNOLOGY`, `MS_HEALTHCARE`, `MS_FINANCIAL_SERVICES`, `MS_CONSUMER_CYCLICAL`, `MS_CONSUMER_DEFENSIVE`, `MS_COMMUNICATION_SERVICES`, `MS_INDUSTRIALS`, `MS_ENERGY`, `MS_BASIC_MATERIALS`, `MS_REAL_ESTATE`, `MS_UTILITIES` |
| ETFs | `TOP_ETFS_US`, `TOP_PERFORMING_ETFS`, `TECHNOLOGY_ETFS`, `BOND_ETFS`, `DAY_GAINERS_ETFS`, `DAY_LOSERS_ETFS`, `MOST_ACTIVES_ETFS` |
| Mutual funds | `TOP_MUTUAL_FUNDS`, `DAY_GAINERS_MUTUAL_FUNDS`, `DAY_LOSERS_MUTUAL_FUNDS`, `PORTFOLIO_ANCHORS`, `SOLID_LARGE_GROWTH_FUNDS`, `SOLID_MIDCAP_GROWTH_FUNDS`, `CONSERVATIVE_FOREIGN_FUNDS`, `HIGH_YIELD_BOND` |
| Crypto | `ALL_CRYPTOCURRENCIES_US`, `DAY_GAINERS_CRYPTOCURRENCIES`, `DAY_LOSERS_CRYPTOCURRENCIES`, `MOST_ACTIVES_CRYPTOCURRENCIES` |
| Private companies | `HIGHEST_VALUATION_PRIVATE_COMPANY`, `MOST_FUNDED_PRIVATE_COMPANY`, `RECENTLY_FUNDED_PRIVATE_COMPANY` |
| Options | `TOP_OPTIONS_OPEN_INTEREST`, `TOP_OPTIONS_IMPLIED_VOLATALITY` |

</details>

Examples:

```json
{ "tickers": ["AAPL", "MSFT", "NVDA", "^GSPC", "BTC-USD"], "includeStatistics": true, "includeAnalyst": true }
```

```json
{ "tickers": ["AAPL"], "includeFinancials": true, "includeEarnings": true, "includeOwnership": true, "includeProfile": true }
```

```json
{ "tickers": ["SPY", "QQQ"], "includeOptions": true, "optionAllExpirations": true, "optionStrikesAroundPrice": 15 }
```

```json
{ "screeners": ["DAY_GAINERS", "MOST_SHORTED_STOCKS"], "trendingRegions": ["US", "GB"], "maxDiscoveryResults": 50, "includeStatistics": true }
```

```json
{ "tickers": ["SPY"], "outputMode": "candles", "startDate": "2015-01-01", "interval": "1wk", "adjustedPrices": true }
```

### Output

**Summary row** (one per ticker; AAPL with every section on, from a run on 2026-10-20, long lists shortened; sections you didn't turn on are absent, sections that don't apply are `null`; tickers from a screener or trending list also carry `discoveredBy`, e.g. `[{"source": "screener", "list": "DAY_GAINERS", "title": "Day Gainers", "rank": 1}]`):

```json
{
  "resultType": "summary",
  "symbol": "AAPL", "name": "Apple Inc.", "exchange": "NasdaqGS", "instrumentType": "EQUITY", "currency": "USD",
  "price": 339.3, "previousClose": 342.94, "change": -3.64, "changePercent": -1.061,
  "dayHigh": 343.06, "dayLow": 338.7, "volume": 19824626, "avgVolume3m": 43900479,
  "fiftyTwoWeekHigh": 348.15, "fiftyTwoWeekLow": 243.42, "pctFrom52wHigh": -2.542, "pctFrom52wLow": 39.389,
  "return5d": -0.577, "return1m": 0.943, "return3m": 3.527, "return6m": 27.475, "returnYtd": 24.807, "return1y": 29.385,
  "sma50": 326.9124, "sma200": 293.1615, "dividendsTtm": 1.06, "dividendYieldTtm": 0.312,
  "marketCap": 4952024416256, "trailingPE": 38.91227, "forwardPE": 35.45352, "epsTrailing": 8.72, "beta": 1.069,
  "sector": "Technology", "industry": "Consumer Electronics",
  "analystRating": "buy", "analystTarget": 328.35025, "nextEarningsDate": "2026-11-02",
  "statistics": { "enterpriseValue": 5026873344000, "pegRatio": 2.75, "priceToBook": 46.10258, "floatShares": 14569078010, "sharesShort": 120763539, "shortPercentOfFloat": 0.0083, "profitMargins": 0.27618998, "returnOnEquity": 1.4875101, "totalCash": 62399000576, "totalDebt": 84343996416, "dividendYield": 0.0031, "exDividendDate": "2026-08-10", "...": "..." },
  "profile": { "website": "https://www.apple.com", "fullTimeEmployees": 150000, "longBusinessSummary": "...", "companyOfficers": [{"name": "Mr. Timothy D. Cook", "title": "Executive Chairman of the Board", "yearBorn": 1961, "totalPay": 16759518}], "secFilings": [{"date": "2026-07-31", "type": "10-Q", "url": "..."}] },
  "financials": { "incomeStatement": { "annual": [{"asOfDate": "2025-09-30", "periodType": "12M", "currency": "USD", "totalRevenue": 416161000000, "grossProfit": 195201000000, "EBIT": 133050000000, "netIncome": 112010000000, "dilutedEPS": 7.46, "...": "..."}], "quarterly": ["..."], "trailing": ["..."] }, "balanceSheet": { "annual": ["..."], "quarterly": ["..."] }, "cashFlow": { "annual": ["..."], "quarterly": ["..."], "trailing": ["..."] } },
  "earnings": { "nextEarningsDate": "2026-11-02", "epsEstimate": {"average": 1.98187, "low": 1.93, "high": 2.06}, "history": [{"quarter": "2026-06-30", "epsActual": 2.02, "epsEstimate": 1.89243, "surprisePercent": 0.0674}], "estimates": ["..."] },
  "analyst": { "recommendation": "buy", "targetMean": 328.35025, "targetHigh": 405, "targetLow": 215, "analystCount": 39, "recommendationTrend": [{"period": "0m", "strongBuy": 6, "buy": 18, "hold": 14, "sell": 3, "strongSell": 3}], "upgradesDowngrades": [{"date": "2026-10-20T09:46:57Z", "firm": "Loop Capital", "fromGrade": "Buy", "toGrade": "Hold", "action": "down", "currentPriceTarget": 330, "priorPriceTarget": 370}] },
  "ownership": { "breakdown": {"insidersPercentHeld": 0.01648, "institutionsPercentHeld": 0.66355, "institutionsCount": 7698}, "institutions": [{"organization": "Blackrock Inc.", "pctHeld": 0.0797, "position": 1162996939, "value": 394622309196}], "funds": ["..."], "insiderTransactions": ["..."] },
  "insights": { "technicalOutlook": {"shortTerm": {"direction": "Bullish", "score": 3}}, "keyTechnicals": {"support": 255.65, "resistance": 348.1499, "stopLoss": 325.07883}, "valuation": {"description": "Overvalued", "discount": "-8%"}, "researchRating": {"provider": "Argus Research", "rating": "BUY", "targetPrice": 375} },
  "similarSymbols": [{"symbol": "AMZN", "score": 0.181182}],
  "news": [{"title": "...", "publisher": "...", "publishedAt": "2026-10-20T18:46:00Z", "url": "..."}],
  "options": { "underlyingPrice": 339.29, "expirationDates": ["2026-10-21", "2026-10-23", "..."], "chains": [{"expirationDate": "2026-10-21", "daysToExpiration": 1, "calls": [{"contractSymbol": "AAPL261021C00250000", "strike": 250, "lastPrice": 90.22, "bid": 89.15, "ask": 91.35, "volume": 34, "openInterest": 1, "impliedVolatility": 2.429691, "inTheMoney": true, "lastTradeDate": "2026-10-20T18:16:02Z"}], "puts": ["..."]}] },
  "url": "https://finance.yahoo.com/quote/AAPL/", "scrapedAt": "2026-10-20T19:09:06Z"
}
```

**Candle row** (one per candle):

```json
{
  "resultType": "candle", "symbol": "AAPL", "name": "Apple Inc.", "exchange": "NasdaqGS", "instrumentType": "EQUITY", "currency": "USD",
  "date": "2020-08-31", "time": "2020-08-31T13:30:00Z", "localTime": "2020-08-31T09:30:00", "interval": "1d",
  "open": 127.58, "high": 131.0, "low": 126.0, "close": 129.04, "adjClose": 125.0575, "volume": 225702700,
  "dividend": null, "split": "4:1", "adjusted": false,
  "url": "https://finance.yahoo.com/quote/AAPL/"
}
```

**Search rows**: `resultType: "symbol"` (symbol, name, quoteType, exchange, sector, industry, url) or `resultType: "news"` (title, publisher, publishedAt, relatedTickers, thumbnail, url), each with the `query` and `rank`.

Returns are percent price changes (not including dividends). Ratios and percentages inside `statistics`, `analyst` and `ownership` are fractions (0.0083 = 0.83%), as Yahoo reports them. `time` is UTC; `localTime` is exchange time. Prices are in the instrument's `currency` (London stocks are often in GBp, pence). The run's **SUMMARY** record lists, per ticker, which sections were filled, any section that could not be read (`sectionErrors`), the screener and trending lists read and the tickers that failed.

### Pricing

Pay per row, with lower prices on paid Apify plans:

| Event | Free plan | Bronze | Silver | Gold and up |
|---|---|---|---|---|
| `ticker-summary` (one summary row, **all data sections included**) | $0.40 / 1,000 | $0.40 / 1,000 | $0.32 / 1,000 | $0.30 / 1,000 |
| `candle` (one OHLCV row) | $0.15 / 1,000 | $0.15 / 1,000 | $0.12 / 1,000 | $0.10 / 1,000 |
| `search-result` (one symbol match or news item from a search query) | $0.20 / 1,000 | $0.20 / 1,000 | $0.16 / 1,000 | $0.15 / 1,000 |

A ticker with profile, statistics, financials, earnings, analyst data, ownership, insights, news and its options chain costs $0.0004, the same as a plain price row. A year of daily candles (~252 rows) costs about $0.04. Unknown or delisted tickers are listed in SUMMARY and never charged; a row whose requested sections all failed to load is free. `maxItems` and the run's max charge stop the run cleanly.

### Compared with kaix/yahoo-finance-scraper

Built to beat the most-used Yahoo Finance actor on price and reach, with the same core per-ticker sections. Prices from both Store listings, October 2026.

| | This actor | kaix/yahoo-finance-scraper |
|---|---|---|
| Price per ticker, all sections | **$0.40 / 1,000** (Silver $0.32, Gold+ $0.30) | $0.50 / 1,000 (Silver+ $0.40), plus $0.05 per 1,000 runs |
| Unknown ticker | **free** (listed in SUMMARY) | charged as a `not_found` record |
| Quote, profile, fund profile, statistics, financial statements, earnings, analyst data, ownership, insights, similar symbols, news, options (nearest / all / chosen dates) | yes | yes |
| Returns 5d-1y, 50/200-day averages, TTM dividend yield, 52-week position | **yes, computed** | no |
| Flat spreadsheet columns (market cap, P/E, EPS, beta, sector, rating, target, next earnings) | **yes** | nested only |
| Options limited to strikes near the price | **yes** | no |
| Screeners | **49**, several per run, up to 1,000 tickers each | 23, one per run, up to 50 |
| Trending tickers | several regions per run | one region per run |
| Candle sizes | 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo; adjusted OHLC option | 1m, 5m, 15m, 30m, 1h, 1d, 1wk, 1mo |

**Where they still win:** their record carries the price chart inside it for the one record price, so for long price history on a few tickers they cost less (here a year of daily candles is ~$0.04 per ticker). They also return up to 200 news items per ticker (here 50), a set of analyst-consensus and rating scores, earnings-call transcript titles, the day's economic-event calendar and a market/sector overview in every record, and let you choose a proxy.

### Limits and notes

- Data is what finance.yahoo.com shows a logged-out visitor. Quotes can be delayed (typically 15 minutes for US stocks, more on some exchanges), as on the website.
- Coverage varies by instrument and market: indices, currencies and futures have price data and statistics but no profile or statements; non-US companies may lack ownership or options.
- Yahoo's own intraday limits apply: 1-minute candles only for the last ~30 days, other minute sizes ~60 days, 1-hour ~2 years. Daily and longer go back to the first trade date.
- Option chains with every expiration can be large (SPY: 31 expirations, ~3 MB). A chain over ~7 MB for one ticker stops adding expirations and lists the rest in `expirationsNotReturned`; use `optionDates` or `optionStrikesAroundPrice` to get them.
- If Yahoo Finance refuses requests during a long run, the rows already collected are kept and SUMMARY lists the tickers not reached.
- Not affiliated with Yahoo. Check that your use of the data fits Yahoo's terms.

# Actor input Schema

## `tickers` (type: `array`):

Yahoo Finance symbols, one per line: stocks (AAPL, BRK-B, SHOP.TO, 7203.T), ETFs (SPY), indices (^GSPC, ^IXIC), crypto (BTC-USD), forex (EURUSD=X), futures (GC=F). A finance.yahoo.com/quote/... URL also works.

## `outputMode` (type: `string`):

summary = one row per ticker with the latest price, change, day and 52-week range, volume, 5d/1m/3m/6m/YTD/1y returns, 50/200-day averages and dividends, plus any data sections you turn on below. candles = one row per OHLCV candle for the period below. both = the summary row plus the candles.

## `includeStatistics` (type: `boolean`):

Market cap, enterprise value, P/E (trailing and forward), PEG, price/book, price/sales, EPS, beta, shares outstanding, float, short interest and short ratio, insider and institutional %, margins, ROE/ROA, revenue, cash, debt, dividend rate and yield, payout ratio, pre/post-market price, bid/ask.

## `includeProfile` (type: `boolean`):

Sector, industry, employees, address, phone, website, business description, officers with pay, governance risk scores and recent SEC filings. For ETFs and funds: fund family, category, expense ratio, turnover, net assets, top holdings, asset allocation, sector weights and performance.

## `includeFinancials` (type: `boolean`):

Income statement, balance sheet and cash flow: annual, quarterly and trailing 12 months, every line item Yahoo Finance has (typically 4 years and 5-6 quarters). Companies only.

## `includeEarnings` (type: `boolean`):

Next earnings date, EPS and revenue estimates, EPS history (actual vs estimate, surprise), quarterly and yearly revenue and earnings, analyst estimate trends and revisions, ex-dividend and dividend dates.

## `includeAnalyst` (type: `boolean`):

Consensus rating, mean/median/high/low price target, number of analysts, monthly recommendation trend (strong buy to strong sell), the full upgrade/downgrade history with firms and target changes, growth estimates vs the index.

## `includeOwnership` (type: `boolean`):

Insider and institutional % held, top institutional and fund holders (shares, value, % change), insider holders, insider transactions, 6-month insider buying and selling.

## `includeInsights` (type: `boolean`):

Short, intermediate and long-term technical outlook, support, resistance and stop-loss levels, valuation (over/undervalued), research rating and target, bull and bear case, technical events, significant developments and recent research report titles.

## `includeSimilar` (type: `boolean`):

Symbols people also look at, with a relevance score.

## `includeNews` (type: `boolean`):

The latest Yahoo Finance headlines for each ticker (title, publisher, time, related tickers, link).

## `maxNewsPerTicker` (type: `integer`):

How many headlines per ticker when news is on (max 50).

## `includeOptions` (type: `boolean`):

Calls and puts with strike, last price, change, bid, ask, volume, open interest, implied volatility, in-the-money flag and last trade time, plus every listed expiration date. Nearest expiration unless you choose below.

## `optionAllExpirations` (type: `boolean`):

Return the chain for every listed expiration (large for index ETFs: SPY lists 30+). Very large chains are cut at about 7 MB per ticker and the remaining dates listed in expirationsNotReturned.

## `optionDates` (type: `array`):

Only these expirations (YYYY-MM-DD, e.g. 2026-12-18). Dates that aren't listed are reported in requestedDatesNotListed. Leave empty for the nearest expiration.

## `optionStrikesAroundPrice` (type: `integer`):

Keep only the N strikes above and N below the current price in each expiration (e.g. 10). 0 or empty = all strikes.

## `screeners` (type: `array`):

Yahoo Finance's predefined lists: day gainers and losers, most active, most shorted, undervalued growth, sector lists, top ETFs and funds, crypto, private companies, options. Each symbol on the list gets a summary row (and any data sections you turn on), tagged with discoveredBy.

## `trendingRegions` (type: `array`):

Country codes (US, GB, DE, FR, CA, AU, IN, HK, ...): the tickers trending on Yahoo Finance there right now.

## `maxDiscoveryResults` (type: `integer`):

How many symbols to take from each screener or trending list, in Yahoo's order (trending lists have up to 100).

## `range` (type: `string`):

How far back the candles go. Ignored when a start date is set.

## `interval` (type: `string`):

Yahoo limits intraday history: 1m only for the last ~30 days (7 days per request), other minute/hour sizes for the last ~60 days (1h: ~730 days). Daily and longer go back to the first trade.

## `startDate` (type: `string`):

Optional. YYYY-MM-DD, or a relative period like '30 days', '6 months', '2 years'. Overrides the period.

## `endDate` (type: `string`):

Optional, inclusive. Defaults to now.

## `includePrePost` (type: `boolean`):

Intraday candles only: also return extended-hours trading.

## `adjustedPrices` (type: `boolean`):

Scale open/high/low/close by the adjusted-close factor (total-return series). adjClose is always included for daily and longer candles.

## `maxCandlesPerTicker` (type: `integer`):

Keep only the most recent N candles per ticker. 0 or empty = all in the period.

## `includeEvents` (type: `boolean`):

Candles carry a dividend amount / split ratio on the candle where it happened; summary rows list the past year's dividends and splits.

## `searchQueries` (type: `array`):

Free text, e.g. a company name. Returns matching symbols (with exchange, type, sector, industry) and the latest related Yahoo Finance news headlines.

## `maxSymbolsPerQuery` (type: `integer`):

How many matching symbols to return per search query (max 25).

## `maxNewsPerQuery` (type: `integer`):

How many news headlines to return per search query (0 = none, max 50).

## `scrapeSearchMatches` (type: `boolean`):

Adds each query's best symbol match to the ticker list, so 'apple' gets you AAPL's summary/candles.

## `lang` (type: `string`):

Language for news and text fields, e.g. en-US, en-GB, de-DE, fr-FR, ja-JP, zh-Hant-HK.

## `region` (type: `string`):

Market region for news and screeners, e.g. US, GB, DE, JP, HK, AU, CA, FR.

## `maxItems` (type: `integer`):

Hard cap on all rows (summaries + candles + search results) for the run; also caps your cost. 0 or empty = no limit.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "MSFT",
    "BTC-USD"
  ],
  "outputMode": "summary",
  "includeStatistics": false,
  "includeProfile": false,
  "includeFinancials": false,
  "includeEarnings": false,
  "includeAnalyst": false,
  "includeOwnership": false,
  "includeInsights": false,
  "includeSimilar": false,
  "includeNews": false,
  "maxNewsPerTicker": 10,
  "includeOptions": false,
  "optionAllExpirations": false,
  "optionDates": [],
  "trendingRegions": [],
  "maxDiscoveryResults": 25,
  "range": "1mo",
  "interval": "1d",
  "includePrePost": false,
  "adjustedPrices": false,
  "includeEvents": true,
  "searchQueries": [],
  "maxSymbolsPerQuery": 10,
  "maxNewsPerQuery": 10,
  "scrapeSearchMatches": false,
  "lang": "en-US",
  "region": "US"
}
```

# Actor output Schema

## `results` (type: `string`):

All rows: ticker summaries (price, day/52-week stats, returns, dividends, plus profile, statistics, financials, earnings, analyst, ownership, insights, news and options when turned on), OHLCV candles, and search results.

## `summary` (type: `string`):

Counts per input, data sections filled, screener/trending lists read, failed tickers and limits reached.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "tickers": [
        "AAPL",
        "MSFT",
        "BTC-USD"
    ],
    "optionDates": [],
    "trendingRegions": [],
    "searchQueries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("tidyharvest/yahoo-finance-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "tickers": [
        "AAPL",
        "MSFT",
        "BTC-USD",
    ],
    "optionDates": [],
    "trendingRegions": [],
    "searchQueries": [],
}

# Run the Actor and wait for it to finish
run = client.actor("tidyharvest/yahoo-finance-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "tickers": [
    "AAPL",
    "MSFT",
    "BTC-USD"
  ],
  "optionDates": [],
  "trendingRegions": [],
  "searchQueries": []
}' |
apify call tidyharvest/yahoo-finance-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tidyharvest/yahoo-finance-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/dZQN25YO6OJPc2FlS/builds/8sgAUU25QC5zlZb3c/openapi.json
