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

Scrape Google News by keyword, topic or section in any language and country: headlines, publishers, publication dates, article links and related coverage from other outlets. Google News search operators work. No login, no API key, no proxy.

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

## Pricing

from $2.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/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

![banner](https://anyx.solutions/banners/google-news-scraper.png)

## Google News Scraper

**Google News headlines for any keyword, topic or section — with publishers, publication dates and related coverage — as clean JSON.**

Google News gathers stories from thousands of publishers in every language. This Actor turns any
Google News search, topic or headlines section into structured data: the headline, the publisher
and its website, the publication date, the Google News link, and the other outlets covering the
same story. Search with plain keywords or with Google News operators such as `when:7d` and
`site:reuters.com`, or paste a Google News page URL, in any language and country edition. There is
no login, no API key, and no proxy to configure. Built for media monitoring, PR and brand tracking,
market and competitor research, news datasets, and alerting pipelines.

### ⚡ Quick start

```json
{
  "searchTerms": ["openai"],
  "maxItems": 5
}
```

### 🧩 Input

| Field                | Type    | Required | Default                      | Description                                                                                                                                                                                       |
| -------------------- | ------- | -------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `searchTerms`        | array   | no       | —                            | Keywords to search Google News for, one search each. Google News operators work: `when:7d`, `site:reuters.com`, `after:2026-09-01`, `before:2026-09-30`, quotes and `OR`.                         |
| `startUrls`          | array   | no       | —                            | Google News URLs: a search (`news.google.com/search?q=…`), a topic (`news.google.com/topics/<id>`), a headlines section, or the Top stories page (`news.google.com`). Each keeps its own edition. |
| `maxItems`           | integer | no       | —                            | Maximum number of articles per search term or URL. The input form starts at 5; leave it empty to get every article Google lists (up to about 100).                                                |
| `language`           | string  | no       | `en-US`                      | Edition language for search terms, e.g. `en-US`, `en-GB`, `de`, `fr`, `es-419`, `pt-BR`.                                                                                                          |
| `country`            | string  | no       | `US`                         | Two-letter edition country for search terms, e.g. `US`, `GB`, `DE`, `FR`, `MX`, `BR`.                                                                                                             |
| `proxyConfiguration` | object  | no       | `{ "useApifyProxy": false }` | Proxy settings. Google News needs no proxy.                                                                                                                                                       |

Add at least one search term or URL. **Finding a topic URL:** open
[news.google.com](https://news.google.com/), click a topic such as Technology, Business or a
followed subject, and copy the address bar. **Choosing an edition:** Google News editions pair a
language with a country (English–US, German–Germany, Spanish–Mexico). When a pair does not exist,
Google serves the closest edition; the `language` and `country` fields on each article show which
one you got.

### 📤 Output

Each article is one dataset row, in the order Google News lists it.

#### Fields

| Field             | Type   | Description                                                                                                       |
| ----------------- | ------ | ----------------------------------------------------------------------------------------------------------------- |
| `position`        | number | Rank of the article in its search or feed, starting at 1.                                                         |
| `title`           | string | Headline, without the trailing publisher name.                                                                    |
| `publisher`       | string | Publisher name.                                                                                                   |
| `publisherUrl`    | string | Publisher's website.                                                                                              |
| `url`             | string | Google News link to the article; opening it takes you to the publisher's page.                                    |
| `guid`            | string | Google News article ID, stable across runs — use it to skip articles you already have.                            |
| `publishedAt`     | string | Publication date and time (ISO 8601, UTC).                                                                        |
| `descriptionText` | string | The article's summary as Google News shows it: one `headline - publisher` line per outlet covering the story.     |
| `relatedCoverage` | array  | Other outlets' articles on the same story: `title`, `publisher` and `url`. Empty when Google groups none with it. |
| `fullCoverageUrl` | string | Google News "Full coverage" page for the story, when Google offers one.                                           |
| `query`           | string | The search the article came from; `null` for topic, section and Top stories feeds.                                |
| `feedTitle`       | string | Title of the Google News search or feed, e.g. `Technology - Latest - Google News`.                                |
| `feedUrl`         | string | The Google News page the article was listed on.                                                                   |
| `language`        | string | Language of the Google News edition.                                                                              |
| `country`         | string | Country of the Google News edition.                                                                               |

<details><summary>Example output</summary>

```json
{
  "position": 1,
  "title": "OpenAI's latest blow to mathematicians: 'They have annihilated my field of research'",
  "publisher": "Le Monde.fr",
  "publisherUrl": "https://www.lemonde.fr",
  "url": "https://news.google.com/rss/articles/CBMi5AFBVV95cUxNaVl1TzdNYTVLUGZ4YXo5MFkydzZsSHJfd05mdTI3eWgwU0FIclBibTJTeWxNUFVBZmoxZ3RZSHJpal9JUWRFcXhVdnV1aTllS2g1WHNiaU15SkhvM19DWk9PcTJmMTQ2WWdULVoxcE1mYlZBOE8wcFZCRzY0amtSTzZydDlIMENDcW5OZ1NhTW9manNLc3g1UXFOSzlRV091RzNvc3FHelNuNk8xR2g3NlI3cl9iU2ttQjU1NWN4aWVCRjR0bEtYRHhYTVNxQ2EwYUNpMUxNd2VSa0RlSzFTejcwcTM?oc=5",
  "guid": "CBMi5AFBVV95cUxNaVl1TzdNYTVLUGZ4YXo5MFkydzZsSHJfd05mdTI3eWgwU0FIclBibTJTeWxNUFVBZmoxZ3RZSHJpal9JUWRFcXhVdnV1aTllS2g1WHNiaU15SkhvM19DWk9PcTJmMTQ2WWdULVoxcE1mYlZBOE8wcFZCRzY0amtSTzZydDlIMENDcW5OZ1NhTW9manNLc3g1UXFOSzlRV091RzNvc3FHelNuNk8xR2g3NlI3cl9iU2ttQjU1NWN4aWVCRjR0bEtYRHhYTVNxQ2EwYUNpMUxNd2VSa0RlSzFTejcwcTM",
  "publishedAt": "2026-10-11T23:18:55.000Z",
  "descriptionText": "OpenAI's latest blow to mathematicians: 'They have annihilated my field of research' - Le Monde.fr\n‘Breathtaking,’ ‘Devastating’: Mathematics Reels After New OpenAI Release - The New York Times\nA ‘Mathpocalypse’ is freaking out cyber and finance experts. Should you be worried? - Fortune",
  "relatedCoverage": [
    {
      "title": "‘Breathtaking,’ ‘Devastating’: Mathematics Reels After New OpenAI Release",
      "publisher": "The New York Times",
      "url": "https://news.google.com/rss/articles/CBMijgFBVV95cUxPODBqdjFtSkFGUTZYd2w1WlRnaWFfX3NiWDJ4OXgzdGozcV94WFV1T2JWY0lrekg2ZGR6Sk1wMGtNMzNDeXFmdnc2Zl9zTk0zMDhCLXMyYUFVSjRVNk1CTkF2Y2h2VF9HRVZvV2xfRkpiUTJsQUlNV0ZnaFBTWGxJUW5mbkVEdjVuQ25HMHV3?oc=5"
    },
    {
      "title": "A ‘Mathpocalypse’ is freaking out cyber and finance experts. Should you be worried?",
      "publisher": "Fortune",
      "url": "https://news.google.com/rss/articles/CBMibkFVX3lxTFBobVdqT0ZRcFFpak1UT1A5ejNOY3FIbERhNEhXUVFwdVgtRkE1YjZhN2pIUmtSbGVQSnJVeGdQRGlRU0w5UG5zV05saUpWN2ItY0NmY0VyNGdPZnNzZFY0RHl3WHNGQ040RzhhRTln?oc=5"
    }
  ],
  "fullCoverageUrl": null,
  "query": "openai",
  "feedTitle": "\"openai\" - Google News",
  "feedUrl": "https://news.google.com/search?q=openai&hl=en-US&gl=US&ceid=US%3Aen",
  "language": "en-US",
  "country": "US"
}
```

</details>

### 💡 Use cases

- **Media monitoring** — track every article that mentions your company, product or executives, in each market you care about.
- **PR and brand tracking** — measure coverage share against competitors and see which outlets pick up a story.
- **Market and investment research** — follow an industry, a ticker or a competitor through a topic feed or a dated search.
- **News datasets** — build headline datasets by topic, country or language for analysis and model training.
- **Alerts** — schedule a `when:1h` search and send new articles (by `guid`) to Slack, email or a webhook.

### ❓ FAQ

- **Do I need an API key or a Google account?** No. The Actor reads the same public Google News any reader sees.
- **Do I need a proxy?** No. It runs without one by default.
- **Does it return the publisher's own article URL?** Not directly. `url` is the Google News link to the article, which opens the publisher's page in any browser, and `publisherUrl` is the publisher's website. Google hides the final article address inside that link, and revealing it means opening every link in a browser, which would make runs far slower and costlier.
- **Does it return the article text or an image?** No. Google News lists headlines, publishers and dates; the full text lives on each publisher's site.
- **Why do I get at most about 100 articles per search?** That is how many Google News lists for one search or topic. For more, narrow the search into date windows with `after:` and `before:` (for example `openai after:2026-09-01 before:2026-09-08`), split it by `site:`, or add more search terms; `maxItems` applies to each one separately.
- **How do I get only recent news?** Add `when:1h`, `when:1d` or `when:7d` to a search term.
- **Why are some articles in another language?** A search returns what the edition you chose lists. Set `language` and `country` to the edition you want, or paste a URL from that edition.
- **Why did a run return fewer articles than expected?** The search may simply have few matches, or a topic or section in the URL may no longer exist; the log says when a feed is empty or not found. Open an issue if something looks off.

### 🔗 More scrapers by Anyx

- [Google Search Scraper](https://apify.com/anyxsolutions/google-search-scraper)
- [Bing Search Scraper](https://apify.com/anyxsolutions/bing-search-scraper)
- [Web Content Scraper](https://apify.com/anyxsolutions/web-content-scraper)
- [Reddit Scraper](https://apify.com/anyxsolutions/reddit-scraper)

### 🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.

- Email: tantosthor@gmail.com

### 🖼 Image credit

Image credit: [news.google.com](https://news.google.com/)

# Actor input Schema

## `searchTerms` (type: `array`):

Topics, names or keywords to search Google News for, one search per line, for example openai or "electric vehicles" when:7d. Google News operators work: when:7d, site:reuters.com, after:2026-09-01, before:2026-09-30, quotes and OR.

## `startUrls` (type: `array`):

Google News pages to scrape, such as a search (https://news.google.com/search?q=openai), a topic (https://news.google.com/topics/<id>), a headlines section, or the Top stories page (https://news.google.com/). A URL keeps its own language and country.

## `maxItems` (type: `integer`):

Maximum number of articles to return per search term or URL. Google News lists up to about 100 articles per search or topic; leave empty to get all of them.

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

Google News edition language for search terms, for example en-US, en-GB, de, fr, es-419 or pt-BR. URLs keep the language they carry.

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

Two-letter country code of the Google News edition for search terms, for example US, GB, DE, FR, MX or BR.

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

Proxy settings. Google News feeds need no proxy; add one only for very large runs.

## Actor input object example

```json
{
  "searchTerms": [
    "artificial intelligence"
  ],
  "startUrls": [
    {
      "url": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US%3Aen"
    }
  ],
  "maxItems": 5,
  "language": "en-US",
  "country": "US",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "searchTerms": [
        "artificial intelligence"
    ],
    "startUrls": [
        {
            "url": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US%3Aen"
        }
    ],
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("anyxsolutions/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 = {
    "searchTerms": ["artificial intelligence"],
    "startUrls": [{ "url": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US%3Aen" }],
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("anyxsolutions/google-news-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 '{
  "searchTerms": [
    "artificial intelligence"
  ],
  "startUrls": [
    {
      "url": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US%3Aen"
    }
  ],
  "maxItems": 5
}' |
apify call anyxsolutions/google-news-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anyxsolutions/google-news-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/pOXfZbRDxBYygWlbc/builds/713WQ15EdVpef0eqA/openapi.json
