# Yahoo Finance Daily Open Close Scraper (`acquistion-automation/yahoo-finance-daily-open-close-scraper`) Actor

Scrapes daily open and close prices from Yahoo Finance for a list of stock symbols. Returns open, close, high, low, volume, adjusted close, and exchange metadata.

- **URL**: https://apify.com/acquistion-automation/yahoo-finance-daily-open-close-scraper.md
- **Developed by:** [Acquisition Automation Co.](https://apify.com/acquistion-automation) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.62 / 1,000 results

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

[![Acquisition Automation](https://api.apify.com/v2/key-value-stores/AOdPHdOpeDpzEPS5f/records/banner.jpg)](https://apify.com/acquistion-automation)

### Yahoo Finance Daily Open Close Scraper

**Scrape daily open and close prices from Yahoo Finance for any stock symbol, up to a million per run.** Every result includes the open, close, high, low, volume, and adjusted close for the latest trading day, plus full metadata like exchange name, currency, and 52-week range. No login or API key. Export to CSV, JSON, Excel, or XML.

Yahoo Finance's chart API is the fastest way to get daily open and close data, but calling it manually for hundreds of symbols is tedious. This Actor reads the official JSON endpoint directly, returning each symbol's latest trading day snapshot in one flat row. No HTML parsing, no rate-limit guessing.

| Who uses it | What they scrape Yahoo Finance for |
|---|---|
| Quantitative traders | Which stocks had unusual daily volume or price gaps to flag for backtesting |
| Portfolio managers | Daily open and close snapshots for rebalancing decisions |
| Financial data analysts | Clean daily price data for correlation or regression models |
| Individual investors | Track daily performance of a watchlist without manual lookups |

### What it does

This Actor collects daily open and close prices from Yahoo Finance for a list of stock symbols, returning each symbol's latest trading day data as a single row.

- 📊 **Latest trading day only:** Returns the most recent complete daily bar for each symbol, not a multi-day history.
- ⚡ **Bulk symbol input:** Feed up to 1000 symbols per run; each returns its own row.
- 🔗 **No API key needed:** Uses the public Yahoo Finance chart endpoint directly.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Yahoo Finance data

**📈 Monitor daily open and close for a watchlist.**

A retail investor runs this each morning with their 20-stock watchlist to see overnight gaps and volume spikes before the market opens.

**📊 Feed daily price data into a trading algorithm.**

A quant developer pipes the output into a Python backtester, using the open and close columns to calculate daily returns and volatility.

**📋 Build a daily market summary dashboard.**

A financial analyst collects open and close data for the S\&P 500 components and visualizes sector-level movements in a BI tool.

**🔍 Validate stock data from other sources.**

A data engineer cross-checks daily prices from a paid feed against Yahoo Finance's open and close to spot discrepancies.

### Why choose this scraper

| | What you get |
|---|---|
| **Symbol metadata** | Exchange name, full exchange name, currency, timezone, and instrument type |
| **Daily price data** | Open, close, high, low, volume, and adjusted close for the latest trading day |
| **Market context** | Regular market price, change percent, 52-week high and low, and chart previous close |
| **Trading period details** | Pre-market, regular, and post-market session start and end times with timezone offsets |

### How it compares

Compared to other Yahoo Finance scrapers, this Actor focuses on the latest trading day's open and close data with minimal setup.

| Feature | Acquisition Automation | Yahoo Finance Historical | Yahoo Finance Scraper - Stock Quotes, Prices & Data | Yahoo Finance Historical Data Scraper |
|---|---|---|---|---|
| Latest trading day open/close only | Yes | Not listed | Not listed | Not listed |
| Multi-year historical data | Not listed | Yes | Yes | Yes |
| Real-time quotes | Not listed | Not listed | Yes | Not listed |
| Financials and analyst ratings | Not listed | Not listed | Yes | Not listed |
| Dividends and splits | Not listed | Not listed | Not listed | Yes |
| No API key required | Yes | Not listed | Not listed | Not listed |
| Flat row per symbol | Yes | Not listed | Not listed | Not listed |

### What a Yahoo Finance record looks like

Every record returns as one flat JSON row. Here is a real one from a run:

```json
{
 "symbol": "AAPL",
 "currency": "USD",
 "exchangeName": "NMS",
 "fullExchangeName": "NasdaqGS",
 "instrumentType": "EQUITY",
 "firstTradeDate": 345479400,
 "regularMarketTime": 1790366401,
 "hasPrePostMarketData": true,
 "gmtoffset": -14400,
 "timezone": "EDT",
 "exchangeTimezoneName": "America/New_York",
 "regularMarketPrice": 341.07,
 "regularMarketChangePercent": 1.533,
 "fulldayPrice": 340.55,
 "fulldayChange": 5.15
}
```

Every value above comes from a real run. A field a record does not have comes back as `null`.

### Configure the run

Drive the Actor from a comma-separated list of stock symbols. The maxItems setting limits the total rows returned, useful for previews or large batches. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "symbols": [
 "AAPL"
 ],
 "maxItems": 10
}
```

A larger pull:

```json
{
 "symbols": [
 "AAPL"
 ],
 "maxItems": 200
}
```

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up).
2. Open the [Yahoo Finance Daily Open Close Scraper](https://apify.com/acquistion-automation/yahoo-finance-daily-open-close-scraper).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Yahoo Finance through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=acquistion-automation/yahoo-finance-daily-open-close-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results for a symbol?**

Check that the symbol is valid on Yahoo Finance. Try searching it on finance.yahoo.com first. Also ensure the symbol is not delisted or suspended.

**The output shows only 10 rows even though I input 50 symbols.**

Free accounts are limited to 10 items per run. Upgrade to a paid plan or set maxItems to a higher value.

**The data seems stale or from yesterday.**

The Actor returns the latest complete trading day. If the market is open, the previous day's close is returned. Run after market close for the current day's data.

**I get an error about invalid symbols.**

Remove any spaces or special characters from the symbol list. Use plain tickers like AAPL, MSFT, GOOGL separated by commas.

**The adjusted close column is empty for some symbols.**

Adjusted close may not be available for all instruments (e.g., ETFs or indices). The raw close column will still have data.

### FAQ

| Question | Answer |
|---|---|
| Does this scrape historical data or the latest day? | It returns the latest complete trading day's data for each symbol. For multi-day history, use a historical data scraper like Yahoo Finance Historical. |
| How many symbols can I input at once? | You can input up to 1000 symbols in the symbols field. The maxItems setting controls the total number of rows returned. |
| Do I need a Yahoo Finance API key? | No. The Actor uses the public Yahoo Finance chart endpoint, which requires no authentication. |
| What fields are returned for each symbol? | Each row includes open, close, high, low, volume, adjusted close, exchange name, currency, 52-week range, and trading session times. |
| Can I export the data to Excel? | Yes. The dataset can be downloaded as CSV, JSON, Excel, or XML from the Apify storage. |
| Is there a limit on free runs? | Free users are limited to 10 items per run (preview). Paid users can set maxItems up to 1,000,000. |
| Does it work for international stocks? | Yes, as long as the symbol is listed on Yahoo Finance. The output includes the exchange name and currency. |
| What timezone are the timestamps in? | Timestamps are in Unix epoch milliseconds. The timezone field (e.g., America/New\_York) is included for conversion. |
| Can I run this on a schedule? | Yes. You can schedule the Actor to run daily via Apify's scheduler to get fresh open and close data each morning. |
| Does it include pre-market or post-market data? | The output includes the trading period start and end times for pre-market, regular, and post-market sessions, but the price fields reflect the regular trading day. |

### Related actors

Browse the full [Acquisition Automation collection](https://apify.com/acquistion-automation) for more scrapers.

🆘 **Need help?** Open an issue in the Issues tab of this Actor with your run ID, your input, and what you expected.

### Pricing

This Actor uses **pay-per-result** pricing: **$0.004 per result** collected. You are billed only for the results you receive, so a run that returns nothing costs nothing.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Yahoo Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

Comma-separated list of stock symbols to fetch daily open and close prices for. For example: AAPL, MSFT, GOOGL.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "symbols": [
    "AAPL"
  ],
  "maxItems": 10
}
```

# Actor output Schema

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

Complete dataset of all scraped records.

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

// Run the Actor and wait for it to finish
const run = await client.actor("acquistion-automation/yahoo-finance-daily-open-close-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 = {
    "symbols": ["AAPL"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("acquistion-automation/yahoo-finance-daily-open-close-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 '{
  "symbols": [
    "AAPL"
  ],
  "maxItems": 10
}' |
apify call acquistion-automation/yahoo-finance-daily-open-close-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,acquistion-automation/yahoo-finance-daily-open-close-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/8CBrGWSKEN575H45G/builds/pmq02aB4zoAMrd7VB/openapi.json
