# Google News Scraper — Headlines, Articles, Any Topic (`knotless_cadence/google-news-scraper`) Actor

Scrape Google News articles for ANY keyword. Get headlines, URLs, sources, dates in JSON/CSV. Monitor competitors, track industry trends.

- **URL**: https://apify.com/knotless\_cadence/google-news-scraper.md
- **Developed by:** [Alex](https://apify.com/knotless_cadence) (community)
- **Categories:** Business, Open source
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## 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

## Google News Scraper

Scrape Google News articles by keyword — extract headlines, URLs, publication dates, source names, and descriptions. Monitor news coverage for any topic, brand, or industry in real-time.

### Features

- **Real-time news data** — scrape the latest articles from Google News RSS feeds
- **Multiple search queries** — process several topics in a single run
- **Time range filters** — filter articles by hour, day, week, month, or year
- **Multi-language support** — scrape news in 40+ languages and 70+ country editions
- **Source attribution** — extract publisher name and URL for each article
- **HTML fallback** — automatically switches to HTML parsing if RSS is unavailable
- **Clean output** — HTML tags stripped from titles and descriptions

### Output Example

```json
{
  "title": "OpenAI Announces GPT-5 with Advanced Reasoning Capabilities",
  "url": "https://www.reuters.com/technology/openai-announces...",
  "publishedAt": "2026-03-17T14:30:00.000Z",
  "description": "OpenAI unveiled its latest language model on Monday, featuring significant improvements in mathematical reasoning and code generation...",
  "source": "Reuters",
  "sourceUrl": "https://www.reuters.com",
  "query": "artificial intelligence",
  "scrapedAt": "2026-03-18T12:00:00.000Z"
}
````

### Use Cases

- **Media monitoring** — track news coverage of your brand, product, or industry across hundreds of sources
- **Competitive intelligence** — monitor competitor announcements, press releases, and media mentions
- **Trend analysis** — detect emerging topics and breaking news in your market niche
- **Content curation** — automatically collect articles for newsletters, digests, or research reports
- **PR measurement** — quantify media coverage volume and sources for PR campaign analysis

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | Array | `["artificial intelligence"]` | Keywords or phrases to search for in Google News |
| `language` | String | `"en"` | Language code (en, es, fr, de, ru, etc.) |
| `country` | String | `"US"` | Country code for regional news (US, GB, DE, FR, etc.) |
| `maxArticlesPerQuery` | Number | `50` | Maximum articles to extract per search query |
| `timeRange` | String | `"week"` | Time filter: hour, day, week, month, year |

### Cost Estimation

- \~$0.25 per 100 articles
- Processes 50+ articles per query in under 30 seconds
- Free tier: up to 100 articles with Apify free plan

### FAQ

**Q: How fresh are the news articles?**
A: Articles are scraped from Google News in real-time. Use `timeRange: "hour"` to get only the most recent stories. Publication dates come directly from Google News.

**Q: Can I scrape news in languages other than English?**
A: Yes. Set the `language` and `country` parameters to get localized results. For example, `language: "de"` and `country: "DE"` for German news.

**Q: Does it follow links to the original articles?**
A: The scraper extracts the original article URL as provided by Google News. It does not visit or scrape the full text from source websites — for that, combine this scraper with a web content extractor.

***

*Part of 60+ data tools by knotless\_cadence on Apify. Related tools:*

- [RSS Feed Scraper](https://apify.com/knotless_cadence/rss-feed-scraper) — Extract and parse any RSS/Atom feed into structured JSON
- [Hacker News Scraper](https://apify.com/knotless_cadence/hacker-news-scraper) — Scrape top stories, comments, and user data from Hacker News
- [MCP Trend Detector](https://apify.com/knotless_cadence/mcp-trend-detector) — AI-powered trend detection across news and social media sources

### More Tools

- [60+ free scrapers](https://github.com/spinov001-art/awesome-web-scraping-2026)
- [15 MCP Servers for AI Agents](https://github.com/spinov001-art/mcp-servers-collection)
- [Market Research Reports](https://payhip.com/aimarketintel)

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords or topics to search for in Google News

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

Language for Google News results

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

Country/region for localized Google News results

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

Maximum number of news articles to extract per search query

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

Only return articles published within this time period

## Actor input object example

```json
{
  "searchQueries": [
    "artificial intelligence",
    "startup funding",
    "climate change"
  ],
  "language": "en",
  "country": "US",
  "maxArticlesPerQuery": 50,
  "timeRange": "week"
}
```

# 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 = {
    "searchQueries": [
        "artificial intelligence",
        "startup funding",
        "climate change"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("knotless_cadence/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 = { "searchQueries": [
        "artificial intelligence",
        "startup funding",
        "climate change",
    ] }

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google News Scraper — Headlines, Articles, Any Topic",
        "description": "Scrape Google News articles for ANY keyword. Get headlines, URLs, sources, dates in JSON/CSV. Monitor competitors, track industry trends.",
        "version": "1.0",
        "x-build-id": "21sPFq190DNh6zLLR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/knotless_cadence~google-news-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-knotless_cadence-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/knotless_cadence~google-news-scraper/runs": {
            "post": {
                "operationId": "runs-sync-knotless_cadence-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/knotless_cadence~google-news-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-knotless_cadence-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",
                "required": [
                    "searchQueries"
                ],
                "properties": {
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Keywords or topics to search for in Google News",
                        "default": [
                            "artificial intelligence"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "es",
                            "fr",
                            "de",
                            "it",
                            "pt",
                            "ru",
                            "ja",
                            "ko",
                            "zh-CN",
                            "ar",
                            "hi",
                            "tr",
                            "pl",
                            "nl"
                        ],
                        "type": "string",
                        "description": "Language for Google News results",
                        "default": "en"
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "US",
                            "GB",
                            "CA",
                            "AU",
                            "DE",
                            "FR",
                            "ES",
                            "IT",
                            "BR",
                            "IN",
                            "JP",
                            "KR",
                            "RU",
                            "MX",
                            "TR"
                        ],
                        "type": "string",
                        "description": "Country/region for localized Google News results",
                        "default": "US"
                    },
                    "maxArticlesPerQuery": {
                        "title": "Max Articles Per Query",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of news articles to extract per search query",
                        "default": 50
                    },
                    "timeRange": {
                        "title": "Time Range",
                        "enum": [
                            "hour",
                            "day",
                            "week",
                            "month",
                            "year"
                        ],
                        "type": "string",
                        "description": "Only return articles published within this time period",
                        "default": "week"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
