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

🔥$1.00/1000🔥 Scrape Google News articles by keyword. Get title, source, date, author, thumbnail for any topic. Deep pagination for 1000+ articles per query. No proxy, no login, blazing fast.

- **URL**: https://apify.com/scrapesmith/google-news-scraper.md
- **Developed by:** [Scrape Smith](https://apify.com/scrapesmith) (community)
- **Categories:** News, Developer tools, Automation
- **Features:** Limited permissions
- **Stats:** 25 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.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.

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

## Google News Scraper — Real Article URLs, Headlines & Search

Extract news articles from Google News in seconds — and get the **real publisher URL** for every article. Search any topic, keyword, or phrase — or paste a Google News topic page — and get structured article data ready for monitoring, research, or feeds.

No accounts. No logins. No configuration. Just enter your keywords and run.

***

### What You Get

For each article:

| Field | Description |
|---|---|
| `title` | Article headline |
| `source_name` | Publisher name (e.g. Reuters, BBC, TechCrunch) |
| `published_at` | Publication date and time (ISO 8601) |
| `article_url` | **Real publisher URL** (direct link to the article on the original site) |
| `google_news_url` | Google News redirect URL (always included as a fallback) |
| `snippet` | Short article description where available |
| `query` | The search term or topic that returned this article |
| `language` | Language code (e.g. en-US) |
| `country` | Country code (e.g. US) |

***

### How to Use

#### Search by keyword

Enter one or more search queries in the **Search Queries** field:

```
artificial intelligence
Tesla earnings
climate change 2026
```

Each query returns up to ~100 of the latest matching articles from Google News.

#### Subscribe to a topic page

Paste a Google News topic URL into **Topic Page URLs**. These are the category pages you see when browsing Google News, for example:

```
https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB
```

#### Decode Real Article URLs

By default, the scraper resolves every Google News link to the **real publisher URL** (e.g. `https://www.nytimes.com/...` instead of a Google redirect). Turn off **Decode Real Article URLs** if you only need titles, sources, and dates and want the fastest possible run.

#### Language and country

By default the scraper returns English (US) results. Change **Language (hl)** and **Country (gl)** for local news in other languages:

- Germany: hl=`de`, gl=`DE`
- France: hl=`fr`, gl=`FR`
- Japan: hl=`ja`, gl=`JP`
- Brazil: hl=`pt-BR`, gl=`BR`
- UK: hl=`en-GB`, gl=`GB`

***

### Use Cases

- **Media monitoring** — track brand mentions, competitor news, or industry developments
- **News aggregation** — build feeds for newsletters, dashboards, or research tools
- **Sentiment research** — collect articles for NLP / sentiment analysis pipelines
- **Content discovery** — find the latest articles on any topic for content marketing
- **Academic research** — gather news data for social science or journalism studies
- **SEO & PR tracking** — monitor coverage of your company or product across publishers
- **Lead generation** — find companies or people in the news on topics relevant to you

***

### Frequently Asked Questions

**How many articles can I get per query?**
Google News returns up to ~100 articles per search query. For topic pages, results vary by topic activity.

**How current is the data?**
Articles are typically from the last 24–72 hours, depending on the topic. Google News indexes new articles continuously.

**Can I get articles in other languages?**
Yes. Set the `hl` (language) and `gl` (country) fields. For example, `hl=de, gl=DE` returns German news.

**What does "real article URL" mean?**
Google News links are redirect URLs. This scraper resolves each one to the actual article URL on the publisher's website (e.g. `https://www.bbc.com/news/...`). About 80–90% of articles decode successfully.

**Can I get the full article text?**
The scraper returns the article URL and a snippet where available. Full text extraction depends on the publisher and is not included.

**Can I run multiple queries in one run?**
Yes. Add as many queries as you like. Each query is fetched independently and combined into one dataset.

**Does it require login or an API key?**
No. The scraper works without any authentication.

***

### Example Output

```json
{
  "title": "SpaceX to acquire AI startup for $1.5 billion",
  "source_name": "The New York Times",
  "published_at": "2026-06-17T14:30:00Z",
  "article_url": "https://www.nytimes.com/2026/06/17/technology/spacex-ai-acquisition.html",
  "google_news_url": "https://news.google.com/read/CBMi...",
  "snippet": "SpaceX has announced plans to acquire an artificial intelligence startup...",
  "query": "SpaceX",
  "language": "en-US",
  "country": "US"
}
```

***

### Pricing

Pay only for what you scrape. Each article returned counts as one result. Free plan users get **25 articles** per run to try the scraper.

# Actor input Schema

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

List of search keywords or phrases to fetch from Google News (e.g. 'artificial intelligence', 'climate change'). Returns up to ~100 articles per query.

## `topic_urls` (type: `array`):

Google News topic page URLs (e.g. https://news.google.com/topics/CAAqJggK...). Returns latest headlines for that topic.

## `max_per_query` (type: `integer`):

Maximum articles per individual query or topic. Set above 100 to enable deep day-by-day pagination (automatically fetches older articles until target is reached).

## `date_from` (type: `string`):

Only return articles published after this date. When set with Date To, limits results to that range (no deep pagination). Leave empty for latest news.

## `date_to` (type: `string`):

Only return articles published before this date. Use with Date From to define a range.

## `hl` (type: `string`):

Language code for results, e.g. en-US, de, fr, es, ja. Defaults to en-US.

## `gl` (type: `string`):

Country code for results, e.g. US, GB, DE, FR, JP. Defaults to US.

## Actor input object example

```json
{
  "queries": [
    "artificial intelligence"
  ],
  "topic_urls": [],
  "max_per_query": 100,
  "hl": "en-US",
  "gl": "US"
}
```

# 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"
    ],
    "topic_urls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesmith/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"],
    "topic_urls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesmith/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"
  ],
  "topic_urls": []
}' |
apify call scrapesmith/google-news-scraper --silent --output-dataset

```

## MCP server setup

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