# Google News Scraper - Search, Topics & Headlines (`justfeel/google-news-scraper`) Actor

Extract Google News articles by keyword search, topic, or top headlines - any language and country. Title, source, publish date, link. Clean JSON, no API key.

- **URL**: https://apify.com/justfeel/google-news-scraper.md
- **Developed by:** [Yusuf](https://apify.com/justfeel) (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 $0.70 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 — Search, Topics & Top Headlines

Extract **Google News** articles as clean JSON — by keyword search, by topic, or top headlines — for **any language and country**. No API key, no blocking, fast and reliable.

### What you get per article

```json
{
    "mode": "search",
    "query": "artificial intelligence",
    "title": "Xi pitches China as leader of new global AI order",
    "link": "https://news.google.com/rss/articles/...",
    "url": "https://www.reuters.com/technology/xi-pitches-china-...",
    "urlResolved": true,
    "source": "Reuters",
    "source_url": "https://www.reuters.com",
    "published": "Fri, 17 Jul 2026 08:15:14 GMT",
    "guid": "...",
    "description_html": "<a href=...>Xi pitches China...</a>"
}
```

### Three modes

| Mode | What it does |
|---|---|
| **Search** | Any keyword/phrase, optional recency filter (`1h`, `1d`, `7d`) |
| **Topic** | WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH |
| **Top** | The current top headlines for a country |

### Why this scraper

- ✅ **Real article URLs** — resolves Google's redirect link to the actual publisher URL, not just `news.google.com/rss/articles/...`
- ✅ **Any language & country** — `en-US`, `tr/TR`, `de/DE`, and more
- ✅ **No API key, no rate-limit walls** — built on Google News' public RSS
- ✅ **Reliable** — no headless browser to break
- ✅ **Structured JSON** — ready for dashboards, alerts, or LLM/RAG pipelines

### Use cases

- **Media monitoring & PR**: track brand or competitor mentions across outlets
- **Finance & research**: news flow for tickers, sectors, or events
- **AI & RAG**: fresh, multilingual news signal for LLM workflows
- **Newsrooms & creators**: topic and trend discovery

### Input example

```json
{
    "mode": "search",
    "queries": ["OpenAI", "Anthropic"],
    "when": "1d",
    "language": "en-US",
    "country": "US",
    "maxItems": 100
}
```

### FAQ

**Is this legal?** Reads Google News' publicly available RSS feeds — no login, no private data.

**Why are links `news.google.com` URLs?** That's `link`, the raw redirect Google News serves. Use `url` instead — it's the resolved, real publisher URL (set `resolveRealUrl: false` to skip resolution and get only the redirect link, e.g. for maximum speed).

# Actor input Schema

## `mode` (type: `string`):

How to fetch news: keyword search, a Google News topic, or the top headlines.

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

Keywords/phrases to search (search mode). One dataset entry per matching article.

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

Topic mode: one or more of WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH.

## `when` (type: `string`):

Optional recency filter for search, e.g. 1h, 12h, 1d, 7d. Leave empty for no limit.

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

Language code like en-US, tr, de, es, fr.

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

Two-letter country code like US, TR, GB, DE.

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

Google News RSS returns up to ~100 items per feed.

## `resolveRealUrl` (type: `boolean`):

Resolve each article's actual publisher URL instead of leaving the Google News redirect link. Adds one extra request per article, so turn off for maximum speed.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "artificial intelligence"
  ],
  "topics": [
    "TECHNOLOGY"
  ],
  "language": "en-US",
  "country": "US",
  "maxItems": 100,
  "resolveRealUrl": true
}
```

# 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"
    ]
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

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