# Google News Scraper - Headlines & Real Article URLs (`dataspace/google-news-scraper`) Actor

Scrape Google News by keyword, topic or URL: headline, source, publish time and the real article URL (not the Google redirect). Any country and language, date ranges and thousands of articles via day-by-day search.

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

## Pricing

from $2.50 / 1,000 articles

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

## Google News Scraper

Scrape **Google News** by keyword, topic or any Google News page and get, for every article: **headline, source, publish time, the real article URL** (the publisher's link, not Google's redirect) **plus the article's image and short description**. Works for **40+ countries and languages**, supports Google News search operators, and gets **thousands of articles** per search by searching a date range day by day.

Fast and reliable: no browser, no API key, no login. Real article URLs are included in the price.

### What can you do with it?

- **Media monitoring & PR** — track every mention of your brand, competitors or executives.
- **Market & investment research** — follow companies, sectors and topics; feed news into dashboards or trading signals.
- **AI & RAG pipelines** — collect fresh article URLs for summarization, sentiment analysis or LLM agents.
- **Content curation & newsletters** — get the latest headlines of any topic in any country.
- **Research** — build news datasets for a time period with exact date ranges.

### What data do you get?

One result per article:

| Field | Example |
|---|---|
| `title` | NEWSLETTER: (Car) show time |
| `source`, `sourceUrl` | Reuters, https://www.reuters.com |
| `publishedAt` | 2026-10-06T16:00:00Z (UTC) |
| `url` | https://www.reuters.com/business/autos-transportation/car-show-time-2026-10-06/ |
| `description`, `imageUrl` | the article's link preview: short summary and main image (as shown when the link is shared on social media) |
| `googleNewsUrl` | the original Google News link |
| `query`, `queryType`, `position` | the search term, topic or URL, and the article's position |
| `edition` | US:en |

#### Example output (real result)

```json
{
  "query": "nvidia earnings",
  "queryType": "search",
  "position": 8,
  "title": "Nvidia Is About 4% From Becoming the First $6 Trillion Company. History Says the Milestone Itself Tells You Little.",
  "source": "The Motley Fool",
  "sourceUrl": "https://www.fool.com",
  "publishedAt": "2026-10-07T04:21:00Z",
  "url": "https://www.fool.com/investing/2026/10/06/nvidia-is-about-4-from-becoming-the-first-usd6-trillion-company-history-says-the-milestone-itself-tells-you-little/",
  "description": "Five past trillion-dollar milestones were followed by five really different years. What separated the good ones from the bad?",
  "imageUrl": "https://g.foolcdn.com/image/?url=https%3A%2F%2Fcdn.content.foolcdn.com%2Fimages%2F1umn9qeh%2Fproduction%2F7766ceb7d7312b2b4cba9b8c84b947066f404457-2000x1200.png%3Fw%3D800%26q%3D75%26fit%3Dmax%26auto%3Dformat&w=1200&op=resize",
  "edition": "US:en"
}
```

### How to use

1. Add **search terms** (operators work: `"exact phrase"`, `OR`, `-exclude`, `site:reuters.com`, `intitle:tesla`), and/or pick **topics** (Top stories, Business, Technology, …), and/or paste **Google News URLs** of any topic or publication page.
2. Choose a **time range** (past hour … past year) or exact **dates**.
3. Pick the **country and language** edition.
4. Click **Start** and export as JSON, CSV, Excel, or via API.

#### Example input

```json
{
  "searchTerms": ["nvidia", "\"electric vehicles\" -tesla"],
  "topics": ["BUSINESS", "TECHNOLOGY"],
  "timeRange": "7d",
  "maxArticlesPerQuery": 500,
  "edition": "GB:en"
}
```

### Getting more than 100 articles

Google News returns at most 100 articles per request. When you ask for more and set a **time range** or **dates**, the Actor automatically searches **day by day** (up to 100 articles per day) and removes duplicates — in our tests, 500 articles for a 7-day search in under a minute.

### Pricing

Pay per result: **$2.50 per 1,000 articles**, plus a tiny start fee of $0.00005 per run. Platform usage (compute and proxies) is included — you are not charged anything else. Real article URLs are included.

| Example | Cost |
|---|---|
| 500 articles | $1.25 |
| daily monitoring of 5 topics (~3,000 articles/month) | ~$7.50 |

Set a maximum cost for a run and the Actor stops when it is reached.

### Tips

- Topic feeds (Top stories, Business, …) contain the current headlines — usually 30–70 articles each.
- For daily monitoring, schedule the Actor with time range **Past 24 hours**.
- Switch off *Get the real article URL* if you only need headlines — the run is even faster.

### FAQ

**Does it download the full article text?** No. It returns headlines, sources, publish times, links and the public link preview (short summary and image), so you can open or process articles yourself in line with each publisher's terms. Author names are not collected.

**Can I use it from my app or AI agent?** Yes — through the Apify API, Python/JavaScript clients, Zapier, Make, or as a tool for AI agents via Apify MCP.

**Missing a feature?** Open an issue on the Issues tab — feedback is welcome.

### More scrapers by dataspace

- [Google Trends Scraper](https://apify.com/dataspace/google-trends-scraper) — search interest and what is trending right now
- [YouTube Scraper](https://apify.com/dataspace/youtube-video-channel-scraper) — videos, channels and search results
- [Google Maps Scraper](https://apify.com/dataspace/google-maps-scraper) — local businesses with phones and websites

**Like it?** If this Actor saves you time, please leave a review on the Reviews tab — it helps others find it. Found a problem? Open an issue and it will be fixed quickly.

### Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Google LLC or any news publisher. Google and Google News are trademarks of their respective owners and are mentioned only to describe the publicly available data source. It collects only publicly available headlines, source names, publish times and links from Google News feeds, plus each article's public link preview (summary and image URL) — without logging in, without solving CAPTCHAs, without collecting personal data and without copying article content. You are responsible for making sure that your use of the data complies with applicable laws (including copyright and data protection laws such as GDPR) and with the terms of the source websites.

# Actor input Schema

## `searchTerms` (type: `array`):

One search per line. Google News search operators work: <code>"exact phrase"</code>, <code>OR</code>, <code>-exclude</code>, <code>site:reuters.com</code>, <code>intitle:nvidia</code>.

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

Headlines of Google News sections for the selected edition.

## `googleNewsUrls` (type: `array`):

Optional. Paste any Google News topic, section or publication page URL (e.g. a 'Technology > Artificial intelligence' page).

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

Only articles published in this period (for search terms).

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

Optional exact date range for search terms (overrides Time range).

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

End of the date range (inclusive).

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

Google News returns up to 100 articles per request. For more, set a time range or dates — the Actor then searches day by day (up to 100 articles per day).

## `edition` (type: `string`):

Google News edition: decides the language and which local sources are shown.

## `resolveArticleUrls` (type: `boolean`):

Turns Google News redirect links into the publisher's real article URL (e.g. https://www.reuters.com/...). Included in the price.

## `includeArticleDetails` (type: `boolean`):

Reads the article's public link preview (the same image and summary that social networks show when the link is shared). The article text is not collected. Needs <i>Resolve article URLs</i>.

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

Requests switch to a fresh proxy IP automatically if Google rate-limits them.

## Actor input object example

```json
{
  "searchTerms": [
    "artificial intelligence"
  ],
  "timeRange": "any",
  "maxArticlesPerQuery": 50,
  "edition": "US:en",
  "resolveArticleUrls": true,
  "includeArticleDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

One item per news article: headline, source, publish time and the real article URL.

## `allFields` (type: `string`):

Every article with all fields, including the Google News link and source website.

# 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 = {
    "searchTerms": [
        "artificial intelligence"
    ],
    "maxArticlesPerQuery": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

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