# Yahoo Finance Scraper — Quotes, Fundamentals & News (`seemuapps/yahoo-finance-scraper`) Actor

Scrape Yahoo Finance for live stock quotes, company fundamentals, historical prices, options chains, and news for any ticker — stocks, crypto, forex, indices.

- **URL**: https://apify.com/seemuapps/yahoo-finance-scraper.md
- **Developed by:** [Andrew](https://apify.com/seemuapps) (community)
- **Categories:** News, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Yahoo Finance Scraper — Quotes, Fundamentals & News

Get live market data for any ticker on Yahoo Finance — stocks, crypto, forex, ETFs, and indices. Five data types in one actor: quotes, company fundamentals, historical prices, options chains, and news.

### What you get

- **Quotes**: live price, change, day range, volume, market cap, PE, EPS, dividend yield, 52-week range, bid/ask — up to 100 symbols per run
- **Fundamentals**: sector, industry, employees, business summary, margins, revenue, cash/debt, free cash flow, valuation ratios, and analyst targets & recommendations
- **History**: OHLCV price bars from 5-minute intraday to monthly, up to full listing history, with adjusted close
- **Options**: the full option chain for the nearest expiry — strikes, last/bid/ask, volume, open interest, implied volatility
- **News**: latest headlines per symbol with publisher, timestamp, and related tickers
- Export to JSON, CSV, Excel, or Google Sheets directly from the Apify console

### Use cases

- Portfolio dashboards and market monitoring on a schedule
- Quant research — build historical OHLCV datasets across tickers
- Stock screeners — pull fundamentals for a watchlist and filter in Sheets
- Options analysis — track IV, open interest, and unusual volume
- News monitoring and sentiment pipelines per ticker

### How to use

1. Enter **Ticker symbols** — stocks (`AAPL`), crypto (`BTC-USD`), forex (`EURUSD=X`), indices (`^GSPC`)
2. Pick a **Data type** — quotes, fundamentals, history, options, or news
3. For history, set the **Range** and **Interval**
4. Run the actor — records appear in the **Dataset** tab

### Output format

Quotes mode:

```json
{
  "symbol": "AAPL",
  "name": "Apple Inc.",
  "currency": "USD",
  "exchange": "NasdaqGS",
  "marketState": "REGULAR",
  "price": 229.35,
  "changePercent": 1.24,
  "volume": 48123456,
  "marketCap": 3512345678901,
  "trailingPE": 34.9,
  "fiftyTwoWeekHigh": 260.1,
  "fiftyTwoWeekLow": 169.2
}
```

History mode:

```json
{
  "symbol": "AAPL",
  "date": "2026-08-07T13:30:00.000Z",
  "open": 227.9,
  "high": 230.4,
  "low": 227.1,
  "close": 229.35,
  "adjClose": 229.35,
  "volume": 51234567
}
```

### FAQ

**Which markets are covered?** Everything listed on Yahoo Finance — US and international equities, ETFs, mutual funds, crypto, forex pairs, futures, and world indices.

**How fresh are quotes?** Real-time or exchange-delayed exactly as shown on Yahoo Finance.

**Can I run it on a schedule?** Yes — use Apify Schedules to refresh quotes or append daily history, and connect the dataset to Google Sheets or your BI tool.

# Actor input Schema

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

Ticker symbols to fetch — stocks ('AAPL'), crypto ('BTC-USD'), forex ('EURUSD=X'), indices ('^GSPC'). Maximum 100 per run.

## `mode` (type: `string`):

What to fetch for each symbol: live quotes, company fundamentals, historical OHLCV prices, the options chain, or latest news.

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

How far back to fetch price history. Only used when Data type is 'History'.

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

Size of each price bar. Intraday intervals (5m–1h) only work with short ranges. Only used when Data type is 'History'.

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

Maximum number of records to return across all symbols. 0 = unlimited.

## Actor input object example

```json
{
  "symbols": [
    "AAPL",
    "MSFT",
    "BTC-USD"
  ],
  "mode": "quotes",
  "range": "1mo",
  "interval": "1d",
  "maxItems": 0
}
```

# Actor output Schema

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

Quotes: one record per symbol with price, volume, market cap, PE, 52-week range. Fundamentals: sector, margins, valuation, analyst targets. History: one OHLCV bar per record. Options: one contract per record. News: one headline per record.

# 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",
        "MSFT",
        "BTC-USD"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/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 = { "symbols": [
        "AAPL",
        "MSFT",
        "BTC-USD",
    ] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/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/DnhvJrXzfpz8jUouw/builds/xzW9lRnv3Yao6K6ou/openapi.json
