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

Scrape Google News for any keyword or query: headlines, source, publish date, snippet and link. Multi-language, multi-country, time-window filters. Fast, no browser.

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

## Pricing

from $2.00 / 1,000 article scrapeds

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/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 — structured news articles for any keyword

Turn **Google News** into structured data. Search any keyword or query and get back a clean feed of articles — headline, source, publish date, snippet, and link — across **16 languages** and **20 country editions**, with optional time-window filters.

Fast and lightweight: reads Google News feeds directly, no browser required. A typical query returns in seconds and costs a fraction of a cent.

### What you get

One dataset item per article:

```json
{
  "query": "artificial intelligence",
  "title": "OpenAI announces new model for enterprise",
  "source": "Reuters",
  "sourceUrl": "https://www.reuters.com",
  "link": "https://news.google.com/rss/articles/CBMi...",
  "guid": "CBMiK2h0dHBz...",
  "publishedAt": "2026-07-09T08:14:00.000Z",
  "publishedRaw": "Wed, 09 Jul 2026 08:14:00 GMT",
  "snippet": "The company said the model targets regulated industries…",
  "status": "SUCCEEDED"
}
```

### How to scrape Google News

1. Enter one or more **queries** — plain keywords or full Google search syntax (`"apple vision pro"`, `climate site:reuters.com`, `intitle:layoffs`).
2. Optionally set a **time window** (last hour to last 7 days), **language**, and **country edition**.
3. Click **Start**. Articles land in the dataset, ready to export as JSON, CSV, or Excel, or to pull via API.

No login, no API key, no browser.

### Input

| Field | Description |
|---|---|
| `queries` | One news search per query. Supports operators like `"apple vision pro"`, `climate site:reuters.com`, `intitle:layoffs` |
| `maxItemsPerQuery` | Cap per query (default 100 — Google returns up to ~100 per feed) |
| `timeWindow` | Any time / last hour / 6h / 12h / 24h / 3 days / 7 days |
| `language` | Article language (16 options) |
| `country` | Google News edition / region (20 options) |
| `proxyConfiguration` | Apify Proxy settings (defaults are fine for most runs) |

### Pricing

You pay a small fee **per article delivered** — $2.00 per 1,000 articles plus a few cents of platform usage. Queries that return nothing, or that fail, are never charged. No subscriptions, no minimums.

### Use cases

- **Brand & reputation monitoring** — track every mention of your company or product as it's published.
- **PR & media teams** — measure coverage, spot breaking stories, build press clip reports.
- **Market & competitor research** — follow an industry, a rival, or a ticker across hundreds of outlets.
- **Content & SEO research** — find trending angles and fresh sources for any topic before you write.
- **AI agents & LLM apps** — give your agent a live news feed as a tool; the structured output drops straight into a prompt.
- **Pipelines** — schedule runs and pull results via the Apify API into dashboards, Slack alerts, or Google Sheets.

### Run it from your own code

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("originalvi/google-news-scraper").call(run_input={
    "queries": ["nvidia earnings", "\"artificial intelligence\" regulation"],
    "timeWindow": "24h",
    "language": "en",
    "country": "US",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["publishedAt"], item["source"], "—", item["title"])
```

Works the same with the JavaScript `apify-client`, raw HTTP API, or no-code tools (Make, Zapier, n8n).

### FAQ

**How is this different from the Google News website?**
Same articles, but as structured data you can filter, store, and automate — not a UI you have to read. One scheduled run replaces manually checking dozens of searches.

**How fresh are the results?**
Google News feeds update within minutes of publication. Pair the `last hour` time window with an hourly schedule for a near-real-time monitoring feed.

**Can I get news in German / Spanish / Japanese…?**
Yes — 16 languages and 20 country editions. Set `language` and `country` per run; you can also run several country editions of the same query in one go.

**Why does the `link` point to news.google.com?**
Google News serves redirect URLs. Opening one in a browser lands on the publisher's article. The `source` and `sourceUrl` fields tell you the publisher directly.

**Are there search operators?**
Everything Google News supports: exact phrases in quotes, `site:`, `intitle:`, exclusion with `-word`, `OR`, and more.

**Is scraping Google News legal?**
The Actor reads publicly available news feeds — headlines, snippets, and links, no full article text and no personal data. How you use the data is your responsibility.

### Tips

- Use quotes for exact phrases (`"vision pro"`) and operators (`site:`, `intitle:`, `-word`) to sharpen results.
- Pair `timeWindow` with a scheduled run (e.g. every hour, last-hour window) to build a real-time news alert feed.
- Track a competitor with `"CompanyName" -site:companyname.com` to catch third-party coverage only.

### More Actors by this developer

- [Google Trends Explorer](https://apify.com/originalvi/google-trends-explorer) — see what's rising *and* what's being written about it
- [Hacker News Scraper](https://apify.com/originalvi/hacker-news-scraper) — what developers are saying, stories & comments
- [eBay Sold Listings Scraper](https://apify.com/originalvi/ebay-sold-listings) — real sold prices + price statistics
- [App Store Reviews Scraper](https://apify.com/originalvi/app-store-reviews-scraper) — iOS reviews & ratings across 20+ countries
- [Website Screenshot Pro](https://apify.com/originalvi/website-screenshot-pro) — pixel-perfect full-page screenshots

### Found a problem?

Open an issue on the **Issues** tab and I'll fix it fast — usually within a day.

# Actor input Schema

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

One news search per query. Supports Google News operators, e.g. `tesla`, `"apple vision pro"`, `climate site:reuters.com`, `intitle:layoffs`.

## `maxItemsPerQuery` (type: `integer`):

Upper limit of articles per query. Google News returns up to ~100 per feed.

## `timeWindow` (type: `string`):

Only return articles published within this window (uses Google's `when:` operator).

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

Article language (Google `hl`).

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

Google News edition (`gl`). Controls which regional sources appear.

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

Proxies to use. The default Apify Proxy works for most runs; switch to residential if you see blocking on high-volume runs.

## Actor input object example

```json
{
  "queries": [
    "artificial intelligence"
  ],
  "maxItemsPerQuery": 100,
  "timeWindow": "any",
  "language": "en",
  "country": "US",
  "proxyConfiguration": {
    "useApifyProxy": 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"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("originalvi/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"],
    "proxyConfiguration": { "useApifyProxy": True },
}

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

```

## MCP server setup

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

```

## OpenAPI specification

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