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

Scrape Google News by search, topic or top headlines. Extract article titles, publisher names, publish dates, related coverage and resolved publisher links across any country and language edition.

- **URL**: https://apify.com/scrapers\_lat/google-news-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** News, Automation, Business
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $8.00 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

<!-- actor-banner -->
[![Google News Article Scraper](https://scrapers.lat/banners/google-news-scraper.png)](https://console.apify.com/actors/3uMyPSZoiqyZiDtFo/input)
<!-- /actor-banner -->

## Google News Scraper

> Extract news articles from Google News by keyword search, topic section or top headlines, with publisher names, publish dates and resolved article links across every country edition.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-Global%20editions-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>13 fields</strong><br>per record</td>
<td align="center"><strong>Global editions</strong><br>any language and country</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-22</td>
</tr></table>

<br>

### What you get

Each article returns a structured record ready to load into any database, spreadsheet, or analytics pipeline:

- **title**: the article headline, with the source suffix removed
- **source**: the publisher name, for example Reuters, BBC, El País
- **sourceUrl**: the publisher's home domain
- **url**: the publisher's real article link when resolved, otherwise the Google News link
- **googleNewsUrl**: the original Google News redirect link
- **urlResolved**: whether the real publisher link was successfully decoded
- **publishedAt**: publish date and time in ISO 8601 format
- **snippet**: short text from the feed entry, when present
- **relatedCoverage**: in headlines and topic mode, an array of related articles covering the same story, each with title, source and url
- **guid**: the unique Google News identifier for the article
- **language**: the language edition used for the request
- **country**: the country edition used for the request
- **observedAt**: when this article was last seen by the scraper

The **url** is resolved to the publisher's real article address when Resolve Real Article URL is enabled. Google News links are opaque redirects, so the actor decodes them into the original publisher link so you can open or crawl the source directly.

### Who is it for

| Use case | Who benefits |
|---|---|
| Media monitoring | PR and communications teams tracking brand and competitor coverage |
| Market intelligence | Analysts following industry and company news across countries |
| Content aggregation | Product teams building news feeds and alerting tools |
| Academic research | Researchers studying media coverage and news framing |
| Trend tracking | Marketers watching topics, events and public sentiment |

### Frequently Asked Questions

**Which countries and languages does it cover?**
Any Google News edition. Set the language code, for example en-US or es-419, and the country code, for example US, MX, GB, ES, BR. The actor reads the matching edition so you get sources and articles relevant to that market.

**How many articles can I get per run?**
A single search, topic or headlines feed returns up to about 100 articles. Use Max Items to cap how many you collect. For broader coverage, run several searches with different queries or time windows.

**Can I limit results to recent news?**
Yes. In search mode add a time operator to the query, for example artificial intelligence when:1h, when:1d or when:7d, to restrict results to the last hour, day or week.

**Why is the link sometimes a Google News URL instead of the publisher link?**
Google News serves redirect links that hide the real article address. The actor decodes them into the publisher link when Resolve Real Article URL is enabled. If a particular link cannot be decoded, the actor keeps the Google News link and sets urlResolved to false, so you never lose the article.

**What happens when a field has no data?**
Missing values are returned as null and are never invented. The snippet field is empty for search items where the feed only carries the headline, and carries the related coverage list for top headlines.



<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [Monitor Google News for AI Coverage](https://apify.com/scrapers_lat/google-news-scraper/examples/google-news-ai-monitoring): Scrape Google News articles about artificial intelligence. Get headlines, sources, publish dates and links for media monitoring and trend analysis.
- [Track Stock Market News on Google News](https://apify.com/scrapers_lat/google-news-scraper/examples/google-news-stock-market-tracking): Scrape Google News articles about the stock market. Get headlines, publishers, dates and links for finance monitoring and sentiment research.
- [Collect US Technology Headlines](https://apify.com/scrapers_lat/google-news-scraper/examples/google-news-technology-headlines-us): Scrape the latest US technology headlines from Google News by topic. Get titles, sources, publish dates and article links for news aggregation.

<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [DOF Mexico Official Gazette Scraper](https://apify.com/scrapers_lat/dof-scraper): Extract entries from Mexico's Diario Oficial de la Federacion (official federal gazette) by keyword...
- [Google Play App Details Scraper](https://apify.com/scrapers_lat/google-play-apps-scraper): Extract app listings and details from the Google Play Store by search, app IDs, developer or...
- [Instagram Profile & Posts Scraper](https://apify.com/scrapers_lat/instagram-scraper): Extract public Instagram profiles and recent posts by username without login.
- [YouTube Scraper](https://apify.com/scrapers_lat/youtube-scraper): Scrape YouTube videos and channels by search query, video URL or channel URL.
- [X (Twitter) Profiles & Tweets Scraper](https://apify.com/scrapers_lat/x-twitter-scraper): Extract public X (Twitter) tweets by tweet ID: text, author, likes, replies, media and timestamps.
- [Reddit Posts & Comments Scraper](https://apify.com/scrapers_lat/reddit-scraper): Extract Reddit posts and comments from subreddits and search results using the public Reddit feeds.

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with Google News. It only accesses data that is publicly available on the platform. Use it in accordance with Google's terms of service.

# Actor input Schema

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

Maximum number of articles to collect. Optional.
## `withDetails` (type: `boolean`):

When enabled, the scraper resolves the Google News redirect link into the publisher's real article URL for each article and emits a details record. When disabled, only the Google News link is kept.
## `mode` (type: `string`):

What to scrape: a keyword search, a news topic section, or the top headlines.
## `query` (type: `string`):

Search terms used when mode is Search. Supports Google News operators, for example: artificial intelligence when:7d. Use when:1h, when:1d or when:7d to limit by time window.
## `topic` (type: `string`):

Topic section to read when mode is Topic.
## `language` (type: `string`):

Interface and content language code, for example en-US or es-419. Maps to the Google News hl parameter.
## `country` (type: `string`):

Country code for the Google News edition, for example US, MX, GB, ES, BR. Maps to the gl parameter.
## `proxyConfiguration` (type: `object`):

Optional proxy settings. Google News RSS works directly from datacenter IPs, so a proxy is off by default.

## Actor input object example

```json
{
  "maxItems": 10,
  "withDetails": true,
  "mode": "search",
  "query": "artificial intelligence",
  "topic": "TECHNOLOGY",
  "language": "en-US",
  "country": "US",
  "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 = {
    "maxItems": 10,
    "query": "artificial intelligence"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/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 = {
    "maxItems": 10,
    "query": "artificial intelligence",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/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 '{
  "maxItems": 10,
  "query": "artificial intelligence"
}' |
apify call scrapers_lat/google-news-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google News Article Scraper",
        "description": "Scrape Google News by search, topic or top headlines. Extract article titles, publisher names, publish dates, related coverage and resolved publisher links across any country and language edition.",
        "version": "0.1",
        "x-build-id": "gG0csKBC9cNYNBtxM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~google-news-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-google-news-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~google-news-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-google-news-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~google-news-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-google-news-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of articles to collect. Optional."
                    },
                    "withDetails": {
                        "title": "Resolve Real Article URL",
                        "type": "boolean",
                        "description": "When enabled, the scraper resolves the Google News redirect link into the publisher's real article URL for each article and emits a details record. When disabled, only the Google News link is kept.",
                        "default": true
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "topic",
                            "headlines"
                        ],
                        "type": "string",
                        "description": "What to scrape: a keyword search, a news topic section, or the top headlines.",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search terms used when mode is Search. Supports Google News operators, for example: artificial intelligence when:7d. Use when:1h, when:1d or when:7d to limit by time window."
                    },
                    "topic": {
                        "title": "Topic",
                        "enum": [
                            "WORLD",
                            "NATION",
                            "BUSINESS",
                            "TECHNOLOGY",
                            "ENTERTAINMENT",
                            "SPORTS",
                            "SCIENCE",
                            "HEALTH"
                        ],
                        "type": "string",
                        "description": "Topic section to read when mode is Topic.",
                        "default": "TECHNOLOGY"
                    },
                    "language": {
                        "title": "Language (hl)",
                        "type": "string",
                        "description": "Interface and content language code, for example en-US or es-419. Maps to the Google News hl parameter.",
                        "default": "en-US"
                    },
                    "country": {
                        "title": "Country (gl)",
                        "type": "string",
                        "description": "Country code for the Google News edition, for example US, MX, GB, ES, BR. Maps to the gl parameter.",
                        "default": "US"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy settings. Google News RSS works directly from datacenter IPs, so a proxy is off by default.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
