# News Intelligence Scraper — AI Agent Real-Time News API (`logiover/news-intelligence-scraper`) Actor

Multi-source real-time news aggregator for AI agents: Google News, Bing News and DuckDuckGo News merged, deduplicated, source-ranked and sentiment-scored. One topic or company to clean structured news feed. No API key, no browser.

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

## Pricing

from $3.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

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

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

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

# README

## News Intelligence Scraper — Real-Time Multi-Source News API for AI Agents (No API Key)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify\&logoColor=white) ![No API key](https://img.shields.io/badge/No%20API%20key-required-2ea44f) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![News & AI Intel](https://img.shields.io/badge/Category-News%20%26%20AI%20Intel-8B5CF6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)

Drop in a **topic, keyword or company name** and get back a clean, **deduplicated, sentiment-scored** news feed merged from **Google News, Bing News and DuckDuckGo News** in a single Apify run. Every article arrives as a flat record with **headline, URL, snippet, source outlet, source domain, publish date, sentiment score & label, and a duplicate count** — the real-time **grounding layer for AI agents**, brand-monitoring bots and RAG pipelines that must cite *current* sources instead of stale training data. **Fast, no browser, no API key, no per-source scrapers to maintain.**

> ### 🏆 Why this news scraper?
>
> **15 fields per article** · **up to 2,000 deduplicated items per query, many queries per run** · 3 news sources merged & cross-deduplicated in one call · lexicon sentiment (`-1..+1`) with no ML deps · direct HTTP + RSS (no browser, no key) · export to JSON / CSV / Excel. The multi-source **news API alternative** for monitoring, market intelligence and agentic grounding.

***

### ✨ What this Actor does / Key features

- 🌐 **Three sources, one query** — Google News, Bing News and DuckDuckGo News RSS feeds are fanned out per query and merged. Pick any subset.
- 🔀 **Cross-source deduplication** — exact key dedup (`source-domain` + normalized title) **plus** fuzzy token-Jaccard title similarity (>0.72) collapses syndicated/wire copies across outlets into one row.
- 📈 **Sentiment scoring** — an AFINN-style lexicon (~250 weighted terms + negation handling) tags every headline+snippet with a normalized `-1..+1` `sentimentScore` and a `positive`/`negative`/`neutral` label. Fast, no ML dependencies.
- 🏷️ **Full source attribution** — each item carries the outlet `source`, the `sourceDomain`, the list of feeds (`sourceFeeds`) that surfaced it, and a `duplicateCount` showing how many raw copies were merged (a syndication signal).
- 📅 **Time filtering** — `daysBack` keeps only items published within a rolling window; results are sorted newest-first.
- 🌍 **Localization** — Google News `hl`/`gl` params for language + country targeting (`en-US`, `tr-TR`, `de-DE`, `fr-FR`, …).
- 🏢 **Company mode** — pass a company name or domain to track brand news specifically.
- 📚 **Bulk mode** — feed dozens of topics and get one merged feed per topic in a single run, each tagged with its originating `query`.
- 🤖 **AI-agent-friendly schema** — predictable flat fields, ISO dates, nullable values, per-item attribution — drop straight into a prompt or a vector store.
- ⚡ **No keys, no browser** — pure HTTP + RSS parsing on a small Node 20 container. Cheap, fast, resilient. Empty results (no matches) are free.

### 🚀 Quick start (3 steps)

1. **Configure** — pick a `mode` (`topic`, `company` or `bulk`), type your `query` (or `queries` for bulk), and optionally set `sources`, `daysBack` and `sentiment`.
2. **Run** — click **Start**. The Actor fetches every source in parallel, merges, deduplicates, scores sentiment and streams articles into your dataset.
3. **Get your data** — open the **Output** tab and export to **JSON, CSV, Excel or XML**, or pull it via the Apify API.

### 📥 Input

The only required field is `mode`. Use `query` for `topic`/`company` modes and `queries` for `bulk` mode.

#### Example — aggregate news for one topic

```json
{
  "mode": "topic",
  "query": "openai",
  "sources": ["googleNews", "bingNews", "duckduckgoNews"],
  "maxPerSource": 50,
  "maxResults": 100,
  "daysBack": 7,
  "sentiment": true
}
```

#### Example — track a company's news (brand monitoring)

```json
{
  "mode": "company",
  "query": "stripe.com",
  "daysBack": 30,
  "maxResults": 200
}
```

#### Example — bulk watchlist, many topics in one run

```json
{
  "mode": "bulk",
  "queries": ["openai", "anthropic", "mistral ai", "electric vehicles", "AI regulation"],
  "daysBack": 7,
  "maxResults": 40
}
```

| Field | Type | Description |
|-------|------|-------------|
| `mode` | string | `topic` (one topic/keyword), `company` (company news by name or domain), or `bulk` (many topics). **Required.** |
| `query` | string | Free-text topic/keyword/company for `topic` & `company` modes. Quoted phrases are respected. |
| `queries` | array | Array of topics/keywords for `bulk` mode. |
| `sources` | array | Which feeds to aggregate: `googleNews`, `bingNews`, `duckduckgoNews`. More sources = more coverage + dedup benefit. |
| `maxPerSource` | integer | Cap pulled from each source per query (1–200). Default 50. |
| `maxResults` | integer | Final cap on deduplicated items saved per query (1–2000). Default 200. |
| `daysBack` | integer | Keep only items published within N days (0–365). `0` = no time filter. Default 30. |
| `language` | string | Google News `hl` (BCP-47), e.g. `en-US`, `tr-TR`, `de-DE`. |
| `country` | string | Google News `gl` (ISO 3166-1 alpha-2), e.g. `US`, `GB`, `DE`. |
| `dedup` | boolean | Merge near-duplicate articles across sources (URL + title similarity). Recommended. |
| `sentiment` | boolean | Run lexicon sentiment on each title+snippet. Cheap, no ML deps. |
| `useApifyProxy` | boolean | Route through the Apify datacenter proxy to avoid per-IP rate limits on news RSS. Recommended. |

> **Tip:** Using all three sources makes the result strictly better up to your `maxResults`, because the dedup step folds overlap away and the `duplicateCount` field tells you how widely each story was syndicated. Set `daysBack: 7` for dashboards, `30` for trend reports.

### 📤 Output

One row per deduplicated article — **15 fields**, exportable to JSON, CSV, Excel or XML. Here is a trimmed sample record:

```json
{
  "query": "openai",
  "title": "OpenAI announces new reasoning model",
  "url": "https://techcrunch.com/2026/07/01/openai-reasoning-model",
  "snippet": "The company said the new model improves on prior reasoning benchmarks while cutting latency… (first ~500 chars of the RSS description)",
  "source": "TechCrunch",
  "sourceDomain": "techcrunch.com",
  "sourceFeeds": ["googleNews", "bingNews"],
  "publishedAt": "Tue, 01 Jul 2026 14:30:00 GMT",
  "publishedDate": "2026-07-01",
  "language": "en-US",
  "sentimentScore": 0.42,
  "sentimentLabel": "positive",
  "imageUrl": "https://techcrunch.com/…/thumb.jpg",
  "duplicateCount": 3,
  "scrapedAt": "2026-07-02T12:00:00.000Z"
}
```

Use the **Overview** view to scan all items newest-first with sentiment and source, or the **By query** view to pivot on the originating topic.

<details>
<summary><b>📋 Full field reference (click to expand)</b></summary>

| Field | Description |
|-------|-------------|
| `query` | The topic/keyword/company this item was found for |
| `title` | Article headline |
| `url` | Link to the full article |
| `snippet` | Article summary (from the RSS `<description>`, HTML-stripped, first ~500 chars) |
| `source` | Outlet name (e.g. `TechCrunch`) |
| `sourceDomain` | Publisher domain (e.g. `techcrunch.com`) |
| `sourceFeeds` | Which feeds surfaced this item (`googleNews` / `bingNews` / `duckduckgoNews`) |
| `publishedAt` | Raw published timestamp string as provided by the feed |
| `publishedDate` | Normalized publish date (`YYYY-MM-DD`); may be null if the feed omits a date |
| `language` | Language/locale used for the query (e.g. `en-US`) |
| `sentimentScore` | Normalized sentiment, `-1..+1` |
| `sentimentLabel` | `positive` / `negative` / `neutral` |
| `imageUrl` | Article thumbnail URL, when the feed provides one |
| `duplicateCount` | How many raw copies (across sources/outlets) merged into this row |
| `scrapedAt` | Scrape timestamp (ISO 8601) |

</details>

### 🤖 Why AI agents need this

News is one of the highest-value grounding tasks for agentic systems: it's **time-sensitive** (yesterday's answer is wrong today), **fragmented** (no single source has everything), and **noisy** (the same story is republished dozens of times). An agent that browses one publisher gets a partial view; an agent that hits a single news API gets rate-limited or charged per call. This Actor solves all three at once — a single call returns a clean, deduplicated, sentiment-tagged table of articles ready for an LLM to read, summarize or cite.

### 💡 Use cases

- **Brand & reputation monitoring** — watch a company name across three feeds, deduplicate syndications, and surface the sentiment trend over 30 days.
- **Market intelligence** — query a basket of industry keywords weekly and build a sentiment-weighted news index.
- **Event grounding** — answer *"why did X move?"* by pulling this week's deduped news for the company, sorted by sentiment, and summarizing the negative cluster.
- **Competitor tracking** — monitor competitor names and surface only genuinely new items — dedup kills the wire echo chamber.
- **RAG freshness** — embed the latest N items per topic into a vector store so answers cite current events, not stale training data.
- **Crisis detection** — run hourly on a watchlist and alert when the negative-sentiment item count crosses a threshold.

### 👥 Who uses it

AI-agent and RAG builders needing a real-time grounding layer · comms & PR teams running brand-monitoring dashboards · market-intelligence and equity-research analysts · GTM/competitive-intelligence teams tracking rivals · data teams building news datasets and sentiment indices.

### 💰 Pricing

This Actor runs on a simple **pay-per-result** model — one charge per saved (deduplicated) news item, with no separate Apify platform fees to calculate. Runs that yield zero items (no matches) are free. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Is it legal to scrape news this way?**
This Actor reads **publicly available RSS feeds** from Google News, Bing News and DuckDuckGo News. It does not authenticate, bypass access controls, or scrape behind paywalls. News content is owned by the respective publishers; respect their Terms of Service and use the data for monitoring, research and AI-agent grounding.

**Do these news services have a public API? Is this an API alternative?**
There is no single unified, free public news API that merges Google, Bing and DuckDuckGo and deduplicates across them. This Actor works as that **multi-source news API alternative**: it reads each provider's public RSS, merges and cross-deduplicates the results, scores sentiment, and hands you one clean structured feed — no per-source API keys or client code to maintain.

**Do I need an API key or a login?**
No. There is **no news account, login or API key** required — only an Apify account.

**Can I get news without an API key or login?**
Yes. The Actor pulls public RSS feeds over direct HTTP, so no keys or accounts are needed on the news side.

**How much data can I get?**
Up to **2,000 deduplicated items per query**, with many queries per run in bulk mode. RSS feeds return recent items (typically the last few days to weeks depending on the source and query volume); `daysBack` filters within that window.

**How do I export the news data to CSV or JSON?**
Run the Actor, then export the resulting dataset as **CSV, JSON, Excel or XML** from the Apify console, or pull it via the Apify API.

#### Why three sources instead of just Google News?

Single-source news is biased and incomplete — different aggregators surface different outlets and rankings. Merging three and deduplicating gives broader coverage plus a `duplicateCount` signal (how widely a story was syndicated) that's itself useful.

#### How does deduplication work?

Two stages: (1) exact key dedup on `source-domain + normalized-title-prefix` catches the same article republished; (2) fuzzy token-Jaccard title similarity (>0.72) catches wire/syndicated stories phrased slightly differently across outlets. `duplicateCount` records how many raw copies merged.

#### Is the sentiment accurate?

It's a fast lexicon model (~250 weighted terms + negation), not a transformer. It's great for *trends and ranking* (e.g. "show me the most negative items") and less reliable on sarcasm or domain jargon. For production-grade sentiment, post-process the items with an LLM. The lexicon is English-centric, so treat labels as approximate for non-English queries (or disable `sentiment`).

#### Why do some items have no `publishedDate`?

Some feeds omit `<pubDate>`. Those items are kept (they may still be relevant) but sorted last; the raw `publishedAt` string is preserved when available.

#### Can I get the full article text?

This Actor returns title + snippet (the RSS `<description>`). For full article bodies, pass the `url` field into a content extractor like the [Website Text & Markdown Crawler](https://apify.com/logiover/website-text-markdown-crawler).

#### Can AI agents call this directly?

Yes — this is the primary design target. Expose it through an MCP server or Apify tool integration; the agent passes a topic and gets a clean JSON news feed back, no browsing or HTML parsing on the agent side.

### 🔗 More AI-intelligence & research scrapers by logiover

Building an agentic or competitive-intelligence pipeline? Pair this Actor with the rest of the AI-research suite:

| Actor | What it does |
|---|---|
| [Google News Scraper](https://apify.com/logiover/google-news-scraper) | Single-source Google News, deep |
| [Discussion Intelligence Scraper](https://apify.com/logiover/discussion-intelligence-scraper) | Reddit + HN + Product Hunt + Stack Exchange opinion |
| [Company Deep Research Scraper](https://apify.com/logiover/company-deep-research-scraper) | Full company dossier: tech stack, socials, contacts |
| [AI Deep Research](https://apify.com/logiover/ai-deep-research) | Autonomous multi-source research agent |
| [AI Web Search](https://apify.com/logiover/ai-web-search) | Structured web search results for agents |
| [AI Web Extract](https://apify.com/logiover/ai-web-extract) | Extract structured data from any page |
| [AI Citation Source Finder](https://apify.com/logiover/ai-citation-source-finder) | Find citable sources for AI-generated claims |
| [B2B AI Visibility Tracker](https://apify.com/logiover/b2b-ai-visibility-tracker) | Track how brands surface in AI answers |
| [CVE Security Advisory Monitor](https://apify.com/logiover/cve-security-advisory-monitor) | Fresh CVEs & security advisories |
| [arXiv Paper Scraper](https://apify.com/logiover/arxiv-paper-scraper) | Research paper metadata, abstracts & authors |
| [Semantic Scholar Research Scraper](https://apify.com/logiover/semantic-scholar-research-scraper) | Peer-reviewed papers, citations & influence |
| [GitHub Activity Stream](https://apify.com/logiover/github-activity-stream) | Real-time commits, releases & events |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

News changes hourly. Schedule this Actor on Apify to run every few hours over your watchlist and diff datasets to detect new items. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to build automated monitoring and alerting pipelines — or wrap it in an **MCP server** so AI agents can pull a fresh, deduplicated news feed straight into their context.

### ⭐ Support & feedback

Found a bug or need an extra field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏

### ⚖️ Legal

This Actor reads publicly available RSS feeds only. It does not authenticate, bypass access controls, or scrape behind paywalls. News content is owned by the respective publishers; respect their Terms of Service. Use for monitoring, research and AI-agent grounding on data that is already public, and comply with any applicable local laws.

***

### 📝 Changelog

#### 2026-07-06

- ✨ README overhaul: keyword-rich hero + badges, full 15-field output reference with a realistic sample, ready-to-run example scenarios, high-intent FAQ (legality, API alternative, no-key, CSV/JSON export, data volume), and cross-links to the wider AI-research scraper suite.

#### 2026-07-02 — v1.0

- Initial release.
- 3 modes: `topic`, `company`, `bulk`.
- 3 sources: Google News, Bing News, DuckDuckGo News (any subset).
- Two-stage dedup (exact key + fuzzy title Jaccard).
- Lexicon sentiment (`-1..+1`, positive/negative/neutral).
- Time filtering (`daysBack`), localization (`hl`/`gl`).
- Apify datacenter proxy default.
- Pay-per-result (`result` event per saved item).

# Actor input Schema

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

How to run.

• **topic** — aggregate news for one or many topics/keywords (highest volume)
• **company** — news about a specific company (by name or domain)
• **bulk** — batch many topics into one run, each producing a merged feed

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

Free-text query for **topic** or **company** mode, e.g. `openai`, `"electric vehicles"`, `AI regulation`. Quoted phrases are respected. Leave empty to get recent top-headline news on a default topic.

## `queries` (type: `array`):

Array of topics/keywords for **bulk** mode.

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

Which RSS feeds to aggregate. More sources = more coverage + dedup benefit. Empty = Google News + Bing News.

## `maxPerSource` (type: `integer`):

Cap pulled from each source per query. Higher = more coverage before dedup.

## `maxResults` (type: `integer`):

Final cap on deduplicated items saved per query.

## `daysBack` (type: `integer`):

Only keep items published within this many days. 0 = no time filter.

## `language` (type: `string`):

BCP-47 language for Google News, e.g. `en-US`, `tr-TR`, `de-DE`, `fr-FR`.

## `country` (type: `string`):

ISO 3166-1 alpha-2 country for Google News, e.g. `US`, `GB`, `DE`.

## `dedup` (type: `boolean`):

Merge near-duplicate articles across sources (URL + title similarity). Recommended.

## `sentiment` (type: `boolean`):

Run a lightweight lexicon sentiment score (-1..+1) on each title+snippet. Cheap, no ML deps.

## `useApifyProxy` (type: `boolean`):

Route through Apify datacenter proxy. Recommended to avoid per-IP rate limits on news RSS.

## Actor input object example

```json
{
  "mode": "topic",
  "query": "openai",
  "queries": [
    "openai",
    "anthropic"
  ],
  "sources": [
    "googleNews",
    "bingNews"
  ],
  "maxPerSource": 30,
  "maxResults": 60,
  "daysBack": 7,
  "language": "en-US",
  "country": "US",
  "dedup": true,
  "sentiment": true,
  "useApifyProxy": true
}
```

# Actor output Schema

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

Full dataset of merged, deduplicated, sentiment-scored news items.

# 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 = {
    "mode": "topic",
    "query": "openai",
    "queries": [
        "openai",
        "anthropic"
    ],
    "sources": [
        "googleNews",
        "bingNews"
    ],
    "maxPerSource": 30,
    "maxResults": 60,
    "daysBack": 7,
    "language": "en-US",
    "country": "US",
    "dedup": true,
    "sentiment": true,
    "useApifyProxy": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/news-intelligence-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 = {
    "mode": "topic",
    "query": "openai",
    "queries": [
        "openai",
        "anthropic",
    ],
    "sources": [
        "googleNews",
        "bingNews",
    ],
    "maxPerSource": 30,
    "maxResults": 60,
    "daysBack": 7,
    "language": "en-US",
    "country": "US",
    "dedup": True,
    "sentiment": True,
    "useApifyProxy": True,
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/news-intelligence-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 '{
  "mode": "topic",
  "query": "openai",
  "queries": [
    "openai",
    "anthropic"
  ],
  "sources": [
    "googleNews",
    "bingNews"
  ],
  "maxPerSource": 30,
  "maxResults": 60,
  "daysBack": 7,
  "language": "en-US",
  "country": "US",
  "dedup": true,
  "sentiment": true,
  "useApifyProxy": true
}' |
apify call logiover/news-intelligence-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/1JvAvjKMCtuwGOGpb/builds/rpfHaROYYSq5m9z3V/openapi.json
