Stock News Sentiment Scraper
Pricing
from $5.00 / 1,000 sentiment items
Stock News Sentiment Scraper
Scrape stock ticker headlines from Yahoo Finance, Google News, and Finviz, score each with local VADER sentiment, and return per-item plus ticker summary rows. Reddit optional (off by default). MCP-ready.
Pricing
from $5.00 / 1,000 sentiment items
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
What is Stock News Sentiment Scraper?
For quants, research desks, and MCP agents that need ticker news sentiment, this Actor returns dataset rows of scored public headlines. Paste tickers and receive sentiment-item records with title, URL, source, publisher, VADER compound score, and sentimentLabel, plus optional ticker-sentiment-summary roll-ups. Primary sources are Yahoo Finance news, Google News finance RSS, and Finviz. Sentiment uses local VADER (no paid NLP). Reddit is optional and off by default.
What data can you extract?
| Field | Description |
|---|---|
ticker | Uppercase symbol (AAPL, TSLA, …) |
title / url / publisher / publishedAt | Headline identity and provenance |
source | yahoo, google-news, finviz, or optional reddit |
sentimentLabel / compound | VADER label + compound score (−1…+1) |
positiveScore / negativeScore / neutralScore | VADER intensity mix |
itemCount / avgCompound / bullishRatio | Ticker summary aggregates |
topPositiveTitles / topNegativeTitles | Extreme headlines in the window |
sourceUrl / scrapedAt | Feed URL and ISO freshness |
Best fit
Use this Actor when a quant, trader, or AI agent needs a fast multi-source news-sentiment snapshot for US tickers without standing up an NLP vendor. Prefer it over raw news scrapers when you need a comparable compound score and a ticker-level summary in one run.
Scope and routing
This Actor is strongest for public headline triage with local VADER scores. Pair this Actor with specialist tools when you need full article bodies, licensed terminals, or paid transformer NLP. For live quotes and multi-asset prices after a sentiment pass, continue with Stock Price Tracker. For broader Yahoo Finance modes such as statements or options, route to Yahoo Finance Scraper. For Google Finance page coverage beyond news sentiment, use Google Finance Stock News Scraper.
Workflow story
A portfolio agent watches AAPL and TSLA each morning. It calls this Actor with both tickers, the three primary sources, maxItemsPerTicker: 15, and includeSummary: true. Each headline becomes a billed sentiment-item with a VADER compound score. One ticker-sentiment-summary per symbol rolls up counts, average compound, and bullish ratio so the agent can gate alerts without reading every row.
How it works
- Normalizes tickers and resolves the source list (Reddit stays off unless enabled)
- Fetches Yahoo Finance RSS, Google News finance RSS, and Finviz news-table HTML over HTTPS
- Deduplicates headlines, scores title (+ snippet) with local VADER, validates rows
- Charges
sentiment-itemthen writes each row; optionally chargesticker-sentiment-summarythen writes roll-ups - Writes
OUTPUTandRUN_SUMMARYwith outcome, source attempts, and charged event counts
Input example
{"tickers": ["AAPL"],"sources": ["yahoo", "google-news", "finviz"],"includeReddit": false,"maxItemsPerTicker": 10,"maxItemsPerSource": 10,"lookbackDays": 7,"includeSummary": true}
Example output (sentiment item)
{"recordType": "sentiment-item","itemId": "a1b2c3d4e5f6789012345678","ticker": "AAPL","title": "Apple stock climbs after strong iPhone demand","url": "https://finance.yahoo.com/news/example.html","source": "yahoo","publisher": "Yahoo Finance","publishedAt": "2026-09-30T12:00:00.000Z","sentimentLabel": "positive","compound": 0.4215,"positiveScore": 0.258,"negativeScore": 0.117,"neutralScore": 0.625,"sourceUrl": "https://finance.yahoo.com/rss/headline?s=AAPL","scrapedAt": "2026-09-30T12:05:00.000Z"}
You can download the dataset as JSON, CSV, Excel, or HTML.
Pricing
This Actor uses Pay per event with platform usage passed through to the caller (isPPEPlatformUsagePaidByUser: true). Current event prices:
apify-actor-start: $0.00005 per runsentiment-item: $0.005 per scored headline writtenticker-sentiment-summary: $0.015 per ticker summary written
For example, 10 scored headlines plus one ticker summary cost about $0.065 plus small platform usage. Invalid inputs and valid-empty runs leave the named result events uncharged. Treat the live Pricing tab on the Actor page as the current source of truth for event prices and platform usage before budgeting a production run.
Outcomes
Every run writes OUTPUT and RUN_SUMMARY with one of:
COMPLETE | PARTIAL | VALID_EMPTY | INVALID_INPUT | UPSTREAM_FAILED | CONFIG_ERROR
VALID_EMPTY: sources responded, but no scored headline matched (for example an unknown ticker symbol)INVALID_INPUT: no usable tickers after normalizationPARTIAL: useful rows were saved while an optional source such as Reddit was unavailableUPSTREAM_FAILED: every required source was unavailable and nothing was saved
API example
curl "https://api.apify.com/v2/acts/khadinakbar~stock-news-sentiment-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"tickers": ["AAPL"],"sources": ["yahoo", "google-news", "finviz"],"maxItemsPerTicker": 10,"includeSummary": true,"includeReddit": false}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/stock-news-sentiment-scraper').call({tickers: ['AAPL'],sources: ['yahoo', 'google-news', 'finviz'],maxItemsPerTicker: 10,includeSummary: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 3));
MCP / agent prompt card
Use Stock News Sentiment Scraper to score the last week of AAPL headlines from Yahoo Finance, Google News, and Finviz. Keep Reddit off. Return compound scores, sentiment labels, and one ticker summary. Read the dataset for rows and OUTPUT for itemsPushed and chargedEventCounts.
Tips for best results
- Start with the three primary sources and
includeReddit: false - Use
maxItemsPerTickerto bound cost before widening lookback - Prefer ticker summaries for agent gating; drill into items when polarity is mixed
- Treat VADER as a triage signal for research workflows
FAQ
Which sources are on by default? Yahoo Finance, Google News finance RSS, and Finviz. Reddit stays off until you set includeReddit: true or include reddit in sources.
Is this investment advice? No. Local VADER scores help triage headlines; they are not trading recommendations.
Do I need an NLP API key? No. Sentiment uses local VADER inside the Actor.
Builder's note
I built this Actor after probing the three public primary feeds and choosing local VADER so every FREE-tier caller gets the same scoring path with no owner NLP key. I collect every selected source before applying maxItemsPerTicker, so dense Yahoo feeds still leave room for Finviz and Google News rows. Reddit stays optional because public search from datacenter IPs is less reliable than the primary news feeds, and the Actor can still finish with useful news rows as an honest PARTIAL.
Legal / responsible use
This Actor collects publicly reachable finance headlines for research and automation. Output is not investment advice. You remain responsible for complying with applicable terms and laws. Yahoo and Yahoo Finance are trademarks of their respective owners. This independent Actor is not affiliated with, associated with, or endorsed by Yahoo. Google and Google News are trademarks of their respective owners. This independent Actor is not affiliated with, associated with, or endorsed by Google. Finviz is a trademark of its respective owner. This independent Actor is not affiliated with, associated with, or endorsed by Finviz. Reddit is a trademark of its respective owner. This independent Actor is not affiliated with, associated with, or endorsed by Reddit.