# Google News Scraper (`fetch_cat/google-news-scraper`) Actor

Track Google News mentions by keyword, locale, and recency with clean article metadata.

- **URL**: https://apify.com/fetch\_cat/google-news-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** News, Marketing, SEO tools
- **Stats:** 3 total users, 2 monthly users, 97.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Google News Scraper

Google News Scraper tracks public Google News results by keyword, country, language, and recency, then exports article metadata to Apify datasets.

Use it for media monitoring, PR tracking, topic research, competitor mentions, and lightweight news alerts without building your own RSS parser.

### At a glance

- **Extracts:** article title, publisher, source URL when available, Google News URL, publication date, snippet text, GUID, locale, result position, and scrape time.
- **Inputs:** one or more Google News queries, country, language, optional CEID, recency filter, result limit, and deduplication toggle.
- **Best for:** brand monitoring, market coverage checks, topical alerts, research feeds, and scheduled media snapshots.
- **Exports:** Apify dataset rows that can be downloaded as CSV, JSON, Excel, or used from the API.
- **Login:** no Google account, cookies, or API key are required.

### Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

- **[Monitor Google News as an RSS Feed](https://apify.com/fetch_cat/google-news-scraper/examples/google-news-rss-monitoring-feed)**
- **[Cybersecurity startup news tracker](https://apify.com/fetch_cat/google-news-scraper/examples/cybersecurity-startup-google-news-tracker)**
- **[Electric vehicle battery news scraper](https://apify.com/fetch_cat/google-news-scraper/examples/electric-vehicle-battery-news-scraper)**
- **[AI regulation news monitor](https://apify.com/fetch_cat/google-news-scraper/examples/ai-regulation-google-news-monitor)**
- **[Google News Public Sector Policy Feed Monitor](https://apify.com/fetch_cat/google-news-scraper/examples/google-news-public-sector-policy-feed)**
- **[Google News Investor Relations Monitor Monitor](https://apify.com/fetch_cat/google-news-scraper/examples/google-news-investor-relations-monitor)**
- **[View all ready-to-run examples](https://apify.com/fetch_cat/google-news-scraper/examples)** (44 examples)

### What can it do?

- **Export Google News results:** Save article titles, publishers, snippets, dates, URLs, thumbnails, and query context.
- **Monitor mentions:** Track brands, people, products, industries, or competitors by keyword.
- **Control locale and recency:** Use country, language, CEID, and date-range filters for localized news monitoring.
- **Deduplicate coverage:** Avoid repeated rows when several queries find the same article.
- **Use as a Google News API workflow:** Run from API, schedules, webhooks, or MCP-compatible agents and export CSV/Excel/JSON.

### Common workflows

- **Monitor brand and executive mentions:** run a set of exact-match queries daily and export new article rows to a dashboard.
- **Track issue coverage:** combine topic terms with `when:7d`, `after:YYYY-MM-DD`, or quoted phrases to watch a specific news cycle.
- **Compare markets:** run the same query across different country and language settings.
- **Build a lightweight alert feed:** schedule the Actor and use Apify integrations or webhooks to send fresh rows to your stack.

### Input configuration

| Setting | JSON key | Description |
| --- | --- | --- |
| Queries | `queries` | Keywords or Google News query expressions. Supports Google News operators such as quoted phrases, `OR`, `when:7d`, `after:YYYY-MM-DD`, and `before:YYYY-MM-DD`. |
| Maximum articles per query | `maxItemsPerQuery` | Maximum rows to save for each query. The Actor caps this at 100 per query. |
| Date range query filter | `dateRange` | Optional filter appended to queries that do not already include a date operator, for example `when:7d`. |
| Country / edition | `country` | Google News country edition code such as `US`, `GB`, `DE`, `FR`, `IN`, or `CA`. |
| Language | `language` | Google News language or locale such as `en-US`, `en-GB`, `de-DE`, or `fr-FR`. |
| CEID override | `ceid` | Optional Google News edition identifier. Leave blank to derive it from country and language. |
| Remove duplicates | `dedupe` | Avoid saving the same article more than once across all queries in the run. |

### Example input

```json
{
  "queries": ["Apify", "\"artificial intelligence startup\""],
  "dateRange": "when:7d",
  "country": "US",
  "language": "en-US",
  "maxItemsPerQuery": 10,
  "dedupe": true
}
```

### Output fields

| Field | Description |
| --- | --- |
| `query` | Original query supplied for the result. |
| `title` | Article title from Google News. |
| `googleNewsUrl` | Google News result URL. |
| `sourceUrl` | Publisher source URL when present in the RSS source element. |
| `sourceName` | Publisher or source name when available. |
| `publishedAt` | Publication timestamp normalized to ISO format when available. |
| `descriptionHtml` | Raw RSS description HTML from Google News. |
| `descriptionText` | Plain-text snippet extracted from the RSS description. |
| `guid` | RSS GUID used for deduplication when available. |
| `language`, `country` | Locale settings used for the request. |
| `position` | One-based result position in the parsed feed. |
| `scrapedAt` | Timestamp when the row was scraped. |

### Example output

```json
{
  "query": "Apify",
  "title": "Example article title",
  "googleNewsUrl": "https://news.google.com/rss/articles/example",
  "sourceUrl": "https://example.com/news/article",
  "sourceName": "Example News",
  "publishedAt": "2026-07-03T08:00:00.000Z",
  "descriptionText": "Short article snippet from Google News.",
  "language": "en-US",
  "country": "US",
  "position": 1,
  "scrapedAt": "2026-07-03T09:00:00.000Z"
}
```

### Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

| Event | What is charged | Price |
| --- | --- | ---: |
| `start` | One-time fee per run | $0.005 |

| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `result` | Per Google News article saved to the dataset | $0.575 / 1,000 | $0.5 / 1,000 | $0.39 / 1,000 | $0.3 / 1,000 | $0.2 / 1,000 | $0.14 / 1,000 |

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

### Tips for best results

- **Use precise queries:** quoted names, product names, and `OR` groups usually work better than very broad terms.
- **Keep recency explicit:** use `dateRange` or include `when:7d`, `after:YYYY-MM-DD`, or `before:YYYY-MM-DD` in a query.
- **Localize intentionally:** country and language affect which Google News edition is queried.
- **Deduplicate across query sets:** keep `dedupe` enabled when overlapping terms may return the same article.

### Limits and caveats

- **Google News result pages change:** counts and ordering can shift between runs.
- **No full article extraction:** this Actor saves Google News RSS metadata and snippets, not full article text behind publisher pages.
- **Some source URLs can be absent:** Google News may provide only its own result URL for some items.
- **RSS availability varies by locale:** very narrow terms can return fewer rows than requested.

### API usage

Run from the Apify API or SDK with the same JSON keys shown above.

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/google-news-scraper').call({
  queries: ['Apify'],
  dateRange: 'when:7d',
  country: 'US',
  language: 'en-US',
  maxItemsPerQuery: 10
});
console.log(run.defaultDatasetId);
```

### MCP and AI agents

For AI agents, use the official Apify MCP server. The focused single-Actor URL is:

```text
https://mcp.apify.com?tools=fetch_cat/google-news-scraper
```

The default MCP server can search and run Actors. The focused URL exposes this Actor directly to clients that support tool-scoped MCP connections.

### FAQ

**Can I export results to CSV, Excel, JSON, or API?** Yes. Apify datasets support CSV, JSON, Excel, and API access after the run finishes.

**Does this require a Google account?** No. The Actor reads public Google News RSS search results.

**Can I schedule monitoring?** Yes. Use Apify schedules to run the same input hourly, daily, or weekly.

**Why did I get fewer articles than requested?** Google News may return fewer results for narrow queries, strict date ranges, or some locale combinations.

**Can this scrape full articles?** No. It returns Google News result metadata and snippets. Use a separate article or website scraper for full publisher-page content.

### Related actors

- [Google Play Apps Scraper](https://apify.com/fetch_cat/google-play-apps-scraper)
- [Google Play Reviews Scraper](https://apify.com/fetch_cat/google-play-reviews-scraper)
- [Google Scholar Profiles Scraper](https://apify.com/fetch_cat/google-scholar-profiles-scraper)
- [Google Ads Transparency Center Scraper](https://apify.com/fetch_cat/google-ads-transparency-scraper)

### Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

### Changelog

#### 0.1

- Initial version with configurable inputs and structured Google News results.

### Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses search/query inputs and public search, trend, app, patent, news, or profile results to produce the output dataset and sends requests to public Google News pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

# Actor input Schema

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

Keywords or Google News query expressions to monitor. You can use operators such as quoted phrases, OR, when:7d, after:YYYY-MM-DD, and before:YYYY-MM-DD.

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

Maximum number of Google News results to save for each query.

## `dateRange` (type: `string`):

Optional Google News date filter appended to queries that do not already include one, for example when:7d, when:30d, after:2026-01-01, or before:2026-02-01.

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

Google News country edition code, such as US, GB, DE, FR, IN, or CA.

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

Google News language code, such as en-US, en-GB, de-DE, fr-FR, or es-ES.

## `ceid` (type: `string`):

Optional Google News edition identifier. Leave blank to derive it from country and language, for example US:en.

## `dedupe` (type: `boolean`):

Avoid saving the same article more than once across all queries.

## Actor input object example

```json
{
  "queries": [
    "apify",
    "artificial intelligence startup"
  ],
  "maxItemsPerQuery": 20,
  "dateRange": "when:7d",
  "country": "US",
  "language": "en-US",
  "dedupe": true
}
```

# Actor output Schema

## `articles` (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 = {
    "queries": [
        "apify",
        "artificial intelligence startup"
    ],
    "dateRange": "when:7d",
    "country": "US",
    "language": "en-US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/google-news-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 = {
    "queries": [
        "apify",
        "artificial intelligence startup",
    ],
    "dateRange": "when:7d",
    "country": "US",
    "language": "en-US",
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/google-news-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 '{
  "queries": [
    "apify",
    "artificial intelligence startup"
  ],
  "dateRange": "when:7d",
  "country": "US",
  "language": "en-US"
}' |
apify call fetch_cat/google-news-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/kxbmf8oTKqXq9D3ZA/builds/mxslapZDrgtCvjybo/openapi.json
