# Google News Scraper & API – Fast Bulk News & PR Monitor (`ramgoxxx/google-news-articles-rss-scraper`) Actor

Fast, cookieless Google News scraper & API ($0.70/1K articles). Extract headlines, publishers, timestamps & summaries by keyword, company, site: or topic across 50+ countries.

- **URL**: https://apify.com/ramgoxxx/google-news-articles-rss-scraper.md
- **Developed by:** [Antonio Ramos Gómez](https://apify.com/ramgoxxx) (community)
- **Categories:** Lead generation, Agents, Integrations
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.70 / 1,000 news articles

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Google News Scraper & API do?

**Google News Scraper & API** extracts real-time news headlines, publisher names, publisher domains, exact ISO-8601 UTC publication timestamps, cluster coverage counts, and clean plain-text summaries from [Google News](https://news.google.com/) across **50+ countries and languages** — without headless browser overhead, captchas, or paid NewsAPI subscriptions.

Use it as a fast, deterministic **Google News API alternative** and **MCP real-time news tool** for B2B sales trigger monitoring (*funding rounds, M\&A, leadership changes*), PR & brand mention tracking, financial/crypto sentiment pipelines, and AI agent grounding.

- **82% Cheaper Pay-Per-Event Pricing:** `$0.70 per 1,000 articles` (`$0.0007` per news article) vs `$4.00/1,000` on legacy scrapers. Platform compute is 100% free.
- **7,142 Free News Articles / Month:** Apify's `$5.00/month` free plan credit covers **7,142 deduplicated Google News articles every single month at `$0`**.
- **Advanced Search Operators + Official Topic Sections:** Combine custom boolean queries (`"Series A" OR "seed round"`, `site:reuters.com`, `"Nvidia" when:1d`) with official sections (`BUSINESS`, `TECHNOLOGY`, `FINANCE`, `SCIENCE`, `HEALTH`, `WORLD`) in one run.

***

### Why use this Google News API alternative?

Commercial news APIs (`NewsAPI.org`, `GNews`, `Perigon`) charge `$449+/month` for commercial/production usage or delay articles on free tiers by 24 hours. Headless browser scrapers take 30–60 seconds and burn heavy compute units. Querying Google News structured XML feeds directly returns **100 fresh articles per query in under 2 seconds**.

#### High-value B2B & AI workflows

1. **B2B Sales Trigger & Outbound Signal Monitoring (Clay, n8n, Make):** Track target accounts or industries for `"raised"`, `"Series A"`, `"expands to"`, `"appoints Chief"`, or `"acquisition"` in the last `24h` and trigger automated personalized outreach while the news is breaking.
2. **PR, Brand Reputation & Crisis Alerts:** Monitor mentions of your brand, executives, or competitors hourly (`timeWindow: "1h"` or `"24h"`) and route alerts straight to Slack, Microsoft Teams, or Discord.
3. **AI Agents & LLM Grounding via MCP (Claude, Cursor, ChatGPT):** Give your AI assistant live global news search across 50+ local editions (`US`, `GB`, `ES`, `DE`, `FR`, `BR`, `JP`, `IN`) before writing market briefs or equity research.
4. **Quantitative & Financial Sentiment Pipelines:** Collect timestamped coverage velocity (`relatedCoverageCount`) around public tickers, commodities, FX, and macro events.

***

### What data can Google News Scraper extract?

Every article is automatically deduplicated across queries by `articleGuid` and normalized into clean JSON:

| Field Name | Type | Description |
| :--- | :--- | :--- |
| `headline` | `string` | Clean article headline with trailing publisher suffix stripped. |
| `publisherName` | `string \| null` | Verified media outlet name (e.g., `Reuters`, `Bloomberg`, `TechCrunch`, `El País`). |
| `publisherUrl` | `string \| null` | Root website URL of the publishing outlet (`https://www.reuters.com`). |
| `publishedAt` | `string \| null` | Exact publication timestamp standardized to ISO-8601 UTC. |
| `googleNewsUrl` | `string` | Canonical Google News article redirect link. |
| `snippet` | `string \| null` | Clean HTML-stripped text summary of the story cluster. |
| `relatedCoverageCount` | `integer` | Number of related media outlets covering the same story cluster — instant virality signal. |
| `queryOrTopic` | `string` | Exact search query or `TOPIC:<SECTION>` that matched the article. |
| `country` | `string` | ISO-2 country edition (`US`, `GB`, `ES`, `DE`, `FR`, `BR`, `MX`, etc.). |
| `language` | `string` | ISO-2 language code (`en`, `es`, `de`, `fr`, `pt`, `it`). |
| `articleGuid` | `string` | Immutable Google News item GUID for zero-duplicate database ingestion. |

***

### How to scrape Google News in bulk (Step-by-Step)

1. Click **Try for free** to open **Google News Scraper & API** in Apify Console.
2. Enter one or multiple keywords, company names, or Google operators in **Search Queries** (`searchQueries`, e.g., `["OpenAI", "\"Series A\" cybersecurity", "site:techcrunch.com AI"]`).
3. *(Optional)* Add **Official Google News Topic Sections** (`topics`: `BUSINESS`, `TECHNOLOGY`, `SCIENCE`, `HEALTH`, `WORLD`, `NATION`, `SPORTS`, `ENTERTAINMENT`).
4. Select **Recency Filter** (`timeWindow`: `1h`, `24h`, `7d`, `30d`, `1y`, or `any`).
5. Choose your **Edition Country** (`US`, `ES`, `GB`, `DE`, etc.) and **Language** (`en`, `es`, `de`, etc.), then click **Start**.

***

### How much does it cost to scrape Google News?

Priced on **Pay-Per-Event (`$0.70 / 1,000` articles)** with **zero compute surcharges**:

| Articles Extracted | Total Cost | Covered by Apify `$5/mo` Free Credit? |
| :--- | :--- | :---: |
| **100 articles** (daily briefing) | **`$0.07`** | Yes (`$0`) |
| **1,000 articles** (PR / ticker audit) | **`$0.70`** | Yes (`$0`) |
| **7,142 articles / month** | **`$5.00`** | **100% Free every month** |
| **50,000 articles** | **`$35.00`** | Over 90% cheaper than enterprise News APIs |

***

### Use with AI Assistants & MCP (Claude, Cursor, VS Code, ChatGPT)

Connect real-time Google News monitoring directly to **Claude Desktop**, **Cursor**, **Windsurf**, or **VS Code** via Apify's remote MCP endpoint:

```json
{
  "mcpServers": {
    "google-news-live": {
      "url": "https://mcp.apify.com/?actors=ramgoxxx/google-news-articles-rss-scraper",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_API_TOKEN"
      }
    }
  }
}
```

Ask your AI assistant:

- *"Fetch the last 24 hours of Google News coverage on `Stripe` and `Adyen` and summarize major partnership announcements."*
- *"Pull top `BUSINESS` and `TECHNOLOGY` headlines in `ES` (`es`) from today."*

***

### Input examples

#### Example 1: B2B Startup Funding Signal Monitor (Last 24 Hours)

```json
{
  "searchQueries": [
    "\"raises\" \"Series A\" SaaS",
    "\"seed round\" AI startup"
  ],
  "topics": [],
  "timeWindow": "24h",
  "country": "US",
  "language": "en",
  "maxItemsPerQuery": 50
}
```

#### Example 2: Spanish Market & Tech Headlines (`ES`)

```json
{
  "searchQueries": ["inteligencia artificial empresas"],
  "topics": ["BUSINESS", "TECHNOLOGY"],
  "timeWindow": "7d",
  "country": "ES",
  "language": "es",
  "maxItemsPerQuery": 50
}
```

***

### Output example

Download datasets in **JSON, CSV, Excel, XML, or HTML**:

```json
[
  {
    "headline": "AI infrastructure startup raises $45M Series B to cut inference costs",
    "publisherName": "TechCrunch",
    "publisherUrl": "https://techcrunch.com",
    "publishedAt": "2026-11-02T09:30:00+00:00",
    "googleNewsUrl": "https://news.google.com/rss/articles/CBMi...",
    "snippet": "AI infrastructure startup raises $45M Series B to cut inference costs TechCrunch ...",
    "relatedCoverageCount": 4,
    "queryOrTopic": "artificial intelligence startup",
    "country": "US",
    "language": "en",
    "articleGuid": "CBMiZ2h0dHBzOi8vdGVjaGNydW5jaC5jb20v..."
  }
]
```

***

### Automate with Python, n8n, Make & Clay

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("ramgoxxx/google-news-articles-rss-scraper").call(
    run_input={
        "searchQueries": ["Nvidia", "AMD"],
        "timeWindow": "24h",
        "country": "US",
        "language": "en",
        "maxItemsPerQuery": 50,
    }
)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["publishedAt"], f"[{item['publisherName']}]", item["headline"])
```

#### cURL / n8n HTTP Request

```bash
curl -X POST "https://api.apify.com/v2/acts/ramgoxxx~google-news-articles-rss-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["fintech acquisition"],"timeWindow":"24h","country":"US","language":"en","maxItemsPerQuery":30}'
```

***

### Frequently Asked Questions (FAQ)

#### Which Google Search operators work inside `searchQueries`?

All standard Google News operators work natively: exact quotes (`"Series A"`), boolean `OR` / `-exclude`, domain filters (`site:bloomberg.com` or `site:ft.com`), title filters (`intitle:acquisition`), and custom `when:2h` / `after:2026-10-01` date filters.

#### How do I prevent duplicate news alerts across hourly runs?

Store `articleGuid` in your database, Airtable, or n8n static data — each story cluster has a stable unique identifier.

#### Legal, GDPR & Ethical Notice

> Our Actors are ethical and do not extract any private user data, such as personal email addresses, gender, or private location. They only aggregate public news headlines, publisher attributions, and links openly syndicated via Google News in compliance with GDPR and international data regulations. Report issues or feature requests anytime in the **Issues** tab.

# Actor input Schema

## `searchQueries` (type: `array`):

List of Google News search queries, brand names, tickers, or advanced operators (e.g. 'OpenAI', 'Stripe funding', 'site:reuters.com AI').

## `topics` (type: `array`):

Optional top-headline sections: BUSINESS, TECHNOLOGY, SCIENCE, HEALTH, WORLD, NATION, SPORTS, ENTERTAINMENT.

## `timeWindow` (type: `string`):

Filter news articles published within a recent time window.

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

2-letter country edition (US, GB, ES, DE, FR, IT, BR, MX, CA, AU, IN, SG, JP).

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

2-letter language code (en, es, de, fr, it, pt).

## `maxItemsPerQuery` (type: `integer`):

Maximum articles to return per search query or topic (up to 100 per feed).

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

Optional automatic Apify Proxy fallback.

## Actor input object example

```json
{
  "searchQueries": [
    "artificial intelligence startup"
  ],
  "topics": [],
  "timeWindow": "7d",
  "country": "US",
  "language": "en",
  "maxItemsPerQuery": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `articles` (type: `string`):

Structured headlines, publishers, ISO timestamps, summaries, and links.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ramgoxxx/google-news-articles-rss-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("ramgoxxx/google-news-articles-rss-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call ramgoxxx/google-news-articles-rss-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ramgoxxx/google-news-articles-rss-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Sj32Yp5W4daLwgwqK/builds/fkUkvmYbNInzWTC2g/openapi.json
