# Financial News Sentiment Analyzer (`scionic_dev/financial-news-sentiment`) Actor

Multi-source financial sentiment analysis using VADER ($0.02/article) or LLM ($0.05/article) engines. Scrapes Yahoo, Google News, and SEC EDGAR. Features budget caps and live market enrichment (Price, P/E, Market Cap). Delivers structured JSON for trading systems and AI agents.

- **URL**: https://apify.com/scionic\_dev/financial-news-sentiment.md
- **Developed by:** [Scionic Tech](https://apify.com/scionic_dev) (community)
- **Categories:** Automation, Developer tools, News
- **Stats:** 29 total users, 8 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $20.00 / 1,000 article analyzed | vaders

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 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

### What does Financial News Sentiment Analyzer do?

Financial News Sentiment Analyzer scrapes financial news from multiple sources, runs AI-powered sentiment analysis on every headline, and outputs structured, machine-readable data enriched with live market data, confidence scores, and company classifications.

![Features](https://pub-d85bba4a71fc4b67a53117bd6a8f5bc4.r2.dev/financial-news-sentiment/features.svg)

It is an affordable, pay-per-use alternative to Bloomberg Terminal ($24,240/year), Refinitiv Eikon ($22,000/year), and other institutional data providers. You pay **$0.02 per article** analyzed — no subscriptions, no minimums.

**Key features:**

- **Multi-source aggregation** — Yahoo Finance, Google News, SEC EDGAR filings, and AI-powered search in a single run
- **Two sentiment engines** — Fast rule-based (VADER) or premium AI-powered (LLM) with financial context understanding
- **Live market data enrichment** — Current price, price change %, market cap, P/E ratio, short interest, earnings dates per ticker
- **Proprietary composite scoring** — Sentiment weighted by source credibility and model confidence
- **Deep Search** — Full-text article extraction from any URL for superior sentiment accuracy
- **Company & sector enrichment** — Automatic ticker-to-company mapping with industry classification
- **Language detection** — 55+ languages detected, filter non-English noise automatically
- **Budget protection** — Automatically stops when your spending limit is reached, never overcharges
- **Pay only for what you use** — No monthly fees, no setup costs

### Data sources

| Source | Type | Data | Cost |
|--------|------|------|------|
| Yahoo Finance | RSS feed | Headlines, summaries, per-ticker news | Free |
| Google News | RSS feed | Aggregated headlines from 80,000+ sources | Free |
| SEC EDGAR | API | 8-K, 10-K, 10-Q, Form 4 filings | Free |
| AI Search | API | AI-curated financial articles missed by RSS | $0.03/search |
| Deep Search | URL scraper | Full article text from any URL (CNBC, Reuters, etc.) | $0.05/page |

### What data do you get?

Each article in the output dataset contains:

| Field | Description | Example |
|-------|-------------|---------|
| `title` | Article headline | "Top Analysts See Solid Upside in Nvidia Stock" |
| `source` | Source identifier | `google_news`, `sec_edgar`, `ai_search` |
| `sentiment_label` | Bullish / Bearish / Neutral | `"bullish"` |
| `sentiment_score` | Continuous score (-1.0 to +1.0) | `0.850` |
| `sentiment_confidence` | Model confidence (0.0 to 1.0) | `0.95` |
| `composite_score` | Score × credibility × confidence | `0.547` |
| `sentiment_model` | Which model produced the score | `"vader"` or `"llm"` |
| `tickers` | Mentioned stock tickers | `["NVDA"]` |
| `companies` | Resolved company names | `["Nvidia"]` |
| `sectors` | Sector classification | `["Technology"]` |
| `industry` | Industry classification | `"Information Technology"` |
| `source_credibility` | Source reliability score | `0.70` |
| `published_at` | Publication timestamp (UTC) | `"2026-03-21T07:10:39Z"` |
| `language` | Detected language | `"en"` |
| `article_type` | Category | `"news"`, `"filing"`, `"press_release"` |
| `mentioned_tickers` | Additional tickers found in text | `["AMD", "INTC"]` |

**With market data enrichment enabled ($0.01/ticker):**

| Field | Description | Example |
|-------|-------------|---------|
| `current_price` | Live stock price | `172.70` |
| `price_change_pct` | Change from previous close | `-3.28` |
| `market_cap` | Market capitalization (USD) | `4197473583104` |
| `pe_ratio` | Trailing P/E ratio | `35.24` |
| `short_ratio` | Short interest ratio | `1.32` |
| `earnings_date` | Next earnings date | `"2026-05-20"` |

### Pricing

| Event | Price | When charged |
|-------|-------|--------------|
| Article analyzed (VADER) | $0.02 | Per article with fast rule-based sentiment |
| Article analyzed (LLM) | $0.05 | Per article with AI-powered sentiment |
| AI Search query | $0.03 | Per search query when AI Search source is enabled |
| Deep Search page | $0.05 | Per URL scraped for full-text extraction |
| Ticker enrichment | $0.01 | Per unique ticker enriched with live market data |

**Cost examples:**

| Use case | Configuration | Est. cost |
|----------|---------------|-----------|
| Quick check, 1 ticker, 10 articles | VADER, Google News | ~$0.21 |
| Daily monitoring, 5 tickers, 50 articles | VADER, all free sources | ~$1.01 |
| Deep analysis with market data | LLM, AI Search, enrichment, 3 tickers | ~$1.63 |
| Full stack, 5 tickers, 50 articles | LLM, AI Search, Deep Search, enrichment | ~$3.21 |

**Compare to alternatives:**

| Provider | Annual cost | Sentiment | Market data | API access |
|----------|-----------|-----------|-------------|------------|
| Bloomberg Terminal | $24,240 | Limited | Yes | No |
| Refinitiv Eikon | $22,000 | Yes | Yes | Yes |
| Finnhub Premium | $6,000 | Basic | Yes | Yes |
| **This Actor (VADER)** | **~$120-600** | **Yes** | **Optional** | **Yes** |
| **This Actor (LLM)** | **~$300-1,500** | **Advanced** | **Optional** | **Yes** |

### How it works

![Architecture](https://pub-d85bba4a71fc4b67a53117bd6a8f5bc4.r2.dev/financial-news-sentiment/architecture.svg)

### Quick start

**Step 1.** Click **Try for free** and configure your run:

- Enter stock tickers (e.g., `AAPL`, `TSLA`, `NVDA`)
- Choose news sources (default: all free sources)
- Pick sentiment model — `vader` for speed, `llm` for accuracy
- Optionally enable market data enrichment

**Step 2.** Run the Actor.

**Step 3.** Download results from the Dataset tab as JSON, CSV, or Excel.

### Sentiment models compared

| | VADER | LLM (AI-Powered) |
|---|---|---|
| **Speed** | Instant (~1ms/article) | ~500ms/article (batched) |
| **Cost** | $0.02/article | $0.05/article |
| **Strengths** | Fast, deterministic, no external dependency | Understands context, negation, financial nuance |
| **Weakness** | Misses context in complex headlines | Slightly slower, higher cost |
| **Best for** | High-volume monitoring, cost-sensitive | Investment decisions, research reports |

**Example where it matters:**

> "Nvidia Stock Drops. Not Even Elon Musk Can Give Shares a Boost."

- VADER: **bullish** +0.83 (confused by "Boost")
- LLM: **bearish** -0.95 (understands "Drops" is the signal)

### Output example

```json
{
    "article_id": "cbb7559567eb174a",
    "source": "google_news",
    "source_url": "https://news.google.com/rss/articles/...",
    "source_credibility": 0.7,
    "title": "Apple Inc. Stock Position Raised by Groupama Asset Management",
    "summary": "Apple Inc. Stock Position Raised by Groupama Asset Management",
    "authors": ["MarketBeat"],
    "published_at": "2026-03-22T11:17:21Z",
    "scraped_at": "2026-03-22T14:30:12Z",
    "tickers": ["AAPL"],
    "companies": ["Apple Inc."],
    "sectors": ["Technology"],
    "sentiment_label": "bullish",
    "sentiment_score": 0.850,
    "sentiment_confidence": 0.95,
    "sentiment_model": "llm",
    "composite_score": 0.547,
    "language": "en",
    "language_confidence": 1.0,
    "article_type": "news",
    "topics": [],
    "topic_confidence": 0.0,
    "mentioned_tickers": [],
    "current_price": 247.99,
    "price_change_pct": -0.39,
    "market_cap": 3644938780672,
    "pe_ratio": 31.35,
    "industry": "Computers, Phones & Household Electronics",
    "short_ratio": 2.41,
    "earnings_date": "2026-04-30"
}
````

### Use cases

**Algorithmic trading** — Feed real-time sentiment signals into your trading system. The composite score combines sentiment, source credibility, and confidence into a single actionable number. Market data enrichment adds price context alongside sentiment.

**Portfolio monitoring** — Schedule daily runs across your holdings. Track sentiment trends over time. Detect negative news before it hits the price. Get notified when short interest or P/E ratios change.

**Research & due diligence** — Analyze sentiment around a company before investing. Compare sentiment across competitors in the same sector. Use Deep Search to extract full articles from any URL.

**AI agents & automation** — Structured JSON output works directly with AI agents, LangChain, and automation platforms. Schedule runs and pipe results into your workflow.

**Fintech products** — Build sentiment dashboards, alerts, and newsletters. The standardized schema makes integration straightforward across all sources.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `tickers` | string\[] | `["AAPL", "TSLA"]` | Stock tickers to analyze |
| `query` | string | — | Free-text search query |
| `sources` | string\[] | All free sources | Which sources to scrape |
| `maxArticles` | integer | 20 | Max articles per source |
| `sentimentModel` | string | `"vader"` | `"vader"` or `"llm"` |
| `includeRawText` | boolean | true | Include article summaries |
| `enrichWithMarketData` | boolean | false | Add live price, market cap, P/E per ticker ($0.01/ticker) |
| `deepSearchUrls` | string\[] | — | URLs for full-text extraction ($0.05/page) |

### Integration examples

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("YOUR_USERNAME/financial-news-sentiment").call(
    run_input={
        "tickers": ["AAPL", "NVDA", "TSLA"],
        "sources": ["google_news", "sec_edgar"],
        "maxArticles": 20,
        "sentimentModel": "llm",
        "enrichWithMarketData": True,
    }
)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    price = item.get("current_price", "N/A")
    print(f"{item['sentiment_label']:>7s} {item['sentiment_score']:+.2f} ${price} | {item['title'][:50]}")
```

#### JavaScript

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('YOUR_USERNAME/financial-news-sentiment').call({
    tickers: ['AAPL', 'NVDA', 'TSLA'],
    sources: ['google_news', 'sec_edgar'],
    maxArticles: 20,
    sentimentModel: 'llm',
    enrichWithMarketData: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.sentiment_label} ${item.sentiment_score} $${item.current_price} | ${item.title}`);
});
```

### FAQ

**Is this financial advice?**
No. Sentiment scores are AI-generated and may be inaccurate. This tool is for informational and research purposes only. Always do your own due diligence.

**How accurate is the sentiment analysis?**
VADER with our financial lexicon correctly classifies ~75-80% of financial headlines. The LLM model achieves ~90-95% accuracy on financial text, including complex headlines with negation and context.

**What about paywalled sources (Bloomberg, WSJ)?**
We do not scrape paywalled content. All sources are publicly accessible or use official APIs. Use Deep Search URLs to extract articles from sites you have access to.

**How fresh is the data?**
Articles are scraped in real-time when the actor runs. Schedule it hourly or daily for continuous monitoring. Market data enrichment provides live prices at the time of the run.

**Can I use this with my AI agent or LLM?**
Yes. The structured JSON output is designed for programmatic consumption. It works directly with LangChain, AutoGPT, Claude, and any tool that accepts JSON data.

**What happens if my budget runs out?**
The actor automatically stops processing and returns whatever articles it has already analyzed. You are never overcharged. Set a spending limit in the Apify Console to control costs.

**What happens if a source is down?**
Each source is fetched independently. If one fails, the others still return data. Errors are logged in the run stats.

### Legal disclaimer

This actor only scrapes publicly available data. Article summaries are limited to 200 characters for legal compliance — full article text is never stored or distributed. SEC EDGAR data is explicitly public domain. All other data is derived analysis (sentiment scores) which is protected as transformative use.

Not affiliated with Yahoo Finance, Google, SEC, or any news publisher.

# Actor input Schema

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

List of stock tickers to analyze (e.g., AAPL, TSLA, MSFT). Leave empty to get general market news.

## `query` (type: `string`):

Optional free-text search query (e.g., 'Federal Reserve interest rates'). Used alongside or instead of tickers.

## `sources` (type: `array`):

Which news sources to scrape. Defaults to all available sources.

## `maxArticles` (type: `integer`):

Maximum number of articles to analyze per source. Controls cost.

## `sentimentModel` (type: `string`):

VADER: fast, lightweight, rule-based. LLM: uses Gemini/Deepseek AI for superior financial context understanding (requires API keys). FinBERT: transformer model (heavy Docker image).

## `includeRawText` (type: `boolean`):

Include article summary (first 200 characters) in output. Disable for smaller dataset size.

## `dateFrom` (type: `string`):

Only include articles published after this date (YYYY-MM-DD format).

## `dateTo` (type: `string`):

Only include articles published before this date (YYYY-MM-DD format).

## `enrichWithMarketData` (type: `boolean`):

Add live market data per ticker: price, market cap, P/E, sector, short ratio, earnings date. Charged $0.01 per unique ticker enriched.

## `deepSearchUrls` (type: `array`):

Specific article URLs for full-text extraction and sentiment analysis. Charged $0.05 per URL. Best for CNBC, Reuters, MarketWatch articles that RSS can't access.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Uses free datacenter proxies by default. Helps avoid rate limiting on Yahoo Finance.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "TSLA",
    "MSFT",
    "GOOGL"
  ],
  "sources": [
    "yahoo_finance",
    "google_news",
    "sec_edgar"
  ],
  "maxArticles": 20,
  "sentimentModel": "vader",
  "includeRawText": true,
  "enrichWithMarketData": true
}
```

# 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",
        "TSLA"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scionic_dev/financial-news-sentiment").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",
        "TSLA",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scionic_dev/financial-news-sentiment").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",
    "TSLA"
  ]
}' |
apify call scionic_dev/financial-news-sentiment --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scionic_dev/financial-news-sentiment",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Financial News Sentiment Analyzer",
        "description": "Multi-source financial sentiment analysis using VADER ($0.02/article) or LLM ($0.05/article) engines. Scrapes Yahoo, Google News, and SEC EDGAR. Features budget caps and live market enrichment (Price, P/E, Market Cap). Delivers structured JSON for trading systems and AI agents.",
        "version": "1.0",
        "x-build-id": "oYSQOOYz8RwZGfKEv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scionic_dev~financial-news-sentiment/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scionic_dev-financial-news-sentiment",
                "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/scionic_dev~financial-news-sentiment/runs": {
            "post": {
                "operationId": "runs-sync-scionic_dev-financial-news-sentiment",
                "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/scionic_dev~financial-news-sentiment/run-sync": {
            "post": {
                "operationId": "run-sync-scionic_dev-financial-news-sentiment",
                "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": "Stock Tickers",
                        "type": "array",
                        "description": "List of stock tickers to analyze (e.g., AAPL, TSLA, MSFT). Leave empty to get general market news.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Optional free-text search query (e.g., 'Federal Reserve interest rates'). Used alongside or instead of tickers."
                    },
                    "sources": {
                        "title": "News Sources",
                        "type": "array",
                        "description": "Which news sources to scrape. Defaults to all available sources.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "yahoo_finance",
                                "google_news",
                                "sec_edgar",
                                "ai_search"
                            ]
                        },
                        "default": [
                            "yahoo_finance",
                            "google_news",
                            "sec_edgar"
                        ]
                    },
                    "maxArticles": {
                        "title": "Max Articles",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of articles to analyze per source. Controls cost.",
                        "default": 20
                    },
                    "sentimentModel": {
                        "title": "Sentiment Model",
                        "enum": [
                            "vader",
                            "llm",
                            "finbert"
                        ],
                        "type": "string",
                        "description": "VADER: fast, lightweight, rule-based. LLM: uses Gemini/Deepseek AI for superior financial context understanding (requires API keys). FinBERT: transformer model (heavy Docker image).",
                        "default": "vader"
                    },
                    "includeRawText": {
                        "title": "Include Summary Text",
                        "type": "boolean",
                        "description": "Include article summary (first 200 characters) in output. Disable for smaller dataset size.",
                        "default": true
                    },
                    "dateFrom": {
                        "title": "Date From",
                        "type": "string",
                        "description": "Only include articles published after this date (YYYY-MM-DD format)."
                    },
                    "dateTo": {
                        "title": "Date To",
                        "type": "string",
                        "description": "Only include articles published before this date (YYYY-MM-DD format)."
                    },
                    "enrichWithMarketData": {
                        "title": "Enrich with Market Data",
                        "type": "boolean",
                        "description": "Add live market data per ticker: price, market cap, P/E, sector, short ratio, earnings date. Charged $0.01 per unique ticker enriched.",
                        "default": true
                    },
                    "deepSearchUrls": {
                        "title": "Deep Search URLs",
                        "type": "array",
                        "description": "Specific article URLs for full-text extraction and sentiment analysis. Charged $0.05 per URL. Best for CNBC, Reuters, MarketWatch articles that RSS can't access.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy settings. Uses free datacenter proxies by default. Helps avoid rate limiting on Yahoo Finance."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
