# Google News Scraper | Beyond the 100-Article Cap, No Key (`themineworks/google-news`) Actor

Scrape Google News by keyword or topic: headline, article URL, source, publish date & snippet. No API key, no login, up to 1,000 results per run. Works in Claude, ChatGPT & any MCP AI agent for live news monitoring.

- **URL**: https://apify.com/themineworks/google-news.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** News, SEO tools, MCP servers
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 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?

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

## 📰 Google News Scraper: Articles, Sources & Topics

> **Part of the Social & Market Research MCP.** This actor's data is also available to AI agents through our [Social & Market Research MCP server](https://apify.com/themineworks/social-research-mcp), eight social, news and search-interest tools behind one endpoint. No result, no charge.

> 💰 $1.00 / 1,000 results.

> ⚡ 17 of 18 runs in the last 30 days succeeded, the other was cancelled by the user, none failed · no API key, no login.

> 💸 You're only charged for delivered results. Empty searches, failed pages and duplicate listings are never billed.

### Overview

Google News Scraper pulls fresh news articles from Google News by search query or by topic section. For every article you get the headline, article URL, publisher name, publish date, and a short snippet as clean structured JSON, CSV, or Excel. Use it to monitor a brand across thousands of publishers, track breaking stories on any keyword, or feed live headlines into an AI agent.

The official Google News API was retired years ago, and third-party news APIs cap results and charge per call. This actor runs on the open Google News RSS feed, so it is fast, cheap, and reliable: no API key, no login, no browser automation. A single RSS feed caps at roughly 100 items; the scraper fans out across recency windows to pull up to 1,000 articles per run.

Reliability posture: blocked, empty, or failed runs are never charged. You only pay for an article record that was actually delivered.

✅ No API key | ✅ No login | ✅ Up to 1,000 results per run | ✅ Pay only per article delivered | ✅ MCP-ready for AI agents

### Features

Search Google News by keyword (`"artificial intelligence"`, `"Tesla earnings"`) or by topic section (WORLD, BUSINESS, TECHNOLOGY, SPORTS, SCIENCE, HEALTH).
Localize with language (`hl`) and country (`gl`) codes for any Google News edition (US, GB, IN, AU, CA, DE, FR, and more).
Fan-out across recency windows to exceed the roughly 100-item single-feed cap and pull up to 1,000 articles per run.
Clean flat records: title, URL, source, publish date, snippet, plus the query or topic that returned each hit.
Pay per result actually delivered, with zero charge on empty runs.

### How it works

The actor queries the open Google News RSS feed (`news.google.com/rss/search`) with your search query or topic, along with the language and country codes you supply. To reach beyond the roughly 100-item single-feed cap, it fans out across successive recency windows and merges results, deduplicating by URL.

Every article is returned as a flat record with a small footprint, so runs are fast and cheap. Optional datacenter proxy is available if you want IP rotation for very large scheduled runs; the feed is otherwise open and works without a proxy.

### 🧾 Input configuration

Query mode:

```json
{
  "query": "artificial intelligence",
  "language": "en-US",
  "country": "US",
  "maxResults": 100
}
```

Topic mode:

```json
{
  "topic": "TECHNOLOGY",
  "language": "en-US",
  "country": "US",
  "maxResults": 50
}
```

### 📤 Output format

```json
{
  "title": "World leaders, Nobel laureates, AI experts to gather at Borgo Laudato si'",
  "url": "https://news.google.com/rss/articles/CBMiugFBVV95cUxQQWtOVThVVUFfQjdweXBIWUNtaTZweFNaNl9wc0M3SnoxVGVkcmUtdU1HYTR1Z0tJdlFscmxEVG9zVHA3RXM5MUpVdDhZbkJMeVRWeFFQMmN2R0lkVHhXcjYzenFCNUxWcW1sMXhHZUNIVXAtbWtZV2NwMFpmNGY0MlRYYmdDOHFSMmFCU3pkb2tWRVBUTDY5MlhmWndSSmxIa1plOEhsdDZ4cUZVNzdlcEpoVnZONmtpVHc?oc=5",
  "source": "Vatican News",
  "published_at": "Wed, 15 Jul 2026 04:00:34 GMT",
  "snippet": "World leaders, Nobel laureates, AI experts to gather at Borgo Laudato si' Vatican News",
  "query": "artificial intelligence",
  "scraped_at": "2026-07-15T04:14:30.448Z"
}
```

Every article record contains these fields:

| Field | Description |
| --- | --- |
| 📰 `title` | Article headline |
| 🔗 `url` | Article URL. Google News serves this as a redirect link to the publisher's article rather than the bare publisher domain |
| 🏢 `source` | Publisher name |
| 🗓️ `published_at` | Publish date (RFC 2822 from the RSS feed) |
| ✏️ `snippet` | Short preview text |
| 🏷️ `topic` | Google News topic (when topic mode is used) |
| 🔍 `query` | Search query (when query mode is used) |
| 🕒 `scraped_at` | ISO 8601 timestamp of capture |

### 💼 Common use cases

**Brand and reputation monitoring**
Track every mention of your company or product across thousands of publishers.
Alert on spikes in coverage volume before they compound.

**Competitor and market intelligence**
Watch news flow around rivals, sectors, or emerging topics.
Cluster coverage by source and date to see which outlets drive a story.

**PR measurement**
Count coverage, sources, and timing after a launch or announcement.
Slice by country edition to measure international pickup.

**AI research and news agents**
Let a Claude or ChatGPT agent fetch and summarize the latest headlines on any subject.
Build training and research datasets of news coverage over time.

### 🚀 Getting started

1. Open the actor and enter a Search query (e.g. `artificial intelligence`, `Tesla earnings`), or leave blank and pick a Topic.
2. Set Language (`en-US`, `hi-IN`, `en-GB`) and Country (`US`, `IN`, `GB`) if you want a specific edition.
3. Set Max articles (up to 1,000).
4. Click Save & Start.
5. Download as JSON, CSV, or Excel, or pull via API or MCP.

### 💵 Pricing

Pay-per-event. The rate depends on your own Apify tier:

| Event | Apify tier | Price per article |
| --- | --- | --- |
| `article-scraped`, News article | `FREE` | $0.0025 |
|  | `BRONZE` | $0.002 |
|  | `SILVER` | $0.0018 |
|  | `GOLD` / `PLATINUM` / `DIAMOND` | $0.0015 |

`FREE`/`BRONZE`/`SILVER`/`GOLD`/`PLATINUM`/`DIAMOND` are Apify's own account tiers, which set your per-event rate. They are not a free-result allowance, every delivered record is charged at your tier's rate.

**$1.00 per 1,000 articles, the same rate on every Apify plan.** The charge fires only after an article has actually landed in your dataset, so queries that return nothing and failed runs are never billed.

### ⏰ Run it on a schedule

This is the actor most worth scheduling: a fixed brand or competitor query on a daily cadence turns into a standing news digest that nobody has to run by hand.

1. On this actor's page, click **⋯ → Schedule actor** (or Console → **Schedules → Create new**).
2. Pick a frequency, `@daily` suits brand and competitor monitoring; `@hourly` during a launch or an unfolding story.
3. Your saved input is reused on every run; each run appends to a named dataset.
4. Wire the dataset to Google Sheets, Slack, or a webhook via the actor's **Integrations** tab so new records reach you automatically.

### FAQ

**Do I need a Google News API key?**
No. There is no API key and no login. The actor uses the open Google News RSS feed.

**How many articles can I get per run?**
Up to 1,000. The scraper fans out across recency windows to exceed the roughly 100-item single-feed cap.

**Can I search by topic instead of a keyword?**
Yes. Use the Topic field with values like WORLD, BUSINESS, TECHNOLOGY, SPORTS, SCIENCE, or HEALTH.

**Can I localize to a specific country?**
Yes. Set the Country (`gl`) edition and Language (`hl`) codes (e.g. `IN` with `hi-IN` for Hindi India).

**How am I charged?**
Pay per article delivered, at $1.00 per 1,000 articles on every Apify plan. You pay only for articles actually returned.

**Is there a Google News API?**
Not any more. Google retired its official News API years ago, and commercial news APIs cap results and bill per call. This actor reads the open Google News RSS feed instead, so there is no key to obtain and no per-call quota.

**How do I monitor brand mentions in the news?**
Set `query` to your brand or product name, schedule the actor daily (see above), and route the dataset to Slack, Google Sheets, or a webhook from the Integrations tab. Each run appends to the same dataset, so you build a running coverage log rather than a one-off snapshot.

**Does it return the full article text?**
No. Google News RSS provides the headline, publisher, publish date, and a short snippet, plus the link to the article. Follow the `url` field if you need the full body, it resolves through to the publisher's own page.

### Use in Claude, ChatGPT & any MCP agent

```
https://mcp.apify.com/?tools=themineworks/google-news
```

Or call it programmatically with the Apify client:

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

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

const run = await client.actor('themineworks/google-news').call({
  query: 'artificial intelligence',
  language: 'en-US',
  country: 'US',
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### 🛠️ Complete your media intelligence pipeline

News is one signal. Layer in trends and social:

- **[Google Trends Scraper Pro](https://apify.com/themineworks/google-trends-pro)**: search-interest curves for any keyword and geography.
- **[Threads Scraper](https://apify.com/themineworks/threads-scraper)**: public Meta Threads posts by profile, hashtag, or search.
- **[Twitter / X Scraper](https://apify.com/themineworks/twitter-x-scraper)**: tweets by keyword or handle without a paid API key.

Typical flow: pull news coverage for a brand or topic, cross-check on Threads and X for social pickup, and validate the interest curve with Google Trends.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.

# Actor input Schema

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

Keywords to search Google News for (e.g. "artificial intelligence", "Tesla earnings", "climate policy"). Supports Google News operators like quotes for exact phrases. Leave blank if using a topic instead.

## `topic` (type: `string`):

Fetch a Google News topic section instead of (or alongside) a search, e.g. TECHNOLOGY or BUSINESS. One of: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH. Leave blank to use the search query.

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

Interface language code, e.g. en-US, en-GB, es-ES, fr-FR, de-DE, hi-IN.

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

Edition / country code, e.g. US, GB, IN, AU, CA, DE, FR.

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

Maximum number of articles to return. A single Google News feed caps at ~100; the scraper fans out across recency windows to exceed that.

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

Optional. The Google News RSS feed is open and works without a proxy. Enable a DATACENTER proxy only if you want IP rotation across many runs.

## Actor input object example

```json
{
  "query": "artificial intelligence",
  "topic": "TECHNOLOGY",
  "language": "en-US",
  "country": "US",
  "maxResults": 25,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "query": "artificial intelligence",
    "topic": "TECHNOLOGY",
    "language": "en-US",
    "country": "US",
    "maxResults": 25,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/google-news").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 = {
    "query": "artificial intelligence",
    "topic": "TECHNOLOGY",
    "language": "en-US",
    "country": "US",
    "maxResults": 25,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/google-news").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 '{
  "query": "artificial intelligence",
  "topic": "TECHNOLOGY",
  "language": "en-US",
  "country": "US",
  "maxResults": 25,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call themineworks/google-news --silent --output-dataset

```

## MCP server setup

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

```

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/kBfZplefQeCmuBeYT/builds/aHg4loy0vOmWqOZU7/openapi.json
