# Yahoo Finance Scraper (`solidcode/yahoo-finance-scraper`) Actor

\[💰 $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.

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

## Pricing

from $0.40 / 1,000 data categories

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

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 `max` range.
- **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`/`historyEndDate` window.
- **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:

```json
{
    "tickers": ["AAPL"],
    "dataModules": ["quote", "profile"]
}
````

#### Multi-Ticker Fundamentals

Pull statements, earnings, and analyst data across several symbols:

```json
{
    "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:

```json
{
    "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

```json
{
    "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

```json
{
    "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

```json
{
    "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

```json
{
    "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

```json
{
    "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

```json
{
    "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

```json
{
    "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 `quote` and `profile` to test, then add what you want.
- **Use an exact window for backtests** — set `historyStartDate` and `historyEndDate` for a precise date range, or use `historyRange: "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 `tickers` list; live quotes for the whole list are gathered together, and each symbol's other data is added independently.
- **Cap unbounded categories** — set `maxNewsPerTicker` and `maxOptionExpirations` to 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. </content> </invoke>

# Actor input Schema

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

Stock ticker symbols to look up, for example AAPL, MSFT, or TSLA. You can also use indices (^GSPC), ETFs (SPY), currencies (EURUSD=X), and crypto (BTC-USD).

## `dataModules` (type: `array`):

Choose which categories of data to return for each ticker. Pick only what you need — fewer categories means faster, cheaper runs.

## `historyStartDate` (type: `string`):

Earliest date for historical prices, dividends, and splits. Use the format YYYY-MM-DD, for example 2023-01-01. Leave empty to use the range below.

## `historyEndDate` (type: `string`):

Latest date for historical prices, dividends, and splits. Use the format YYYY-MM-DD, for example 2024-12-31. Leave empty for today.

## `historyRange` (type: `string`):

A convenient preset for the historical window. Ignored when a start date is set above.

## `historyInterval` (type: `string`):

Granularity of historical price candles. Intraday intervals (under 1 day) are only available for short ranges.

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

Limit how many news articles to return per ticker. Only applies when the News category is selected.

## `maxOptionExpirations` (type: `integer`):

Limit how many option expiration dates to fetch per ticker. Only applies when the Options category is selected. Set to 0 for the nearest expiration only. To keep result counts predictable, this is capped at 25 expirations per ticker even if you enter a higher number.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "MSFT",
    "GOOGL"
  ],
  "dataModules": [
    "quote",
    "profile"
  ],
  "historyRange": "1y",
  "historyInterval": "1d",
  "maxNewsPerTicker": 10,
  "maxOptionExpirations": 2
}
```

# Actor output Schema

## `overview` (type: `string`):

Quote and company-profile records for each ticker.

## `history` (type: `string`):

Historical OHLCV price rows.

## `news` (type: `string`):

Latest news articles per ticker.

# 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",
        "GOOGL"
    ],
    "dataModules": [
        "quote",
        "profile"
    ],
    "historyRange": "1y",
    "historyInterval": "1d",
    "maxNewsPerTicker": 10,
    "maxOptionExpirations": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/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",
        "GOOGL",
    ],
    "dataModules": [
        "quote",
        "profile",
    ],
    "historyRange": "1y",
    "historyInterval": "1d",
    "maxNewsPerTicker": 10,
    "maxOptionExpirations": 2,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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",
    "GOOGL"
  ],
  "dataModules": [
    "quote",
    "profile"
  ],
  "historyRange": "1y",
  "historyInterval": "1d",
  "maxNewsPerTicker": 10,
  "maxOptionExpirations": 2
}' |
apify call solidcode/yahoo-finance-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/yahoo-finance-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yahoo Finance Scraper",
        "description": "[💰 $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.",
        "version": "1.0",
        "x-build-id": "goltrVnTCnZ86vq2f"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~yahoo-finance-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-yahoo-finance-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~yahoo-finance-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-yahoo-finance-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~yahoo-finance-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-yahoo-finance-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "tickers": {
                        "title": "Ticker Symbols",
                        "type": "array",
                        "description": "Stock ticker symbols to look up, for example AAPL, MSFT, or TSLA. You can also use indices (^GSPC), ETFs (SPY), currencies (EURUSD=X), and crypto (BTC-USD).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "dataModules": {
                        "title": "Data to Collect",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Choose which categories of data to return for each ticker. Pick only what you need — fewer categories means faster, cheaper runs.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "quote",
                                "profile",
                                "history",
                                "financials",
                                "balanceSheet",
                                "cashFlow",
                                "earnings",
                                "dividends",
                                "splits",
                                "recommendations",
                                "holders",
                                "options",
                                "news"
                            ],
                            "enumTitles": [
                                "Quote & current price",
                                "Company profile (sector, industry, summary)",
                                "Historical prices (OHLCV)",
                                "Income statement",
                                "Balance sheet",
                                "Cash flow statement",
                                "Earnings history",
                                "Dividend history",
                                "Stock splits",
                                "Analyst recommendations",
                                "Institutional holders",
                                "Options chain",
                                "Latest news"
                            ]
                        },
                        "default": [
                            "quote",
                            "profile"
                        ]
                    },
                    "historyStartDate": {
                        "title": "History Start Date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Earliest date for historical prices, dividends, and splits. Use the format YYYY-MM-DD, for example 2023-01-01. Leave empty to use the range below."
                    },
                    "historyEndDate": {
                        "title": "History End Date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Latest date for historical prices, dividends, and splits. Use the format YYYY-MM-DD, for example 2024-12-31. Leave empty for today."
                    },
                    "historyRange": {
                        "title": "Quick Range Preset",
                        "enum": [
                            "5d",
                            "1mo",
                            "3mo",
                            "6mo",
                            "1y",
                            "2y",
                            "5y",
                            "10y",
                            "ytd",
                            "max"
                        ],
                        "type": "string",
                        "description": "A convenient preset for the historical window. Ignored when a start date is set above.",
                        "default": "1y"
                    },
                    "historyInterval": {
                        "title": "Price Interval",
                        "enum": [
                            "1m",
                            "5m",
                            "15m",
                            "30m",
                            "60m",
                            "1d",
                            "1wk",
                            "1mo"
                        ],
                        "type": "string",
                        "description": "Granularity of historical price candles. Intraday intervals (under 1 day) are only available for short ranges.",
                        "default": "1d"
                    },
                    "maxNewsPerTicker": {
                        "title": "Max News Articles per Ticker",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Limit how many news articles to return per ticker. Only applies when the News category is selected.",
                        "default": 10
                    },
                    "maxOptionExpirations": {
                        "title": "Max Option Expirations per Ticker",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Limit how many option expiration dates to fetch per ticker. Only applies when the Options category is selected. Set to 0 for the nearest expiration only. To keep result counts predictable, this is capped at 25 expirations per ticker even if you enter a higher number.",
                        "default": 2
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
