News Sentiment Analyzer
Pricing
$6.50 / 1,000 article analyzeds
News Sentiment Analyzer
Analyze news articles for sentiment using NLP. Extract positive, negative, and neutral signals from any news URL or keyword-based news feed.
Introduction
News Sentiment Analyzer is an Apify actor that scrapes news articles for any topic, company, or keyword and performs natural language processing (NLP) to determine sentiment — all in a single, zero-config run. Enter a query like "Apple earnings" or "climate change" and receive per-article sentiment scores (positive/negative/neutral), aggregate trends, named entity extraction, and source-by-source breakdowns. No external API keys required: all NLP runs locally using the battle-tested AFINN lexicon.
Primary use cases:
- Brand monitoring — Track how media covers your company over time
- Market sentiment — Gauge news sentiment on tickers before earnings calls
- PR campaign tracking — Measure reception after launches or announcements
- Competitive intelligence — Compare media sentiment across competitors
- Research & journalism — Analyze coverage trends across sources and dates
Key differentiators: Combined news scraping + NLP in one actor. Aggregate summary with time-series trends, entity breakdown, and source analysis. Zero setup — no cloud accounts, no API keys.
Why Use This Actor
Most sentiment solutions require you to build a pipeline: a scraper to collect articles, an NLP service to analyze them, and aggregation code to summarize results. This actor replaces that entire stack.
| Feature | This Actor | AWS Comprehend | Google Cloud NLP | MonkeyLearn |
|---|---|---|---|---|
| Price per 1K articles | $6.50 (all-in) | $1.00 NLP + scraping cost | $1.00 NLP + scraping cost | $5.00 NLP only |
| Includes news scraping | Yes | No | No | No |
| Zero-config | Yes | AWS account + IAM | GCP project + SA | Account + API key |
| Aggregate sentiment summary | Yes | Per-document only | Per-document only | No |
| Trending topic extraction | Yes | Entity detection | Entity detection | No |
| Source & time-series breakdown | Yes | No | No | No |
| No external API dependencies | Yes | AWS required | GCP required | API key required |
The actor uses Google News RSS and Bing News as primary sources, covering thousands of publications worldwide. All sentiment analysis runs in-memory — your data never leaves Apify infrastructure.
How to Use
Zero-config example — just provide a search query:
{"query": "Tesla earnings Q1 2026"}
Multi-query example — track multiple companies in one run:
{"queries": ["Apple stock", "Microsoft Azure", "Nvidia AI chips"],"maxArticlesPerQuery": 30,"dateRange": "7d"}
Deep analysis example — full entity and topic extraction:
{"query": "Federal Reserve interest rates","sources": ["google_news", "bing_news", "reuters"],"maxArticlesPerQuery": 100,"extractEntities": true,"extractTopics": true,"groupByDate": true,"dateRange": "30d"}
API call example (Node.js with Apify SDK):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('junipr/news-sentiment-analyzer').call({query: 'OpenAI GPT',maxArticlesPerQuery: 50,extractEntities: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].sentiment); // { score: 0.42, label: 'positive', ... }
Input Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | "technology news" | Primary search query — company name, topic, or keyword |
queries | array | [] | Multiple queries in one run; each gets its own summary |
sources | array | ["google_news", "bing_news"] | News sources: google_news, bing_news, yahoo_news, reuters, associated_press |
maxArticlesPerQuery | integer | 50 | Articles to analyze per query (1–500) |
language | string | "en" | Language filter (ISO 639-1 code) |
country | string | "US" | Country filter (ISO 3166-1 alpha-2) |
dateRange | string | "7d" | Lookback period: 1d, 3d, 7d, 14d, 30d, 90d |
sentimentModel | string | "afinn" | NLP model: afinn (fast) or pattern (sentence-aware) |
extractEntities | boolean | true | Extract named entities (people, orgs, locations) |
extractTopics | boolean | true | Extract key topics and themes |
includeArticleText | boolean | false | Include full article text in output (increases dataset size) |
minArticleLength | integer | 100 | Skip articles shorter than this many characters |
groupBySource | boolean | true | Per-source sentiment breakdown in run summary |
groupByDate | boolean | true | Daily sentiment time-series in run summary |
proxyConfiguration | object | Apify proxy | Proxy settings for scraping |
Common configurations:
- Quick brand check:
{ "query": "YourCompany", "maxArticlesPerQuery": 20 } - Deep market analysis:
{ "queries": ["TSLA", "AAPL", "MSFT"], "maxArticlesPerQuery": 100, "dateRange": "30d" } - Daily monitoring: Schedule with
{ "query": "your topic", "dateRange": "1d" }running daily
Output Format
Per-article result (pushed to dataset):
{"query": "Apple earnings","title": "Apple Posts Record Revenue Driven by iPhone and Services","url": "https://www.reuters.com/technology/apple-record-revenue-2026/","source": "Reuters","sourceDomain": "reuters.com","publishedAt": "2026-03-10T18:45:00.000Z","scrapedAt": "2026-03-11T12:00:00.000Z","sentiment": {"score": 0.58,"magnitude": 0.74,"label": "positive","confidence": 0.61},"entities": [{ "text": "Apple", "type": "organization", "count": 12, "sentimentScore": 0.58 },{ "text": "Tim Cook", "type": "person", "count": 4, "sentimentScore": 0.41 }],"topics": ["revenue", "iphone", "services", "earnings", "growth"],"articleLength": 1842,"articleText": null,"articleSnippet": "Apple reported record quarterly revenue of $124.3 billion...","imageUrl": "https://static.reuters.com/...","errors": []}
Sentiment score interpretation:
| Score Range | Label | Meaning |
|---|---|---|
| 0.25 to 1.0 | positive | Favorable, optimistic coverage |
| -0.25 to 0.25 | neutral | Factual, balanced reporting |
| -1.0 to -0.25 | negative | Critical, pessimistic coverage |
Run summary is saved to the Key-Value Store under the OUTPUT key and includes aggregate sentiment per query, source breakdown, daily time-series, trending topics, and top entities across all articles.
Tips and Advanced Usage
Optimizing queries for better results:
- Use full company names for better coverage (
"Apple Inc"over"AAPL") - Add context to narrow results (
"Apple iPhone sales"not just"Apple") - For financial sentiment, include the word "stock" or "earnings" to surface financial coverage
- Multi-word phrases in quotes work:
"interest rate decision"
Interpreting sentiment scores:
- A score of 0.0 does not mean no coverage — it means balanced coverage
- High magnitude with neutral score = emotional but balanced article (common in financial news)
- Low confidence scores indicate short articles with few sentiment-bearing words — treat with caution
Scheduling for continuous monitoring:
- Set up a scheduled run with
dateRange: "1d"to run daily - Export results to Google Sheets via Apify integrations for trending charts
- Combine with Apify webhooks to trigger Slack alerts when sentiment drops below a threshold
Exporting data:
- Use the Apify dataset API to export as JSON, CSV, or Excel
- Connect to Google Sheets, Airtable, or BI tools via Zapier/Make integrations
- Use
groupByDate: truefor time-series data ready for charting
Pricing
This actor uses Pay-Per-Event pricing at $6.50 per 1,000 articles analyzed. You are charged only for articles that are successfully scraped, meet the minimum length requirement, and receive a sentiment score. Failed fetches, paywalled articles with no text, and skipped short articles are never billed.
Pricing includes all platform compute costs — no hidden fees.
| Scenario | Articles | Estimated Cost |
|---|---|---|
| Single topic check | 50 | ~$0.33 |
| Weekly brand monitoring | 200 | ~$1.30 |
| Daily monitoring, 30 days | 1,500 | ~$9.75 |
| Multi-brand analysis (5 brands) | 500 | ~$3.25 |
| Enterprise monitoring (10 brands/day) | 15,000/mo | ~$97.50/mo |
Why this pricing wins: AWS Comprehend charges $1.00/1K for NLP alone — you still need to build and pay for the scraping layer. Our actor includes scraping, NLP, entity extraction, topic clustering, and aggregate analysis at $6.50/1K total.
FAQ
Does it detect sarcasm or irony?
The AFINN lexicon uses word-level scoring and does not reliably detect sarcasm or irony. Sarcastic articles may score incorrectly. The confidence field is lower for articles with mixed sentiment signals, which can help identify ambiguous cases. For high-stakes analysis, we recommend manual review of low-confidence results.
Can I analyze non-English news?
The actor fetches news filtered by language code (language parameter). However, the AFINN sentiment model is English-optimized. Non-English articles will receive a sentiment score, but accuracy will be lower. For accurate non-English sentiment, filter to language: "en" or use a language-specific model.
How does it handle paywalled articles?
When a paywall is detected, the actor analyzes the available text (headline + snippet visible before the paywall) with a lower confidence score. The result includes "PAYWALL_DETECTED" in the errors array so you can filter these out if needed.
What news sources does it scrape?
By default: Google News RSS and Bing News RSS. Additionally supported: Yahoo News, Reuters Top News, and Associated Press Top News. Google News and Bing News aggregate from thousands of publications worldwide. Reuters and AP provide authoritative wire service coverage.
Can I use it for stock market sentiment analysis?
Yes — this is one of the most popular use cases. Search for ticker symbols ("TSLA", "NVDA") or company names plus financial terms ("Tesla earnings", "Nvidia AI chips"). The aggregate sentiment score and time-series output are useful inputs for quantitative models. Note: this actor does not access financial data feeds or price data — it analyzes news coverage only.
How often should I schedule runs for monitoring?
For active monitoring: daily runs with dateRange: "1d" give fresh daily sentiment. For trends: weekly runs with dateRange: "7d". For archival analysis: monthly runs with dateRange: "30d".
Does it store or share the articles it scrapes?
No. Article text is processed in-memory and only stored in your Apify dataset if you enable includeArticleText: true. All NLP runs locally — article text is never sent to external services.
Can I add custom news sources?
The sources parameter accepts the predefined source list. Custom RSS feed URLs are not currently supported. If you need a specific publication, use Google News or Bing News which aggregate from thousands of sources — most major publications are included automatically.
Related actors: Google News Scraper · Hacker News Scraper · Reddit Scraper