# Google News Scraper: Real Article URLs & Full Text (`stratumics/google-news-scraper`) Actor

Get Google News articles with real publisher URLs (not Google redirects), source, date, image, author and optional full text. Search any query or topic in 80+ editions, past 100 results.

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

## Pricing

from $1.00 / 1,000 articles

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

### What does Google News Scraper do?

**Google News Scraper** collects news articles from [Google News](https://news.google.com) search results and topic sections and gives you the **real publisher URL** of every article, not the `news.google.com/rss/articles/...` redirect link that Google News feeds contain. Use it as a **Google News API** to get headlines, sources, publish dates, images, descriptions, authors and, if you want, the **full article text** for any keyword, website or topic, in 84 country and language editions of Google News.

It runs on plain HTTP requests, needs no Google account and no API key, and usually saves 100 articles in under 10 seconds.

### Why use this Google News scraper?

- 🔗 **Real article links included in the price.** Google News feeds only give redirect links. This Actor decodes each one into the publisher's URL (for example `https://www.reuters.com/...`) using the same lookup Google's own website uses. In our test runs 100% of links were decoded. If a link cannot be decoded, that article is free.
- 📈 **More than 100 results per search.** Google stops at about 100 articles per search. When you ask for more, the Actor searches one day at a time, newest day first, until it has as many as you asked for.
- 🖼️ **Image, description and author** for each article, read from the publisher's page at no extra charge.
- 📰 **Full article text on request**, extracted with a reader-mode parser. You pay for text only when text was actually found, so paywalled or blocked pages cost nothing extra.
- 🔎 **All Google News search operators work**: exact phrases in quotes, `OR`, `-exclude`, `site:`, `intitle:`, `when:7d`, `after:` and `before:`.
- 🌍 **84 editions** (country and language pairs) in a drop-down list, and any other edition Google supports as free text.
- ♻️ **No duplicates.** An article found by several queries is saved once, and repeat runs reuse links decoded before, so scheduled runs finish faster.

Typical uses: brand and competitor monitoring, PR and media tracking, market and financial news feeds, research datasets, and news input for AI agents and search pipelines. On Apify you can schedule runs, call the Actor through the API, and send results to Google Sheets, Slack or your database through integrations.

### What data can you extract from Google News?

| Field | Description |
| --- | --- |
| `title` | Headline, without the publisher name Google appends |
| `url` | Real article URL on the publisher's site |
| `googleNewsUrl` | Original Google News link |
| `source` / `sourceDomain` | Publisher name and domain, for example `Gizmodo` / `gizmodo.com` |
| `publishedAt` | Publish time in ISO 8601 (UTC) |
| `description` | Article summary from the publisher page |
| `imageUrl` | Main article image |
| `author` | Author names (e-mail addresses removed) |
| `articleText` / `wordCount` | Full article text and its length (with full text on) |
| `query` / `topic` | The search query or topic that found the article |
| `language` / `country` | The Google News edition, for example `en-US` / `US` |
| `articleId` | Google's stable article id, handy for removing duplicates between runs |
| `scrapedAt` | When the row was saved |

### How to scrape Google News

1. Open the Actor and type one or more **search queries**, one per line, or pick **topics** such as Business or Technology.
2. Choose the **country and language** (default: United States, English).
3. Set a **time range** such as past 24 hours or past week, or pick exact dates.
4. Set **max articles per query**. Up to 100 needs one Google search; more triggers the day-by-day search.
5. Turn on **full article text** if you need the body of each article.
6. Click **Start**, then download the results as JSON, CSV, Excel or HTML, or read them through the API.

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

The Actor uses pay per event pricing, so you pay for results, not for server time:

- **Article: $1.50 per 1,000 articles**, including the decoded publisher URL, image, description and author.
- **Full text: $2.00 per 1,000 articles**, charged on top only for articles where text was found.

Example: **1,000 articles with real URLs cost about $1.50.** The same 1,000 articles with full text cost at most $3.50, and less when some pages are paywalled. A small fee applies when a run starts. Apify's free plan includes $5 of monthly credit, enough for more than 3,000 articles a month. You can also set a maximum cost per run in the run options; the Actor stops cleanly when it reaches it.

Larger Apify plans pay less automatically: articles cost $1.20 per 1,000 on Scale and $1.00 on Business, full text $1.70 and $1.40.

### Input

See the Input tab for every option. A typical input:

```json
{
    "queries": ["electric vehicles", "site:reuters.com interest rates", "\"climate change\" when:7d"],
    "topics": ["BUSINESS"],
    "edition": "US:en",
    "timeRange": "7d",
    "maxArticlesPerQuery": 100,
    "fetchArticleText": false
}
```

A `when:`, `after:` or `before:` operator inside a query sets the time range for that query only. Dates follow Google News, which counts calendar days in US Pacific time. Topics list Google's latest 30 to 60 articles per section; the time range filters them but cannot reach further back.

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Two real rows from a search for `climate change` and one topic row with full text (text shortened here):

```json
[
    {
        "title": "Climate Change Is Accelerating Faster Than We Can Respond, Scientists Warn",
        "url": "https://time.com/article/2026/10/14/climate-change-accelerating-study/",
        "googleNewsUrl": "https://news.google.com/rss/articles/CBMiekFVX3lxTE9fOG15eFNPdkJQVEpieE1saXcwMGpYOXZRT1ZIWnMyRENuNHVOb3FacEUwVVlIR0RjR3hRd3VITzZjNE5ONzhvQmd5Z0swSXNYbzFlc1NVal92Vkl1STdGVFlwOTlxR0JGYzBKNWhwem5WRVBJTnVQZDJB?oc=5",
        "source": "Time Magazine",
        "sourceDomain": "time.com",
        "publishedAt": "2026-10-14T14:00:03.000Z",
        "description": "“Earth’s climate system is moving deeper into uncharted territory,” scientists warn.",
        "imageUrl": "https://static.time.com/v3/assets/bltea6093859af6183b/blt58f2e3bd7240951f/6acf8800c336f2d68fa27cde/state-climate.jpg?branch=production&width=1024&quality=75&auto=webp&crop=16:9",
        "author": "Simmone Shah",
        "articleText": null,
        "wordCount": null,
        "language": "en-US",
        "country": "US",
        "query": "climate change",
        "topic": null,
        "articleId": "CBMiekFVX3lxTE9fOG15eFNPdkJQVEpieE1saXcwMGpYOXZRT1ZIWnMyRENuNHVOb3FacEUwVVlIR0RjR3hRd3VITzZjNE5ONzhvQmd5Z0swSXNYbzFlc1NVal92Vkl1STdGVFlwOTlxR0JGYzBKNWhwem5WRVBJTnVQZDJB",
        "scrapedAt": "2026-10-17T23:36:40.455Z"
    },
    {
        "title": "Which Is the Most Underestimated Climate Threat in the US?",
        "url": "https://gizmodo.com/which-climate-threat-is-the-us-most-underestimating-2000826406",
        "source": "Gizmodo",
        "sourceDomain": "gizmodo.com",
        "publishedAt": "2026-10-17T15:00:46.000Z",
        "description": "The many consequences of climate change are already unfolding across the U.S., and some require more urgent attention.",
        "imageUrl": "https://gizmodo.com/app/uploads/2026/10/surf-spray-from-TS-rachel-1-1200x675.jpg",
        "author": "Ellyn Lapointe",
        "query": "climate change"
    },
    {
        "title": "World time to drop the leap second from May 2027",
        "url": "https://www.euronews.com/2026/10/16/global-timekeeping-rules-change-leap-second-scrapped-from-2027",
        "source": "Euronews.com",
        "sourceDomain": "euronews.com",
        "publishedAt": "2026-10-16T16:49:56.000Z",
        "author": "Nela Heidner",
        "articleText": "The world’s official time standard will stop adding leap seconds from 20 May 2027. The General Conference on Weights and Measures (CGPM) decided to end the practice on Thursday 15 October 2026.\n\nThe resolution was adopted at the conference’s 28th meeting in Versailles, where delegates discussed the future of world time. ...",
        "language": "en-GB",
        "country": "GB",
        "topic": "TECHNOLOGY"
    }
]
```

### Tips for scraping Google News

- **Monitor news on a schedule.** Run daily with time range `1d` (or hourly with `2h`) and use `articleId` to skip articles you already have.
- **Narrow busy searches.** If the log says a day hit Google's limit of about 100 articles, split the query (for example by `site:` or extra keywords) to collect more of that day.
- **Speed up large runs** by turning off image, description and author when you only need headlines and links.
- **Turn on Apify Proxy** (datacenter is enough) if many links stay undecoded or feeds fail. Without a proxy no proxy cost is added.

### Integrations and API

- **API:** start runs and read results with the [Apify API](https://docs.apify.com/api/v2), for example `POST https://api.apify.com/v2/acts/stratumics~google-news-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN` with the input as the JSON body.
- **JavaScript and Python:** use the official `apify-client` packages: `client.actor('stratumics/google-news-scraper').call(input)`, then read `client.dataset(run.defaultDatasetId).listItems()`.
- **No-code:** connect the Actor to Zapier, Make, n8n, Google Sheets, Slack or webhooks from the Integrations tab.
- **AI agents:** add the Apify MCP server (`https://mcp.apify.com?tools=stratumics/google-news-scraper`) to any assistant that supports the Model Context Protocol, and it can search Google News and read the articles itself.

### FAQ

#### Why do other Google News tools return news.google.com links?

Google News RSS feeds contain only redirect links. Turning them into publisher URLs takes an extra lookup per article on Google's side, which many tools skip or sell as an add-on. Here it is part of the article price.

#### Can I get more than 100 results from Google News?

Yes. Set `maxArticlesPerQuery` above 100 and the Actor searches day by day. Google still shows at most about 100 articles for one query on one day, so very busy topics need narrower queries for full coverage.

#### Why are some images, authors or texts missing?

Some publishers block automated visits (for example with a JavaScript challenge), and some articles are behind a paywall. The Google data (title, URL, source, date) is always there. Missing text is never charged.

#### What is the google-news-scraper-url-cache store in my account?

A small key-value store that remembers decoded links (hashed Google ids and public URLs) so your next runs finish faster. Turn it off with "Remember decoded links between runs", or delete the store at any time.

#### Is it legal to scrape Google News?

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

The only personal data this Actor collects is the author name printed on each article. Article text belongs to its publisher: use it for analysis and research, and check the publisher's terms before republishing it.

#### Where do I report a problem?

Open an issue on the Issues tab with your run link and we will look at it. For programmatic access, see the API tab.

### Other tools from this developer

### Other tools from Stratum ICS

- [App Store Reviews Scraper](https://apify.com/stratumics/app-store-reviews-scraper): Get Apple App Store reviews with star ratings, titles, text, app versions, helpful votes and developer replies, well past Apple's 500-review limit, for any country, plus app ratings.
- [Google Maps Scraper](https://apify.com/stratumics/google-maps-scraper): Get the businesses on Google Maps for any search and area: name, address, phone, website, rating, review count, opening hours, plus emails and social profiles.
- [Google Play Reviews Scraper](https://apify.com/stratumics/google-play-reviews-scraper): Get Google Play reviews with star ratings, text, app versions, thumbs-up counts, developer replies and feature ratings in any language, plus app details with installs and star histogram.
- [Google Trends Scraper](https://apify.com/stratumics/google-trends-scraper): Get Google Trends data as JSON, CSV or Excel: interest over time, interest by region and city, related queries, and trending searches by country.
- [LinkedIn Jobs Scraper](https://apify.com/stratumics/linkedin-jobs-scraper): Scrape LinkedIn jobs with full descriptions, salary ranges, seniority, job type and applicant counts.
- [Telegram Channel Scraper](https://apify.com/stratumics/telegram-channel-scraper): Get messages from public Telegram channels with views, dates, media, reactions, polls and forwards, plus channel info with exact subscriber counts.
- [Website Contact Scraper](https://apify.com/stratumics/website-contact-scraper): Turn a list of websites into one row per company with verified emails, formatted phone numbers, social profiles (LinkedIn, Facebook, Instagram, X), address and contact page.
- [YouTube Scraper](https://apify.com/stratumics/youtube-scraper): Get YouTube videos from searches, channels, playlists and links with exact views, likes, comment counts, dates and tags, plus channel profiles and comments.

# Actor input Schema

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

What to search for on Google News, one query per line. Google News operators work: "exact phrase", OR, -exclude, site:reuters.com, intitle:word, when:7d, after:2026-10-01, before:2026-10-08. Leave empty if you only want topics.

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

Google News topic sections to scrape as well as (or instead of) search queries. Google lists about 30 to 60 of the latest articles per topic and edition.

## `edition` (type: `string`):

Which Google News edition to read, written COUNTRY:language. Pick one from the list or type any edition Google News supports, for example DE:de or BR:pt-419.

## `timeRange` (type: `string`):

Only articles published within this period. Use any, or a number followed by h (hours), d (days) or y (years), for example 12h, 7d, 1y. Ignored when you set dates below. A when: operator inside a query overrides it for that query.

## `dateFrom` (type: `string`):

First day to include (YYYY-MM-DD). Optional. With only this date set, the range runs to today.

## `dateTo` (type: `string`):

Last day to include (YYYY-MM-DD). Optional. With only this date set, the range covers the year before it.

## `maxArticlesPerQuery` (type: `integer`):

Stop after this many articles for each query and each topic. Google returns about 100 articles per search; above 100 the Actor searches one day at a time, newest day first, until it has enough.

## `decodeUrls` (type: `boolean`):

Turn Google News redirect links into the real publisher URLs (for example https://www.reuters.com/...). Included in the article price. An article whose link cannot be decoded is free.

## `fetchArticleDetails` (type: `boolean`):

Open each publisher page to read its main image, description and author. No extra charge. Turn off for faster runs.

## `fetchArticleText` (type: `boolean`):

Extract the main text of each article from the publisher page (extra charge per article, only when text was found). Paywalled pages give little or no text and are not charged.

## `dedupeAcrossQueries` (type: `boolean`):

Save each article once even when several queries or topics find it. The first query that finds it is the one reported.

## `cacheDecodedUrls` (type: `boolean`):

Keep decoded links in a named key-value store in your account (google-news-scraper-url-cache) so repeat and scheduled runs finish faster. It holds only Google article ids (hashed) and public URLs.

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

Google News answers without a proxy in most cases. If many links stay undecoded or feeds fail, turn on Apify Proxy (datacenter is enough).

## Actor input object example

```json
{
  "queries": [
    "artificial intelligence",
    "site:reuters.com electric cars",
    "\"interest rates\" when:7d"
  ],
  "topics": [],
  "edition": "US:en",
  "timeRange": "any",
  "dateFrom": "",
  "dateTo": "",
  "maxArticlesPerQuery": 100,
  "decodeUrls": true,
  "fetchArticleDetails": true,
  "fetchArticleText": false,
  "dedupeAcrossQueries": true,
  "cacheDecodedUrls": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Dataset with one row per article.

# 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": [
        "artificial intelligence",
        "site:reuters.com electric cars",
        "\"interest rates\" when:7d"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("stratumics/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": [
        "artificial intelligence",
        "site:reuters.com electric cars",
        "\"interest rates\" when:7d",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("stratumics/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 '{
  "queries": [
    "artificial intelligence",
    "site:reuters.com electric cars",
    "\\"interest rates\\" when:7d"
  ]
}' |
apify call stratumics/google-news-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stratumics/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/1VqEhxLSVkT3onhhg/builds/G9joAgfyd4CaH3EiC/openapi.json
