# Google News Lite API (`johnvc/google-news-lite-api`) Actor

Scrape Google News headlines and snippets as structured JSON. Search many terms at once and filter by time range, country, and language. One row per article, de-duplicated. Pay per article with no setup fee. MCP-ready for Claude and AI agents.

- **URL**: https://apify.com/johnvc/google-news-lite-api.md
- **Developed by:** [John](https://apify.com/johnvc) (community)
- **Categories:** News, SEO tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.01 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Lite API

Fast, low-cost Google News monitoring. Send one or many search terms and get back the matching headlines and snippets as structured JSON, one row per article: title, link, source, snippet, date, and image. Filter by time range, country, and language. Pay per article, with no setup fee. MCP-ready so Claude and other AI agents can call it as a tool.

---

### 📋 What this API returns

One row per article. Each row carries:

| Field | Description |
|---|---|
| `searchTerm` | The search term this article matched. |
| `title` | The article headline. |
| `link` | Direct URL to the article. |
| `source` | The publisher name (for example BBC, Reuters, TechCrunch). |
| `snippet` | A short excerpt or summary of the article. |
| `date` | Relative publication date as shown by Google News (for example "2 hours ago"). |
| `imageUrl` | Thumbnail image URL, when one is available. |
| `position` | Rank of the article within the results for its search term. |
| `country`, `language`, `timeRange` | The targeting used for the search. |
| `fetchedAt` | ISO 8601 timestamp of when the row was produced. |

Results are de-duplicated by link within each search term.

---

### 🎯 Use cases

- **Media monitoring.** Track coverage of a brand, product, or person across thousands of publishers in one run.
- **PR and reputation tracking.** Watch how a story develops over the past hour, day, or week.
- **Competitive and market intelligence.** Monitor news about a market, technology, or topic as it breaks.
- **Sentiment and trend pipelines.** Feed clean headline and snippet text into an NLP or analytics workflow.
- **AI agent workflows.** Drive this API over MCP from Claude (see below) to pull fresh headlines in-conversation.

---

### ⚙️ Input examples

#### Monitor a single topic

```json
{
  "searchTerms": ["OpenAI"],
  "timeRange": "day"
}
````

#### Monitor several topics at once

```json
{
  "searchTerms": ["Apple Vision Pro", "OpenAI", "electric vehicles"],
  "timeRange": "week",
  "maxResultsPerSearch": 50
}
```

#### Country and language targeting

```json
{
  "searchTerms": ["inteligencia artificial"],
  "country": "es",
  "language": "es",
  "timeRange": "month"
}
```

Provide at least one term in `searchTerms`. Each term is searched separately and the API returns one row per article. `timeRange` accepts `hour`, `day`, `week`, `month`, `year`, or `any` (no time limit).

***

### 📤 Example output

```json
[
  {
    "result_type": "news_article",
    "searchTerm": "OpenAI",
    "position": 1,
    "title": "OpenAI announces new model with improved reasoning",
    "link": "https://www.example-news.com/openai-new-model",
    "source": "Example News",
    "snippet": "The company says the update brings significant gains on multi-step reasoning and coding tasks.",
    "date": "3 hours ago",
    "imageUrl": "https://www.example-news.com/img/openai.jpg",
    "country": "us",
    "language": "en",
    "timeRange": "day",
    "fetchedAt": "2026-05-29T12:00:00+00:00"
  },
  {
    "result_type": "news_article",
    "searchTerm": "OpenAI",
    "position": 2,
    "title": "What the latest release means for developers",
    "link": "https://www.example-tech.com/openai-developers",
    "source": "Example Tech",
    "snippet": "Developers get higher rate limits and a cheaper tier for high-volume workloads.",
    "date": "5 hours ago",
    "country": "us",
    "language": "en",
    "timeRange": "day",
    "fetchedAt": "2026-05-29T12:00:00+00:00"
  }
]
```

***

### 💰 Pricing (pay-per-event)

| Event | Price | When it fires |
|---|---|---|
| `article_processed` | $0.002 | Once per news article returned (one dataset row). |

**$0.002 per article works out to $2 per 1,000 articles.** There is no setup fee and no monthly subscription, so you pay only for the articles you actually get.

Examples:

- 100 articles costs **$0.20**.
- 1,000 articles costs **$2.00**.
- A search term that returns no articles costs **$0**.

***

### 🔌 Use this API from Claude (MCP)

This Actor is MCP-server-compatible, so [Claude Code](https://claude.ai/referral/uIlpa7nPLg) (free trial), [Claude Cowork](https://claude.ai/referral/uIlpa7nPLg) (free trial), Cursor, and other MCP clients can call it as a tool through Apify's hosted MCP server.

Add it with this Actor-specific URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/google-news-lite-api

Setup walkthrough:

https://www.youtube.com/watch?v=jREWahDGhJM

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

**New to Claude Code or Claude Cowork?** Start a free trial here: https://claude.ai/referral/uIlpa7nPLg

Then ask Claude:

> *"Use Google News Lite to get the latest headlines about 'OpenAI' from the past day, and list the sources."*

***

### 🚀 How to get started

1. Open the Actor and add one or more `searchTerms`.
2. Optionally set `timeRange`, `country`, `language`, and `maxResultsPerSearch`.
3. Run it and read the results from the dataset (JSON, CSV, Excel, or API).

[View on Apify Store](https://apify.com/johnvc/google-news-lite-api?fpr=9n7kx3)

**Prefer code?** A ready-to-run Python example, plus MCP setup guides for Claude and Cursor, lives on GitHub: [github.com/johnisanerd/Apify-Google-News-Lite-API](https://github.com/johnisanerd/Apify-Google-News-Lite-API)

***

### 🔎 Need more than headlines and snippets?

Google News Lite is built for fast, cheap, high-volume headline monitoring. It returns headlines and snippets, not full article bodies.

- For **advanced query control** (specific locations, Google domains, safe search, duplicate filtering, and deeper pagination), use the full [Google News API](https://apify.com/johnvc/googlenewsapi?fpr=9n7kx3).
- For **complete article text**, pair the `link` from each row with any article-content extractor.

***

### ❓ FAQ

**How do I search several topics in one run?**
Add multiple entries to `searchTerms`. Each term is searched separately and contributes its own rows, tagged with `searchTerm`.

**Why did a term come back with no articles?**
Some terms have no recent coverage in the chosen `timeRange`. Widen the range (for example from `day` to `week` or `any`), and that term will return a `no_results` row instead of articles.

**Can I get more than 100 articles per term?**
Each term returns up to 100 articles per run. To go deeper, run the term on its own or narrow it with a more specific query.

**Do empty searches cost anything?**
No. You are billed per article returned, so a term with no results costs nothing.

***

Last Updated: 2026.05.29

# Actor input Schema

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

Enter one or more search terms to fetch Google News results for. Each term is searched separately and the Actor returns one row per article. At least one term is required.

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

Limit results to how recently they were published, or choose 'any' for no time limit. Defaults to 'day'.

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

Set the two-letter country code for localized results (ISO 3166-1, e.g. 'us', 'gb', 'ca'). Defaults to 'us'.

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

Set the two-letter interface language code (ISO 639-1, e.g. 'en', 'es', 'fr'). Defaults to 'en'.

## `maxResultsPerSearch` (type: `integer`):

Set the maximum number of articles to return for each search term, from 1 to 100. Defaults to 100.

## Actor input object example

```json
{
  "searchTerms": [
    "Apple Vision Pro",
    "OpenAI"
  ],
  "timeRange": "day",
  "country": "us",
  "language": "en",
  "maxResultsPerSearch": 100
}
```

# Actor output Schema

## `allResults` (type: `string`):

Every dataset item from this run: article rows (result\_type='news\_article') plus any no\_results or error rows.

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

Tabular overview of every dataset item using the dataset schema's default view. Columns: type, search term, position, title, source, date, URL.

# 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": [
        "Apple Vision Pro",
        "OpenAI"
    ],
    "country": "us",
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnvc/google-news-lite-api").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": [
        "Apple Vision Pro",
        "OpenAI",
    ],
    "country": "us",
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("johnvc/google-news-lite-api").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 '{
  "searchTerms": [
    "Apple Vision Pro",
    "OpenAI"
  ],
  "country": "us",
  "language": "en"
}' |
apify call johnvc/google-news-lite-api --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google News Lite API",
        "description": "Scrape Google News headlines and snippets as structured JSON. Search many terms at once and filter by time range, country, and language. One row per article, de-duplicated. Pay per article with no setup fee. MCP-ready for Claude and AI agents.",
        "version": "0.0",
        "x-build-id": "RocUqV5GWSx2kOubO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/johnvc~google-news-lite-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-johnvc-google-news-lite-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/johnvc~google-news-lite-api/runs": {
            "post": {
                "operationId": "runs-sync-johnvc-google-news-lite-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/johnvc~google-news-lite-api/run-sync": {
            "post": {
                "operationId": "run-sync-johnvc-google-news-lite-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Enter one or more search terms to fetch Google News results for. Each term is searched separately and the Actor returns one row per article. At least one term is required.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "timeRange": {
                        "title": "Time Range",
                        "enum": [
                            "hour",
                            "day",
                            "week",
                            "month",
                            "year",
                            "any"
                        ],
                        "type": "string",
                        "description": "Limit results to how recently they were published, or choose 'any' for no time limit. Defaults to 'day'.",
                        "default": "day"
                    },
                    "country": {
                        "title": "Country Code",
                        "type": "string",
                        "description": "Set the two-letter country code for localized results (ISO 3166-1, e.g. 'us', 'gb', 'ca'). Defaults to 'us'.",
                        "default": "us"
                    },
                    "language": {
                        "title": "Language Code",
                        "type": "string",
                        "description": "Set the two-letter interface language code (ISO 639-1, e.g. 'en', 'es', 'fr'). Defaults to 'en'.",
                        "default": "en"
                    },
                    "maxResultsPerSearch": {
                        "title": "Max Results Per Search",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Set the maximum number of articles to return for each search term, from 1 to 100. Defaults to 100.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
