# Google News Scraper - Articles by Keyword, Real URLs (`logiover/google-news-scraper`) Actor

Google News API alternative, no API key. Scrape Google News RSS feeds and export articles to CSV/JSON with real publisher URLs across 50+ countries.

- **URL**: https://apify.com/logiover/google-news-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** News, SEO tools
- **Stats:** 6 total users, 4 monthly users, 100.0% runs succeeded, 0 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/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 — Track Articles, Brands & Topics in Real Time 📰

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-97D700?logo=apify\&logoColor=white)](https://apify.com/logiover/google-news-scraper)
[![No API key required](https://img.shields.io/badge/No%20API%20key-required-success)](https://apify.com/logiover/google-news-scraper)
[![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-blue)](https://apify.com/logiover/google-news-scraper)
[![Category](https://img.shields.io/badge/News-Media%20Intelligence-orange)](https://apify.com/logiover/google-news-scraper)
[![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-informational)](https://apify.com/logiover/google-news-scraper)

Turn any **keyword, brand, topic, or location** into a clean, structured feed of news articles from **Google News** — **no API key, no login, and no proxy required**. This Google News scraper reads the public Google News feeds and returns each story's **headline, publisher, real article URL, snippet, thumbnail, and publish date** — including the **canonical publisher link** instead of the useless `news.google.com` redirect. It covers **50+ countries and 30+ languages** and can stitch multiple time windows together to deliver **100+ articles per query** in a single run.

> ### 🏆 Why this Google News Scraper?
>
> **Real publisher URLs** (not Google redirects) · **No API key or proxy needed** · **50+ countries · 30+ languages** · **Search, topic, location & top-headlines modes** · **100+ articles per query** via time-window stitching · **Source include/exclude & date filters** · **Pay only for results you keep**

***

### ✨ What this Actor does

- 🔍 **Search any keyword or phrase** — supports Google search operators: `"exact phrase"`, `OR`, `-exclude`, `site:domain.com`, `intitle:word`.
- 🗂️ **Browse by topic** — pull curated top stories from `WORLD`, `NATION`, `BUSINESS`, `TECHNOLOGY`, `ENTERTAINMENT`, `SPORTS`, `SCIENCE`, or `HEALTH`.
- 📍 **Location-based news** — get coverage for a specific city, region, or country (e.g. `New York`, `London`, `Berlin`, `Tokyo`).
- 📰 **Top headlines** — grab the main Google News front-page feed for any language/country, ideal for daily digests.
- 🔗 **Canonical publisher URLs** — resolves each Google redirect once and returns the clean `originalUrl` you can actually use for content extraction, CRM, or SEO.
- 🌍 **50+ countries & 30+ languages** — set `language` and `country` to localize which stories you receive.
- 📈 **100+ articles per query** — set `maxArticles` above 100 and the actor stitches multiple time-windowed feeds (`1h`, `1d`, `7d`, `30d`) and de-duplicates automatically.
- 🎯 **Source & date filters** — whitelist or blacklist publisher domains and restrict results to a date range or recent time window.
- 🖼️ **Thumbnails** — includes each article's preview image when available, at no extra cost.
- 📤 **Export anywhere** — download as **JSON, CSV, Excel, HTML, XML, or JSONL**, or stream results live via the Apify API and webhooks.

### 🚀 Quick start (3 steps)

1. **Enter what to monitor** — add one or more **Search keywords / topics**, or pick a **Topic** category, a **Location**, or toggle **Top headlines**.
2. **Set the region** — choose a **Language** and **Country**, then set **Max articles** (over 100 unlocks time-window stitching).
3. **Click Start** — every article is saved as one dataset row, ready to download or pipe into your stack.

No API key, no cookies, no proxy setup. It just runs.

### 📥 Input

The only thing you need is **one input mode**: a list of `queries`, **or** a `topic`, **or** a `geoLocation`, **or** `topHeadlines`. Everything else is optional and tunes region, volume, and filtering.

#### Example — monitor a brand across the news

```json
{
  "queries": ["openai", "anthropic claude"],
  "language": "en-US",
  "country": "US",
  "maxArticles": 100,
  "resolveUrls": true
}
```

#### Example — top stories in a topic category

```json
{
  "topic": "TECHNOLOGY",
  "language": "en-GB",
  "country": "GB",
  "maxArticles": 50,
  "extractThumbnails": true
}
```

#### Example — multi-query, filtered by source and date

```json
{
  "queries": ["electric vehicles", "\"battery technology\" -tesla", "site:reuters.com hydrogen"],
  "language": "de",
  "country": "DE",
  "maxArticles": 200,
  "fromDate": "2026-06-01",
  "includeSources": ["reuters.com", "bloomberg.com", "ft.com"]
}
```

#### Full parameters

| Field | Type | Description |
|---|---|---|
| `queries` | array | Search queries — each becomes a separate Google News feed. Supports `"exact phrase"`, `OR`, `-exclude`, `site:domain.com`, `intitle:word`. |
| `topic` | string (enum) | Browse top stories by category instead of searching: `WORLD`, `NATION`, `BUSINESS`, `TECHNOLOGY`, `ENTERTAINMENT`, `SPORTS`, `SCIENCE`, `HEALTH`. |
| `geoLocation` | string | Location-based news for a city/region/country (English name, e.g. `London`). |
| `topHeadlines` | boolean | Fetch the main Google News top-headlines feed and ignore queries/topic/geo. Great for daily digests. |
| `language` | string | Interface language, e.g. `en-US`, `en-GB`, `fr`, `de`, `es`, `ja`, `zh-CN`, `ar`, `tr`, `ru`. Default `en-US`. |
| `country` | string | ISO 2-letter region, e.g. `US`, `GB`, `FR`, `DE`, `JP`, `BR`, `IN`, `TR`. Default `US`. |
| `maxArticles` | integer | Max articles per feed (0–500). Above 100, the actor stitches multiple time windows and de-duplicates. |
| `timeWindow` | string (enum) | Restrict to a recent window: `1h`, `12h`, `1d`, `7d`, `30d`, `1y`. Ignored when `maxArticles` > 100. |
| `fromDate` | string | Drop articles published **before** this date (`YYYY-MM-DD` or full ISO). |
| `toDate` | string | Drop articles published **after** this date (`YYYY-MM-DD` or full ISO). |
| `includeSources` | array | Whitelist of publisher domains — only these sources are returned (e.g. `["reuters.com"]`). |
| `excludeSources` | array | Blacklist of publisher domains — these sources are filtered out. |
| `resolveUrls` | boolean | Follow the Google redirect once per article and return the canonical publisher URL. Default `true`. |
| `extractThumbnails` | boolean | Include the article thumbnail image URL when available. Default `true`. |
| `proxyConfiguration` | object | Optional Apify Proxy. Off by default — Google News RSS rarely rate-limits. |

> 💡 **Tip:** Use one query per brand/competitor/theme and set `maxArticles` to `200` to pull a deep backlog. Combine `includeSources` with a tier-1 publisher list to build a clean, high-signal media feed.

### 📤 Output

Each article is one clean dataset row. Here is a trimmed, realistic sample (fields are exactly what the actor returns):

```json
{
  "title": "OpenAI unveils new reasoning model for enterprise customers",
  "description": "The company said the model improves multi-step task accuracy while cutting latency for large-scale deployments.",
  "source": "Reuters",
  "sourceDomain": "reuters.com",
  "sourceUrl": "https://www.reuters.com",
  "link": "https://news.google.com/rss/articles/CBMiT2h0dHBzOi8v...",
  "originalUrl": "https://www.reuters.com/technology/openai-reasoning-model-enterprise-2026-07-05/",
  "thumbnailUrl": "https://news.google.com/api/attachments/CC8i...=-w200-h200-p",
  "publishedAt": "2026-07-05T14:22:00.000Z",
  "publishedAtRaw": "Sat, 05 Jul 2026 14:22:00 GMT",
  "guid": "CBMiT2h0dHBzOi8vd3d3LnJldXRlcnMuY29t",
  "query": "openai",
  "language": "en-US",
  "country": "US",
  "timeWindow": "",
  "scrapedAt": "2026-07-06T09:00:00.000Z"
}
```

<details><summary><b>📋 Full field reference (click to expand)</b></summary>

| Field | Description |
|---|---|
| `title` | Article headline |
| `description` | Article snippet / summary from the feed |
| `source` | Publisher name (e.g. Reuters, BBC) |
| `sourceDomain` | Publisher domain |
| `sourceUrl` | Publisher home URL |
| `link` | Original Google News link |
| `originalUrl` | Resolved canonical publisher article URL (not the Google redirect) |
| `thumbnailUrl` | Article thumbnail image URL, when available |
| `publishedAt` | Normalized publish timestamp (ISO 8601) |
| `publishedAtRaw` | Raw publish date string from the feed |
| `guid` | Unique article identifier |
| `query` | The search query that produced this result (in query mode) |
| `topic` | The topic category that produced this result (in topic mode) |
| `geoLocation` | The location that produced this result (in location mode) |
| `language` | Language code used for the run |
| `country` | Country code used for the run |
| `timeWindow` | Time window applied to the feed (if any) |
| `scrapedAt` | Timestamp when the article was scraped |

</details>

### 💡 Use cases

- **📡 News & brand monitoring** — track every article mentioning your company, product, or executives across 50+ countries and catch new coverage as it breaks.
- **🏢 Competitive & topic intelligence** — follow competitors, an industry, or a theme and feed fresh headlines into a daily digest or dashboard.
- **📣 PR & media analysis** — measure share of voice and coverage volume using clean source domains and accurate publish dates.
- **✍️ Content research & curation** — source trending stories by topic (`BUSINESS`, `TECHNOLOGY`, `SPORTS`, …) for a newsletter, feed, or blog.
- **🧠 NLP & data pipelines** — collect article metadata and canonical URLs for downstream content extraction, sentiment analysis, or dataset building.
- **🚨 Alerting & sentiment feeds** — schedule the actor and push new articles to Slack, email, or a webhook the moment they appear.

### 👥 Who uses it

PR & comms teams · brand managers · media monitoring & social listening tools · journalists & newsrooms · market and competitive-intelligence analysts · academic and market researchers · hedge funds & quant desks tracking event-driven signals · SEO & content marketers · data engineers building news datasets · agencies reporting on client coverage.

### 💰 Pricing

This Actor uses Apify's **pay-per-result** model — you're billed for the article rows you receive, with no monthly subscription and no per-request fees. Because it runs on plain HTTP with no proxy, runs are fast and cheap.

👉 See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Is it legal to scrape Google News?**
This Actor collects **publicly available** news metadata (headlines, publisher names, links, snippets, dates) from Google News feeds — the same information any visitor can see without logging in. It does not access private data or bypass authentication. As always, use the data responsibly and in line with Google's terms and applicable law in your jurisdiction. For legal advice, consult a professional.

**Does Google News have a public API?**
Not really. Google's official Google News API was **deprecated years ago**, and there is no current public API for retrieving Google News article results. This Actor is a practical **Google News API alternative**: it reads the public feeds and returns structured, queryable article data you can integrate anywhere.

**Can I use this without an API key or login?**
Yes. There's **no API key, no login, and no proxy** to configure. Just enter a keyword or topic and run it — the actor reads Google News feeds over plain HTTP, which rarely rate-limits.

**Do I get the real article URL or the Google redirect?**
You get the **real one**. With **Resolve final article URLs** enabled (the default), the scraper follows each `news.google.com` redirect once and returns the canonical publisher URL in `originalUrl` — ready for content extraction, CRM, or SEO use.

**How much data can I get per query?**
A single Google News feed caps at about **100 results**. Set **Max articles** above 100 (up to 500) and the actor stitches multiple time-windowed feeds (`1h`, `1d`, `7d`, `30d`) and de-duplicates them to deliver more than the single-feed cap.

**Which languages and countries are supported?**
**30+ languages** (e.g. English, French, German, Spanish, Italian, Portuguese, Dutch, Polish, Japanese, Chinese, Arabic, Turkish, Russian) and **50+ countries** via ISO 2-letter codes. Set `language` and `country` to localize which stories you receive.

**Can I filter by date or recency?**
Yes. Use `timeWindow` for a recent window (`1h` → `1y`), or `fromDate` / `toDate` for a precise ISO date range. Note that `timeWindow` is ignored when `maxArticles` > 100 (the actor manages windows itself in that mode).

**Are duplicate articles removed?**
Yes. When stitching multiple time windows to exceed 100 results, the actor **de-duplicates** so you don't get the same story twice. You can also whitelist or blacklist publisher domains with `includeSources` / `excludeSources`.

**How do I export Google News articles to CSV or JSON?**
Run the Actor, then download the dataset as **CSV, JSON, Excel, HTML, XML, or JSONL** from the Storage tab — or pull the same data live via the Apify API and webhooks (Sheets, Slack, a CRM, or a database).

### 🔗 More scrapers from logiover

Build a full news, media, and competitive-intelligence stack:

| Actor | What it does |
|---|---|
| [news-intelligence-scraper](https://apify.com/logiover/news-intelligence-scraper) | Multi-source news aggregation & intelligence |
| [hacker-news-search-scraper](https://apify.com/logiover/hacker-news-search-scraper) | Search Hacker News stories, comments & discussions |
| [reddit-search-scraper](https://apify.com/logiover/reddit-search-scraper) | Search Reddit posts & threads by keyword |
| [discussion-intelligence-scraper](https://apify.com/logiover/discussion-intelligence-scraper) | Aggregate discussion & forum chatter across the web |
| [competitor-ad-intelligence](https://apify.com/logiover/competitor-ad-intelligence) | Monitor competitor ad creatives & spend signals |
| [meta-ad-library-scraper](https://apify.com/logiover/meta-ad-library-scraper) | Scrape the Meta (Facebook/Instagram) Ad Library |
| [google-ads-transparency-scraper](https://apify.com/logiover/google-ads-transparency-scraper) | Pull ads from Google Ads Transparency Center |
| [serp-keyword-research](https://apify.com/logiover/serp-keyword-research) | SERP & keyword research for SEO and content |
| [company-deep-research-scraper](https://apify.com/logiover/company-deep-research-scraper) | Deep-dive company research & enrichment |
| [github-activity-stream](https://apify.com/logiover/github-activity-stream) | Track GitHub repo & developer activity |
| [cve-security-advisory-monitor](https://apify.com/logiover/cve-security-advisory-monitor) | Monitor CVEs & security advisories |
| [arxiv-paper-scraper](https://apify.com/logiover/arxiv-paper-scraper) | Scrape arXiv research papers & metadata |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

News monitoring is only useful if it's **continuous**. Use Apify **Schedules** to run this Actor every hour or every morning and keep a rolling feed of fresh coverage:

- 🔔 **Automated alerting** — trigger a webhook whenever a run finishes and push new articles straight to **Slack, Discord, email, or Microsoft Teams**.
- 🔗 **Live integrations** — connect the dataset to **Google Sheets, Airtable, a CRM, or your database** via the Apify API and webhooks.
- 🧩 **Actor-to-actor pipelines** — feed the canonical `originalUrl` list into a content extractor, summarizer, or sentiment model for an end-to-end media-intelligence workflow.
- 📅 **Daily digests** — pair `topHeadlines` or a `topic` with a morning schedule to generate a ready-to-send news brief.

### ⭐ Support & feedback

Questions, edge cases, or a field you'd like added? Open an issue on the Actor's **Issues** tab — feedback directly shapes the roadmap, and quick, useful requests often ship fast.

### ⚖️ Legal

This Actor collects publicly available information from Google News feeds. You are responsible for using the exported data in compliance with Google's terms of service, applicable data-protection and copyright laws, and any other relevant regulations in your jurisdiction. This tool is not affiliated with or endorsed by Google.

***

### 📝 Changelog

#### 2026-07-06

- ✨ README overhaul: richer output sample, ready-to-run example scenarios, cross-promo links, clearer quick-start and expanded FAQ.

#### 2026-07-01

- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.

#### 2026-06-15

- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.

#### 2026-06-07

- Docs: added coverage for Google News API alternative, scraping without an API key, and exporting articles to CSV/JSON.

#### 2026-06-05

- SEO and documentation refresh; title and metadata aligned to "Google News scraper" with accurate output fields.
- Verified live and rebuilt.

# Actor input Schema

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

List of search queries. Each query becomes a separate Google News RSS feed. Supports Google's search operators: "exact phrase" for exact match, OR for boolean OR (default is AND between words), -word to exclude, site:domain.com to filter by source, intitle:word to match in title only.

Leave empty if using 'topic' or 'geoLocation' mode instead.

## `topic` (type: `string`):

Browse top stories by topic instead of searching keywords. Use this OR queries, not both. Returns curated top headlines from Google News in that category.

## `geoLocation` (type: `string`):

Get news for a specific city, state, or region instead of search/topic. Use city or country name in English (e.g. 'New York', 'London', 'Berlin', 'Tokyo'). Leave empty if using queries or topic.

## `topHeadlines` (type: `boolean`):

If true, fetches the main Google News top headlines feed for the selected language/country and ignores queries/topic/geoLocation. Useful for daily news digests.

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

Google News interface language (hl parameter). Determines the language of the returned headlines. Leave on the default (English US) for the broadest coverage.

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

Geographic region for news (gl parameter). Google News tailors story selection to this region. Leave on the default (United States) for broad global coverage.

## `maxArticles` (type: `integer`):

Maximum articles to return per query (or per topic/geo feed). Google News RSS caps at ~100 per single feed; if set higher than 100, the actor automatically stitches multiple time-windowed feeds (when:1h, when:1d, when:7d, when:30d) and deduplicates to deliver more results.

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

Restrict results to a recent time window using Google's 'when:' operator. Ignored when maxArticles > 100 (the actor stitches multiple windows automatically in that case).

## `fromDate` (type: `string`):

Filter out articles published BEFORE this date. Format: YYYY-MM-DD or full ISO (2026-05-01T00:00:00Z). Applied post-fetch on the publication date in the RSS feed.

## `toDate` (type: `string`):

Filter out articles published AFTER this date. Format: YYYY-MM-DD or full ISO. Applied post-fetch.

## `includeSources` (type: `array`):

Whitelist of publisher domains. If set, only articles from these sources are returned. Example: \['reuters.com', 'bloomberg.com', 'ft.com']. Matched against the source URL host.

## `excludeSources` (type: `array`):

Blacklist of publisher domains. Articles from these sources are filtered out. Example: \['clickbait.com', 'spam-news.net'].

## `resolveUrls` (type: `boolean`):

Google News links go through a redirect (news.google.com/articles/CBMi...). When enabled, the actor follows the redirect once per article via a fast HEAD request and returns the canonical publisher URL. Adds ~50ms per article but gives clean URLs for downstream use (CRM, content extraction, SEO analysis).

## `extractThumbnails` (type: `boolean`):

Include the thumbnail image URL from each article's media:content tag when available. No extra cost.

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

Google News RSS rarely rate-limits, so most users don't need a proxy. If your account hits rate limits with very high volumes, enable Apify Proxy here.

## Actor input object example

```json
{
  "queries": [
    "openai",
    "anthropic",
    "claude ai"
  ],
  "topic": "",
  "geoLocation": "",
  "topHeadlines": false,
  "language": "en-US",
  "country": "US",
  "maxArticles": 100,
  "timeWindow": "",
  "fromDate": "",
  "toDate": "",
  "includeSources": [],
  "excludeSources": [],
  "resolveUrls": true,
  "extractThumbnails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `articles` (type: `string`):

The full dataset of scraped news articles. Switch between Overview, By query, and By source views to slice the data.

# 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": [
        "openai",
        "anthropic",
        "claude ai"
    ],
    "language": "en-US",
    "country": "US",
    "maxArticles": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/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": [
        "openai",
        "anthropic",
        "claude ai",
    ],
    "language": "en-US",
    "country": "US",
    "maxArticles": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/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": [
    "openai",
    "anthropic",
    "claude ai"
  ],
  "language": "en-US",
  "country": "US",
  "maxArticles": 100
}' |
apify call logiover/google-news-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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