# Google News Scraper \[only $0.7/1K] (`lofomachines/google-news-scraper`) Actor

Scrape Google News articles for any search query at scale. Get position, title, URL, source, date and snippet for up to 5,000 results per query, in any country and language, with time-based filtering. Supports bulk queries. Fast, reliable and cost-efficient.

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

## Pricing

from $0.50 / 1,000 news articles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 — Fast & Affordable News Search API

Scrape **Google News search results** at scale and get clean, structured data in seconds: **position, title, URL, source, publication date and snippet** for every article. Run one query or thousands in bulk, target **any country and language**, filter by publication time, and export everything to **JSON, CSV or Excel** — or pipe it straight into your app via API.

No browser setup, no proxies to manage, no CAPTCHAs to solve. Just enter your search queries and get news articles.

### Features

- 📰 **Scrape news articles** based on your search query — headlines, links, sources, dates, snippets, and images.
- 🔢 **Retrieve up to 5,000 results per run** — batch hundreds of queries in a single run, each processed in parallel.
- 🌐 **Support for multiple countries and languages** — localize with `gl`/`hl` and restrict results with `lr`/`cr`.
- ⏳ **Time-based filtering options** — past hour, day, week, month, or year. Perfect for breaking-news monitoring.
- 🖼️ **Full article enrichment** — every result includes the real publisher URL, the article's description, and its main image, extracted from the article page itself.
- ⚡ **Fast** — all articles are fetched in parallel; results start streaming into your dataset within seconds.
- 💸 **Cost-efficient** — a lightweight HTTP engine keeps compute usage minimal, so large query lists stay cheap.
- 📦 **Clean output** — a simple, stable schema (`position`, `title`, `url`, `source`, `publishedAt`, `snippet`, `image`, `query`) that plugs directly into spreadsheets, BI tools, and LLM pipelines.

### Use cases

#### Brand & reputation monitoring

Run your brand name with the *Past 24 hours* filter on a schedule and get alerted the moment new articles, reviews, or press mentions appear in Google News and highlight sentiment.

#### Media monitoring & PR

Track press coverage for your company, your competitors, or your clients across countries and languages. Compare share of voice and spot trending narratives early.

#### AI, LLM & RAG pipelines

Feed fresh, real-world news into your AI agents, chatbots, and retrieval-augmented generation (RAG) systems. The clean JSON output is LLM-ready — no parsing required.

#### Financial & market intelligence

Monitor news about stocks, industries, commodities, or markets. Combine bulk queries (one per ticker or company) with time filters for near-real-time signal feeds.

#### Academic & trend research

Collect large news corpora on any topic, filtered by country, language, and time range — ready for analysis in one run.

#### Competitor tracking

Follow product launches, funding rounds, and announcements from competitors across every market you operate in.

### Input

| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | Array | Yes | Your search term(s). Supports **bulk queries** — enter 1–1000 search terms, one per line. |
| `maxItems` | Integer | No | Maximum number of results to collect per query (**100–5000**). Default `100`. |
| `gl` | String | No | Google country code (e.g. `us` for United States). Default `us`. |
| `hl` | String | No | Interface language (e.g. `en` for English). Default `en`. |
| `lr` | String | No | Language of search results (e.g. `lang_en` for English). Empty = all languages. |
| `cr` | String | No | Country restriction for search results (e.g. `countryUS`). Empty = all countries. |
| `filter` | String | No | Whether to filter similar results (`0` or `1`). `1` removes re-published articles sharing the same headline. Default `1`. |
| `timeRange` | String | No | Time filter: `hour`, `day`, `week`, `month` (rolling 30 days), or `year`. Default: any time. |

#### Example input

```json
{
    "query": ["artificial intelligence", "climate change"],
    "maxItems": 100,
    "gl": "us",
    "hl": "en",
    "lr": "lang_en",
    "cr": "countryUS",
    "filter": "1",
    "timeRange": "day"
}
```

### Output

Every news article becomes one dataset item. Fields that cannot be resolved are `null` — you never get Google redirect links or empty strings:

```json
[
  {
    "rank": 1,
    "position": 1,
    "title": "AI breakthrough promises faster drug discovery",
    "url": "https://www.example-news.com/ai-drug-discovery",
    "domain": "example-news.com",
    "source": "Example News",
    "publishedAt": "2026-07-16T07:30:00.000Z",
    "snippet": "Researchers announced a new AI model that can predict protein interactions with unprecedented accuracy, cutting early-stage drug discovery time...",
    "image": "https://www.example-news.com/images/ai-drug-discovery-hero.jpg",
    "favicon": "https://www.google.com/s2/favicons?domain=example-news.com&sz=64",
    "keyword": "artificial intelligence",
    "query": "artificial intelligence",
    "gl": "us",
    "hl": "en"
  },
  {
    "rank": 2,
    "position": 2,
    "title": "Tech giants race to build next-generation AI assistants",
    "url": "https://www.example-tech.com/ai-assistants-race",
    "domain": "example-tech.com",
    "source": "Example Tech",
    "publishedAt": "2026-07-16T05:12:00.000Z",
    "snippet": "The competition to dominate the AI assistant market intensified this week as major technology companies unveiled new models...",
    "image": "https://www.example-tech.com/media/ai-assistants.png",
    "favicon": "https://www.google.com/s2/favicons?domain=example-tech.com&sz=64",
    "keyword": "artificial intelligence",
    "query": "artificial intelligence",
    "gl": "us",
    "hl": "en"
  }
]
```

Download your data as **JSON, CSV, Excel, XML or RSS** from the run's dataset, or fetch it programmatically via the [Apify API](https://docs.apify.com/api/v2).

### How to use it

1. Click **Try for free** / **Start** on this page.
2. Enter your search queries (one per line — bulk queries supported).
3. Optionally set country (`gl`), language (`hl`), result language (`lr`), country restriction (`cr`), duplicate filtering (`filter`), results count, and time range.
4. Run it and download or connect your data.

You can also run it headlessly via the **Apify API**, the **Apify CLI**, or the scheduler for recurring jobs (hourly news monitoring, daily press reviews, and so on).

### Integrations

Connect this Actor to 100+ apps and services:

- **[n8n](https://docs.apify.com/platform/integrations/n8n)** — trigger news searches from any workflow and route results to databases, sheets, or Slack.
- **[Make](https://docs.apify.com/platform/integrations/make)** — build no-code news monitoring scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — send new articles to Google Sheets, Airtable, email, and more.
- **Webhooks & API** — get notified when a run finishes and pull the dataset into your own stack.
- **MCP / AI agents** — expose this Actor as a tool to Claude, GPT and other agents via the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp).

### FAQ

**Is it legal to scrape Google News results?**
This Actor only collects publicly available information shown on news search result pages. It doesn't extract private or personal data. Always make sure your use of the data complies with applicable laws and regulations in your jurisdiction.

**How many results can I get per query?**
You can request up to 5,000 per query. Note that Google itself rarely serves more than a few hundred news results for any single query — narrow queries and time filters help you collect more total articles.

**Can I use advanced search operators?**
Yes — `site:`, `intitle:`, quotes for exact match, `-` to exclude terms, and any other operator Google supports.

**Can I schedule recurring runs?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run it hourly, daily, or weekly — ideal for breaking-news alerts and brand monitoring.

**Do I need proxies or an API key?**
No. Everything is handled for you on the Apify platform.

### Related Actors you'll love

👉 **[Discover all my Apify Actors](https://apify.com/lofomachines)** for more ready-to-use automation and data tools.

- 🔮 [Google Search Autocomplete Scraper](https://apify.com/lofomachines/google-search-autocomplete-cheaper-faster-reliable) — extract Google autocomplete suggestions with position and relevance metadata.
- 🧨 [Keyword Shitter — Autocomplete Keyword Scraper](https://apify.com/lofomachines/keyword-shitter-autocomplete-scraper) — turn one seed keyword into thousands of long-tail keyword ideas from Google and YouTube.
- 🇨🇳 [Baidu Search Scraper (百度搜索结果采集器)](https://apify.com/lofomachines/baidu-scraper) — clean SERP data for China's biggest search engine.
- 🤖 [GEO Audit — AI Search Optimization Checker](https://apify.com/lofomachines/geo-technical-audit) — check how visible your pages are to AI search engines and get actionable fixes.
- 🔗 [Website URL Extractor](https://apify.com/lofomachines/urls-extractor) — extract every URL from any website, perfect follow-up for the publishers you discover in the news.

***

Built for speed, scale, and clean data. If this Actor saves you time, a ⭐ review helps a lot — and if you need a custom feature, open an issue on the Actor page.

# Actor input Schema

## `query` (type: `array`):

Enter 1–1000 search terms, one per line. Each query is scraped in parallel. Google operators such as <code>site:</code>, quotes, and minus terms are supported.

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

Maximum number of news articles to collect for each query (100–5000). Google rarely serves more than a few hundred news results for a single query; use narrower queries or time filters to gather more.

## `gl` (type: `string`):

Google country code used to localize results, e.g. <code>us</code> for United States. The correct Google domain is selected automatically.

## `hl` (type: `string`):

Google interface language, e.g. <code>en</code> for English.

## `lr` (type: `string`):

Restrict results to a specific language, e.g. <code>lang\_en</code> for English. Leave empty for all languages.

## `cr` (type: `string`):

Restrict results to documents from a specific country, e.g. <code>countryUS</code>. Leave empty for all countries.

## `filter` (type: `string`):

Whether to filter similar results. <code>1</code> removes re-published articles that share the same headline, <code>0</code> returns everything.

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

Optionally focus results on recently published articles. Past month is a rolling 30-day window.

## `maxConcurrency` (type: `integer`):

Maximum simultaneous HTTP requests across all queries.

## Actor input object example

```json
{
  "query": [
    "artificial intelligence",
    "climate change"
  ],
  "maxItems": 100,
  "gl": "us",
  "hl": "en",
  "filter": "1",
  "timeRange": "anytime",
  "maxConcurrency": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "query": [
        "artificial intelligence",
        "climate change"
    ],
    "maxItems": 100
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

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