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

Scrape Google News by search term, topic or link. Get headline, publisher, publish date and the real article URL, plus snippet, image, author and keywords when available. Filter by date, country, language and publisher. Bulk input, live results, no login needed.

- **URL**: https://apify.com/insights_data/google-news-scraper.md
- **Developed by:** [Insights Data](https://apify.com/insights_data) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.80 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### 📰 What is Google News Scraper?

**Google News Scraper** lets marketers, PR teams, researchers and developers collect Google News articles in bulk from search terms, topic sections or Google News links. Just type a search term and click **Start** to get each article's headline, publisher, publication date and the publisher's own URL, plus a snippet, image, author, section and keywords when the publisher's page allows it. The Apify Free plan saves up to 10 articles per run, as many runs as your $5 monthly credit covers, with no Google account, login or cookies needed.

Think of it as a no-code Google News extractor: you fill in a form and get structured results that you can open in a spreadsheet, send to an AI agent or load into your own database.

- **News monitoring:** follow a company, person or product with scheduled daily runs.
- **Brand monitoring and PR:** see which outlets mention your brand, when they did, and who wrote the article.
- **Media monitoring:** add fresh articles to the reports or media monitoring tools you already use.
- **Market and competitor research:** track the news about your industry or competitors by country and language.
- **AI and RAG pipelines:** feed fresh Google News headlines with dates and links to LLMs, agents and vector stores.
- **Research datasets:** build a Google News dataset by topic, edition and date for analysis.
- **Weekly reports:** move Google News to Excel or Google Sheets without copy-paste.

#### What can Google News Scraper do?

- 🔍 **Search Google News** by search terms, with Google News search operators such as quotes, `OR`, `intitle:` and `-word`
- 🗂️ **Read topic sections**: Top stories, World, Nation, Business, Technology, Entertainment, Sports, Science and Health
- 🔗 **Paste Google News links** in bulk: search links, topic links and the home page, one per line
- 📅 **Filter by time**: past hour to past year, or an exact date range
- 🏢 **Filter publishers**: keep only chosen sites or skip the ones you don't want
- 📍 **Pick an edition**: choose the country and the Google News search language
- 📝 **Get article details** from the publisher's page: snippet, image, author, section, keywords, published and modified times
- 🧵 **See related coverage**: related articles from other publishers that Google groups with each story
- ⚡ **Watch results arrive live**: each article appears in the Output tab while the run is still going
- 🔌 **Use it as a news API**: run it through the Apify API, schedule it, and connect it to Make, Zapier, n8n or Google Sheets

***

### 📊 Google News Scraper data: what can it extract?

You can extract Google News data for every article Google shows for your search or topic. Each row of the dataset has these fields:

| Field | What it contains |
|---|---|
| 🔢 `position` | Rank of the article in this run (1 = first) |
| 🏷️ `title`, `title_full` | Headline without and with the publisher name |
| 🔗 `link`, `google_news_url`, `canonical_url` | Publisher article URL, the news.google.com link, and the page's preferred URL |
| 🏢 `source` | Publisher name, for example CBS News |
| 🌐 `domain`, `source_url`, `site_name`, `favicon` | Publisher domain, home page, site name and site icon |
| 📅 `date`, `date_utc`, `published_ts` | "26 minutes ago", ISO time in UTC, and Unix timestamp |
| 📅 `published_time`, `modified_time` | Published and last-modified time stated by the article page |
| 📝 `snippet` | Short summary from the article page |
| 📸 `thumbnail` | Article image URL |
| 👤 `author` | Author name(s) |
| 🗂️ `section`, `og_type` | Section or category, and the page type (for example article) |
| 🔑 `keywords` | Keywords listed by the article page |
| 📏 `word_count` | Word count stated by the article page |
| 🧵 `related_count`, `related_articles` | Related articles Google groups with this one (title, source, Google News link) |
| 🔍 `query` | The search term or topic that found the article |
| 🔤 `article_language`, `search_language` | Language of the article page and of the Google News edition |
| 📍 `country` | Country of the Google News edition |
| 🚦 `article_status`, `url_resolved` | Whether the article page could be read, and whether the publisher link was found |
| ⏱️ `scraped_at` | When the run collected the article (UTC) |

Each run also fills two free side tables, **Related articles** (one row per related article) and **Inputs** (one row per search term, topic or link, with its status and article count), and saves a **Run summary** with the totals. See [If something goes wrong](#if-something-goes-wrong) for where to find them.

> **Note:** `snippet`, `thumbnail`, `author`, `section`, `keywords` and the other page details come from the publisher's own page. Some publishers don't allow automated page reads, so these fields stay empty for them, and `article_status` tells you why. If you turn off **Article details**, `author`, `section`, `keywords` and the other page-detail columns are left out, and `snippet` and `thumbnail` stay empty. If you turn off **Real publisher links**, `link` is the Google News link and `url_resolved` is left out.

#### What data can't Google News Scraper extract?

It is a news article scraper for headlines and article metadata, so it does not return:

- The full article body text (you get the page's own summary as `snippet`)
- Content behind publisher paywalls
- Personalised "For you" feeds, because the Actor uses no login
- Comments or social media engagement on the articles

***

### 🛠️ How to scrape Google News

Google News Scraper is built for an easy start, even if you have never extracted data from the web before. Here are the five steps:

1. [Create a free Apify account](https://console.apify.com/sign-up) using your email.
2. Open [Google News Scraper](https://apify.com/insights_data/google-news-scraper) in Apify Store.
3. Type a search term, such as `Elon Musk` (or paste a Google News link, or pick a topic). If you leave all three empty, the run collects the top stories.
4. Click **Start** and watch the articles arrive in the **Output** tab.
5. Download your results in JSON, CSV, Excel, XML or HTML.

You can scrape news articles for one search term or for many search terms in the same run.

***

### 💲 Google News Scraper pricing: how much does it cost to scrape Google News?

Google News Scraper uses **pay-per-event** pricing. Your bill has three parts:

1. **Articles:** you pay for each article saved to the main dataset. The price depends on your Apify plan (table below). Rows in the Related articles and Inputs tables are free.
2. **Start fee:** $0.00005 per run at the default memory setting.
3. **Platform usage:** the compute the run uses, billed to you at your plan's normal platform rates.

| Apify plan | Price per article | Price per 1,000 articles |
|---|---|---|
| 💲 Free | $0.004 | $4.00 |
| 💲 Starter | $0.0036 | $3.60 |
| 💲 Scale | $0.0032 | $3.20 |
| 💲 Business and higher | $0.0028 | $2.80 |

The plan discount applies to the article price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates. Platform usage depends on how many articles you collect and on settings like **Article details**, so do a small test run first and open the run page afterwards to see the exact cost. See the [pricing tab](https://apify.com/insights_data/google-news-scraper/pricing) for the current prices.

**Example: 1,000 articles.** Free runs stop at 10 articles, so 1,000 articles in one run need a paid plan. The articles cost $3.60 on Starter, $3.20 on Scale or $2.80 on Business and higher, plus the $0.00005 start fee and platform usage.

> ⚠️ **Maximum articles** set to `0` collects as many articles as can be found, which can cost more than you expect. Set a **maximum charge limit** in the run options when you start the run. Google News Scraper stops cleanly when the limit is reached and keeps every article it has already saved.

#### Is there a free Google News scraper?

Yes. You can try Google News Scraper free with the [Apify Free plan](https://apify.com/pricing). It gives you $5 in monthly credit, which pays for articles, start fees and platform usage together. Free runs save up to 10 articles each, and you can start as many runs as the credit covers. Ten articles cost $0.04 plus the start fee and platform usage, so a small test run shows how far the credit goes for your searches.

If you are on the Free plan and set **Maximum articles** above 10 (or to `0`), the run still starts normally. It shows a status message that the run is limited to 10 articles, saves the first 10 and then finishes. Any paid Apify plan removes the 10-article limit.

#### Can I use a Google News API free of charge?

API access to Google News Scraper is included at no extra cost. Runs you start through the API cost the same as runs you start in Apify Console: the articles you collect, the start fee and platform usage.

***

### ⬇️ Input

You don't have to fill in anything: an empty input collects the top stories. To get your own news, add at least one search term, Google News link or topic. In Apify Console you fill in a form; the JSON below is the same input for the API.

#### Settings most people change

| Field | What it does |
|---|---|
| 🔍 `queries` (Search terms) | One search term per line, as you would type it in Google News |
| 🔗 `urls` (Google News links) | Google News search links, topic links or the home page, one per line |
| 🗂️ `topics` (Topics) | Headline sections to read in addition to the searches |
| 🔢 `maxItems` (Maximum articles) | Total articles to save for the whole run, across all inputs. Default 10. `0` means as many as can be found |
| 📍 `country` (Country edition) | Two-letter country code, for example `US`, `GB` or `DE`. Default `US` |
| 🔤 `language` (News language) | Language code, for example `en`, `fr`, `de` or `pt-BR`. Default `en` |
| 📅 `timePeriod` (Time period) | Any time, past hour, 24 hours, 7 days, 2 weeks, 3 months or year. Default any time |

#### Other settings

| Field | What it does |
|---|---|
| 📅 `dateFrom`, `dateTo` (From date, To date) | Exact range in `YYYY-MM-DD`. Takes priority over the time period |
| 🔃 `sort` (Sort order) | `relevance` (default) or `date` for newest first |
| 🏢 `includeSites` (Only these publishers) | Keep only articles from these domains, for example `bbc.com`. For topics, other publishers are removed; for search terms, a few articles from other publishers can still appear |
| 🚫 `excludeSites` (Skip these publishers) | Never return articles from these domains |
| 🔗 `resolveUrls` (Real publisher links) | Return the publisher's own URL instead of the Google News link. On by default. Doesn't change the price per article, but makes the run a little slower |
| 📝 `articleDetails` (Article details) | Read each article page for snippet, image, author and more. On by default. Doesn't change the price per article, but makes the run a little slower |
| 🛡️ `proxyConfiguration` (Proxy configuration) | Optional Apify Proxy settings. Off by default; most runs don't need changes |

Here's an example that collects 10 articles for one search term:

```json
{
  "queries": ["Elon Musk"],
  "maxItems": 10
}
```

See the [input tab](https://apify.com/insights_data/google-news-scraper/input-schema) for a full description of every field.

#### Search terms

Type each search term on its own line. The usual Google News search operators work: `"exact phrase"`, `OR`, `intitle:` and `-word`. They help when a plain Google News article search returns too many loosely related stories.

- ✅ Good: `"electric vehicles" -Tesla`
- ✅ Good: `intitle:inflation`

#### Google News links

Paste links from news.google.com. Search links, topic links and the home page work. Each link is turned into a search or topic, and the search term inside the link shows up in the `query` field.

- ✅ Good: `https://news.google.com/search?q=Elon%20Musk`
- ❌ Bad: `https://www.cbsnews.com/news/some-article/` (a publisher article, not a Google News page)

> ⚠️ Links that are not Google News search or topic links are skipped and listed in the Inputs table. If no valid link, search term or topic is left, the run stops right away with an input problem.

#### Date range and time period

Use either **Time period** (past hour to past year) or a Google News date range with **From date** and **To date**. If both are set, the date range wins.

- ✅ Good: `"dateFrom": "2026-10-01", "dateTo": "2026-10-15"`
- ❌ Bad: `"dateFrom": "2026-10-15", "dateTo": "2026-10-01"` (From date after To date)

> ⚠️ A From date in the future stops the run with an input problem. A To date in the future is changed to today.

#### Sort order

To make Google News sort by date, set **Sort order** to **Newest first** (`date`). Keep **Relevance** for Google's own order.

#### Country edition and News language

**Country edition** and **News language** choose which Google News edition you read, for example `DE` + `de` or `FR` + `fr`. Some country and language pairs don't exist on Google News. In that case Google serves another edition, the log tells you, and `country` and `search_language` show the edition you actually got.

***

### ⬆️ Output

Results are stored in a dataset in the **Output** or **Storage** tab. You can view them in five ready views (Overview, Publishers, Article details, Links and Run info) and pick only the fields you need. Download the Google News data in JSON, CSV, Excel, XML or HTML. To export Google News to CSV later, open **Storage → Datasets → Export**.

#### JSON example

The first result for the input example above (some fields are left out for space):

```json
{
  "position": 1,
  "title": "Elon Musk donates over $150 million to Senate GOP group, assisting Ken Paxton",
  "link": "https://www.cbsnews.com/news/elon-musk-midterm-donations-texas-ken-paxton/",
  "domain": "cbsnews.com",
  "source": "CBS News",
  "date": "26 minutes ago",
  "date_utc": "2026-10-16T19:19:32.000Z",
  "snippet": "Billionaire Elon Musk is offering a nine-figure assist to Texas GOP Senate candidate Ken Paxton...",
  "thumbnail": "https://assets2.cbsnewsstatic.com/.../thumbnail/1200x630/...jpg",
  "google_news_url": "https://news.google.com/articles/CBMi...",
  "source_url": "https://www.cbsnews.com",
  "title_full": "Elon Musk donates over $150 million to Senate GOP group, assisting Ken Paxton - CBS News",
  "published_ts": 1792178372,
  "query": "Elon Musk",
  "related_count": 0,
  "related_articles": [],
  "author": "Joe Walsh",
  "section": "Politics",
  "keywords": "Elon Musk, Texas",
  "site_name": "CBS News",
  "article_language": "en-US",
  "og_type": "article",
  "article_status": "ok",
  "url_resolved": true,
  "country": "US",
  "search_language": "en",
  "scraped_at": "2026-10-16T19:46:18Z"
}
```

***

### 💡 Tips and advanced usage

#### How many results can you scrape with Google News Scraper?

One Google News page shows about 100 articles for a search. For a single search term, a higher **Maximum articles** (up to 100,000) lets the Actor find more articles than one Google News page shows; the real number depends on how much news exists. You can also add more search terms (for example one per product or person) or run the same search for different date ranges. The result also depends on how much news exists, your filters and your plan (10 articles per run on the Free plan). A quick test run shows what you get for your own searches.

#### How to get Google News headlines today

Pick the **Top stories** topic (or any other section), set **Time period** to **Past 24 hours**, and set **Sort order** to **Newest first**. Schedule the run every morning for a daily digest.

#### How to get faster or cheaper results

- Turn off **Real publisher links** and **Article details** if you only need headlines, publishers and dates. The run finishes faster, which can lower platform usage.
- Set **Maximum articles** to the number of articles you really need.
- Use **Only these publishers** or a short time period to skip articles you would delete anyway.
- Put many search terms into one run instead of starting one run per term, so you pay the start fee once.

#### If something goes wrong

**Where to look.** Open the run in Apify Console. Next to the article views, the **Output** tab links to **Related articles**, **Inputs** and **Run summary**. They are also in the run's **Storage** tab. The Inputs table has one row per search term, topic or link, with its status (`ok`, `empty` or `failed`), the number of articles saved and a short problem note.

**Empty article details.** The `article_status` field tells you what happened with each article page:

| Value | Meaning |
|---|---|
| 🚦 `ok` | The page was read |
| 🚦 `not fetched (no publisher URL)` | The publisher link wasn't found, so the page wasn't opened |
| 🚦 `page has no metadata (consent/bot wall?)` | The page opened, but showed no article data, for example a cookie-consent page |
| 🚦 `HTTP` and a number, such as `HTTP 404` | The publisher's page returned an error |
| 🚦 `unreachable (...)` | The publisher's page didn't load |

**Input problem.** If an input can't be used, the run stops at the start. Its status message begins with "Input problem:", for example `Input problem: From date 2026-10-15 is after To date 2026-10-01`. Fix that field and start again. No articles are saved, so you pay no article charges, only the start fee and the platform usage of the short run.

**Run without articles.** If Google News can't be reached, the run ends with the status "No articles were collected. Check the log for details". If nothing matches, it says "No articles matched your input. Try broader search terms or fewer filters". In both cases you pay only for articles that were actually saved, plus the start fee and platform usage. If a run stops early, every article saved before that point is kept.

#### Known issues

- Some publishers block automated page reads. Snippet, image and author then stay empty, and `article_status` explains why. The headline, publisher, date and links are still saved.
- If a publisher uses the same description or image on many of its articles, the Actor treats it as a site default and leaves `snippet` or `thumbnail` empty rather than returning wrong data.
- With **Only these publishers** on search terms, a few articles from other publishers can still appear. The log counts them so you can filter them out.
- If publisher links can't be found for many articles in a row, the remaining rows keep the Google News link and `url_resolved` is `false`.

***

### 🔌 Google News Scraper integrations and API

#### Can I use Google News Scraper as a news scraper API?

Yes. Every run can be started, scheduled and read through the [Apify API](https://docs.apify.com/api/v2), so you get a Google News search API without running your own servers. Use the `apify-client` [NPM package](https://apify.com/insights_data/google-news-scraper/api/javascript) for Node.js or the `apify-client` [PyPI package](https://apify.com/insights_data/google-news-scraper/api/python) for Python. The [API tab](https://apify.com/insights_data/google-news-scraper/api) has ready-to-use code. Schedule one run per brand or topic, and your app has a simple news monitoring API.

#### How to scrape Google News with Python

You don't need a separate Google News Python API: the `apify-client` package starts the Actor and returns the results. Here's a Google News Scraper Python example for one search term:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("insights_data/google-news-scraper").call(run_input={
    "queries": ["Elon Musk"],
    "maxItems": 10,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["source"], item["link"])
```

#### Can I integrate Google News Scraper with other apps?

Yes. Connect Google News Scraper with almost any cloud service through [Apify integrations](https://apify.com/integrations): **Make, Zapier, n8n, Slack, Google Sheets, Google Drive, Airbyte, GitHub, LangChain** and more. Use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger actions when a run finishes. For example, schedule a daily search for your brand name and send the new headlines to a Slack channel.

#### Can I use Google News Scraper with AI agents (MCP)?

Yes. Connect Google News Scraper to Claude and other AI assistants through the Apify MCP server, so your agent can look up current news on its own. Open the [MCP tab](https://apify.com/insights_data/google-news-scraper/api/mcp) for setup steps.

***

### 🧩 Other Google scrapers

These tools from the same developer cover other Google data and work well next to Google News Scraper:

| Actor | What it does |
|---|---|
| 📢 [Google Ads Transparency Center Scraper & API](https://apify.com/insights_data/google-ads-transparency-center-scraper-api) | Extract ads across Search, YouTube, Shopping, Maps and Play by brand, domain or advertiser ID |
| 📈 [Keyword Search Volume — Bulk Google Metrics (CPC & Trend)](https://apify.com/insights_data/keyword-search-volume) | Get Google search volume, CPC, ad competition and a 12-month trend for thousands of keywords |
| 🏨 [Google Hotels Scraper](https://apify.com/insights_data/google-hotels-scraper) | Scrape Google Hotels prices, ratings, amenities, photos and booking links for any city or hotel |
| ✈️ [Google Flights Prices API](https://apify.com/insights_data/google-flights-prices-api) | Get live Google Flights fares, schedules, stops, airlines and booking options |

***

### ❓ FAQ

#### Is it legal to scrape Google News?

Web scraping is generally legal when you extract publicly available data, and Google News headlines, publishers and links are public. However, you should respect personal data rules (for example GDPR) and intellectual property, only collect personal data such as author names with a legitimate reason, and take [Google's Terms of Service](https://policies.google.com/terms) and each publisher's terms into account. Article text belongs to its publisher. This is not legal advice; check with a lawyer for your use case.

#### How does Google News Scraper work?

It is a Google News web scraper that works like a person browsing Google News, only faster. It turns each link, search term and topic into a Google News search, collects the matching articles, removes repeated ones, applies your date and publisher filters, and then (if you want) opens each article to find the publisher's link and page details. Each article is saved as soon as it is ready, so you can watch the Output tab fill up during the run.

#### Is there an official Google News API?

No. Google offers no official public Google News API for reading other publishers' news. Google News Scraper gives you that data with JSON output, scheduling and integrations, without building or maintaining your own Google News crawler.

#### How is Google News Scraper different from copying news by hand?

| Feature | Google News Scraper | Copying from Google News by hand |
|---|---|---|
| Many searches and topics at once | ✅ | ❌ |
| Real publisher links and domains | ✅ | ✅ (one click per article) |
| Author, snippet, image and keywords in one table | ✅ | ❌ |
| Lists of publishers to keep or skip | ✅ | ❌ |
| Export to JSON, CSV or Excel | ✅ | ❌ |
| Scheduled daily runs | ✅ | ❌ |

It is a news scraper tool, not a full news monitoring software suite: you get the raw article data and decide where it goes.

#### Which sections are in the Google News topics list?

The Actor can read nine sections: Top stories, World, Nation, Business, Technology, Entertainment, Sports, Science and Health. **Nation** is the national news section of the country edition you picked (for example U.S. news for `US`). Each topic is read for the chosen country and language.

#### Why am I getting fewer results than expected?

- Check **Maximum articles**: the default is 10.
- On the Free plan, each run saves up to 10 articles.
- One Google News page shows about 100 articles for a search. With a higher **Maximum articles**, the Actor can find more for the same search; you can also add more search terms or date ranges.
- A short time period, a strict date range or **Only these publishers** removes articles.
- Repeated articles are removed automatically.
- Open the **Inputs** table: it shows the status and article count for each search term, topic or link.

#### Can I do a Google News search by date?

Yes. Use **Time period** for a rolling period, such as the past 7 days, or **From date** and **To date** for an exact range. Combine it with **Newest first** to get the latest articles at the top.

#### Do I need a Google account or cookies?

No. Google News Scraper reads public Google News pages. You don't need a Google account, login, cookies or an API key.

***

### 📧 Support and feedback

Found a bug or have a feature request? Please create an issue on the [Issues tab](https://apify.com/insights_data/google-news-scraper/issues/open). We keep improving Google News Scraper based on your feedback.

Need a **custom solution**, a new field or a news scraper for a different source? Contact us at hello.insights.data@gmail.com.

Built and maintained by [insights_data on Apify](https://apify.com/insights_data).

# Actor input Schema

## `urls` (type: `array`):

Google News search or topic links, one per line. Search links, topic links and the home page are understood. Each link is turned into a search or topic.

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

One search term per line, as you would type it in Google News. Quotes, OR, intitle: and -word work.

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

Headline sections to read in addition to the searches above.

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

Total number of articles to save across everything above. 0 means as many as can be found. Free plan users are limited to 10 articles per run; paid plans have no limit.

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

Two-letter country code of the Google News edition, for example US, GB or DE.

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

Language of the news, for example en, fr, de or pt-BR.

## `timePeriod` (type: `string`):

Only articles published within this period. A date range below takes priority.

## `dateFrom` (type: `string`):

First day to include, format YYYY-MM-DD.

## `dateTo` (type: `string`):

Last day to include (inclusive), format YYYY-MM-DD.

## `sort` (type: `string`):

Google's relevance order, or newest first.

## `includeSites` (type: `array`):

Keep only articles from these sites, for example bbc.com or reuters.com. Leave empty for all publishers.

## `excludeSites` (type: `array`):

Never return articles from these sites, for example pinterest.com.

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

Return the publisher's own article URL instead of the news.google.com link. Slower, but gives the real domain.

## `articleDetails` (type: `boolean`):

Open each article for its snippet, image, author, keywords, section and times. Some publishers do not allow this and those fields stay empty.

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

Requests start without a proxy. If Google refuses them, the run moves to a datacenter proxy and then to a residential proxy automatically.

## Actor input object example

```json
{
  "urls": [
    "https://news.google.com/search?q=Elon%20Musk"
  ],
  "maxItems": 10,
  "country": "US",
  "language": "en",
  "timePeriod": "any",
  "sort": "relevance",
  "resolveUrls": true,
  "articleDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Headline, publisher, date, snippet and image.

## `publishers` (type: `string`):

Who published each article.

## `article_details` (type: `string`):

Author, section, keywords and times read from the article page.

## `links` (type: `string`):

Publisher and Google News links.

## `run_info` (type: `string`):

Which search found the article, edition and collection time.

## `related` (type: `string`):

Related articles Google groups with each article.

## `sources` (type: `string`):

One row per search term, topic or link, with status and article count.

## `summary` (type: `string`):

Totals for the run.

# 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 = {
    "urls": [
        "https://news.google.com/search?q=Elon%20Musk"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("insights_data/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 = {
    "urls": ["https://news.google.com/search?q=Elon%20Musk"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("insights_data/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 '{
  "urls": [
    "https://news.google.com/search?q=Elon%20Musk"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call insights_data/google-news-scraper --silent --output-dataset

```

## MCP server setup

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