# Yahoo Finance Stock Data Scraper (`maximedupre/yahoo-finance-stock-data`) Actor

Fetch current stock quotes or a market overview from Yahoo Finance. Enter ticker symbols or choose the overview to get prices, changes, ranges, volume, and available company data in your dataset.

- **URL**: https://apify.com/maximedupre/yahoo-finance-stock-data.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Developer tools, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.90 / 1,000 stock quotes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 stock data for quote research

For developers, analysts, and finance teams, this Actor returns current Yahoo Finance quote rows for ticker lists or a market overview. Use the structured prices, changes, ranges, volume, and available company data in your research or data workflow.

- Compare several symbols in one dataset with **[Recent Stock Quotes](https://apify.com/maximedupre/yahoo-finance-stock-data/examples/recent-stock-quotes)**.
- Call the Actor from code with **[Yahoo Finance API](https://apify.com/maximedupre/yahoo-finance-stock-data/examples/yahoo-finance-api)** and save structured quote rows.
- Check market changes and caps with **[S\&P 500 Today](https://apify.com/maximedupre/yahoo-finance-stock-data/examples/s-p-500-today)**.
- Review quote data with **[Dow Jones Yahoo Finance](https://apify.com/maximedupre/yahoo-finance-stock-data/examples/dow-jones-yahoo-finance)**.
- Check a share quote with **[Google Stock Class A](https://apify.com/maximedupre/yahoo-finance-stock-data/examples/google-stock-class-a)**.
- Check another share quote with **[Google Stock Class C](https://apify.com/maximedupre/yahoo-finance-stock-data/examples/google-stock-class-c)**.

#### 📊 Current quote rows for stocks and market views

Stock quotes return one row for each resolved ticker in the submitted list. Market overview returns major-stock quote rows without a symbol list. Rows include price movement, previous close, open price, intraday and 52-week ranges, volume, and the source market time. Company, exchange, currency, market capitalization, valuation, earnings, dividend yield, sector, and industry fields are included when Yahoo Finance provides them.

#### ▶️ Run a quote lookup

**Run steps**

1. Choose **Stock quotes** or **Market overview** in the Input tab.
2. For Stock quotes, enter one or more ticker symbols such as `AAPL` or `MSFT`.
3. Start the Actor and open the saved dataset.

Choose Stock quotes for one list of symbols. Choose Market overview when you want the Actor's major-stock view without entering symbols.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `resultType` | string | Selects `stockQuotes` for one ticker list or `marketOverview` for major-stock quote rows. |
| `symbols` | array of strings | Enter one or more ticker symbols for `stockQuotes`, such as `AAPL` or `MSFT`. The field is ignored for `marketOverview`. |

**Example input**

This input is from a successful Stock quotes run:

```json
{
  "resultType": "stockQuotes",
  "symbols": [
    "AAPL",
    "MSFT"
  ]
}
```

#### 🧾 Output

**Run output**

| Field | Type | What it does |
| --- | --- | --- |
| `dataset` | URL string | Links to the default dataset with the saved quote rows. |

Both input modes save the same dataset row shape. Optional fields can be missing when Yahoo Finance does not provide them.

**Dataset rows**

| Field | Type | What it does |
| --- | --- | --- |
| `symbol` | string | Ticker symbol for the resolved instrument. |
| `companyName` | string, optional | Company or instrument name when available. |
| `exchange` | string, optional | Exchange or market where the instrument trades when available. |
| `currency` | string, optional | Currency used for the quote when available. |
| `currentPrice` | number | Latest available price for the instrument. |
| `change` | number | Absolute price change from the previous close, in the quote currency. |
| `changePercent` | number | Percentage change from the previous close, such as `2.46` for 2.46%. |
| `previousClose` | number | Price at the previous market close. |
| `open` | number | Opening price for the current trading session. |
| `intradayRange` | object | Lowest and highest prices for the current trading session. |
| `intradayRange.low` | number | Intraday low price. |
| `intradayRange.high` | number | Intraday high price. |
| `fiftyTwoWeekRange` | object | Lowest and highest prices recorded during the past 52 weeks. |
| `fiftyTwoWeekRange.low` | number | 52-week low price. |
| `fiftyTwoWeekRange.high` | number | 52-week high price. |
| `volume` | integer | Number of shares traded in the current session. |
| `marketCapitalization` | number, optional | Total market value of outstanding shares when available. |
| `valuation` | object, optional | Valuation measures when available. |
| `valuation.trailingPe` | number, optional | Price-to-earnings ratio based on the last 12 months of earnings. |
| `valuation.forwardPe` | number, optional | Price-to-earnings ratio based on forecast earnings. |
| `valuation.pegRatio` | number, optional | Price-to-earnings growth ratio when available. |
| `valuation.priceToBook` | number, optional | Share price compared with book value per share. |
| `earnings` | object, optional | Earnings measures when available. |
| `earnings.trailingEps` | number, optional | Earnings per share for the last 12 months. |
| `earnings.forwardEps` | number, optional | Forecast earnings per share when available. |
| `dividendYield` | number, optional | Annual dividend yield as a percentage when available. |
| `sector` | string, optional | Company sector when available. |
| `industry` | string, optional | Company industry when available. |
| `marketTime` | date-time string, optional | Market time reported by Yahoo Finance when available. |

**Stock quotes example**

This genuine row came from a successful Stock quotes run:

```json
{
  "symbol": "AAPL",
  "companyName": "Apple Inc.",
  "exchange": "NasdaqGS",
  "currency": "USD",
  "currentPrice": 333.02,
  "change": -4,
  "changePercent": -1.1868731826004393,
  "previousClose": 337.02,
  "open": 330.79998779296875,
  "intradayRange": {
    "low": 330.14,
    "high": 339.5
  },
  "fiftyTwoWeekRange": {
    "low": 243.42,
    "high": 345.34
  },
  "volume": 49875295,
  "marketTime": "2026-09-30T20:00:01.000Z",
  "marketCapitalization": 4860153954304,
  "dividendYield": 0.0033000002,
  "sector": "Technology",
  "industry": "Consumer Electronics",
  "valuation": {
    "trailingPe": 37.714607,
    "forwardPe": 34.7426,
    "pegRatio": 2.64,
    "priceToBook": 45.24728
  },
  "earnings": {
    "trailingEps": 8.83,
    "forwardEps": 9.58535
  }
}
```

**Market overview example**

This genuine row came from a successful Market overview run:

```json
{
  "symbol": "MSFT",
  "companyName": "Microsoft Corporation",
  "exchange": "NasdaqGS",
  "currency": "USD",
  "currentPrice": 512.9,
  "change": 12.310000000000002,
  "changePercent": 2.4590982640484236,
  "previousClose": 500.59,
  "open": 511.6099853515625,
  "intradayRange": {
    "low": 510.33,
    "high": 519.83
  },
  "fiftyTwoWeekRange": {
    "low": 349.2,
    "high": 553.72
  },
  "volume": 27014238,
  "marketTime": "2026-09-30T20:00:01.000Z",
  "marketCapitalization": 3808562511872,
  "dividendYield": 0.0077,
  "sector": "Technology",
  "industry": "Software - Infrastructure",
  "valuation": {
    "trailingPe": 28.542017,
    "forwardPe": 21.692709,
    "pegRatio": 1.65,
    "priceToBook": 8.610762
  },
  "earnings": {
    "trailingEps": 17.97,
    "forwardEps": 23.64389
  }
}
```

#### 💳 Pricing

The Actor uses pay-per-event pricing. The current primary rate is $0.0009 for each stock quote saved for a resolved ticker symbol. The rate applies to the current quote event shown in the pricing panel.

#### 🔌 Integrations

Run the Actor from the Apify Console or API, then read the saved rows through the default dataset link or dataset API.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Do I need ticker symbols for Market overview?

No. Choose `marketOverview` and leave the ticker list out of the request. The Actor selects its major-stock view.

##### What happens when a ticker or optional field is not available?

The source may not resolve every submitted symbol or provide every optional field. The dataset contains the quote rows and fields that Yahoo Finance returns.

##### Are these guaranteed real-time quotes?

No. The Actor returns current quote data available from Yahoo Finance, but it does not promise a real-time feed or exchange-certified data. Use `marketTime` when Yahoo Finance provides it.

##### Can I get historical prices or OHLCV data?

No. This Actor focuses on current quote records and a market overview. It does not provide historical time series.

##### Can I use this as the Yahoo Finance API?

You can call this Actor through the Apify API to retrieve Yahoo Finance stock data. It is not a promise of an official Yahoo Finance API, a guaranteed real-time feed, or investment advice.

##### Can one run use both retrieval modes?

No. Choose one result type for each run: one ticker list for `stockQuotes`, or `marketOverview` without symbols.

##### Does this Actor give investment advice?

No. It returns source data for research and workflows. It does not recommend buying, selling, or holding a security.

### 📝 Changelog

**v0.0** (01-10-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~yahoo-finance-stock-data/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Morningstar Fund & ETF Scraper](https://apify.com/maximedupre/morningstar-scraper) - Compare stock, mutual fund, and ETF prices, ratings, fees, assets, and holdings.
- [Barchart Scraper](https://apify.com/maximedupre/barchart) - Add stock and ETF quote snapshots, news, options activity, and ticker flow.
- [MarketWatch Scraper](https://apify.com/maximedupre/marketwatch) - Pair stock quote work with MarketWatch articles and related news.
- [Stocktwits Scraper](https://apify.com/maximedupre/stocktwits-scraper) - Add public ticker messages, source sentiment, and trending symbols.
- [OpenInsider](https://apify.com/maximedupre/openinsider) - Review public SEC Form 4 trades and insider transaction details.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `resultType` (type: `string`):

Choose Stock quotes for one list of ticker symbols. Choose Market overview for major-stock prices, changes, and market capitalization. The ticker list applies only to Stock quotes.

## `symbols` (type: `array`):

Enter one or more stock ticker symbols for Stock quotes, such as AAPL or MSFT. This field is ignored for Market overview.

## Actor input object example

```json
{
  "resultType": "stockQuotes",
  "symbols": [
    "AAPL",
    "MSFT"
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open the successful stock quote rows.

# 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 = {
    "resultType": "stockQuotes",
    "symbols": [
        "AAPL",
        "MSFT"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/yahoo-finance-stock-data").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 = {
    "resultType": "stockQuotes",
    "symbols": [
        "AAPL",
        "MSFT",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/yahoo-finance-stock-data").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 '{
  "resultType": "stockQuotes",
  "symbols": [
    "AAPL",
    "MSFT"
  ]
}' |
apify call maximedupre/yahoo-finance-stock-data --silent --output-dataset

```

## MCP server setup

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

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/6pS5y4V8XAkszonKu/builds/fKqYgwzSGg2TRjHQ1/openapi.json
