# News Headlines Monitor: keyword news from 115+ publishers (`larkmoor/news-headlines-monitor`) Actor

Monitor news by keyword across 115+ major publishers in 20 countries (BBC, Guardian, NYT, CNBC, Times of India, Le Monde, Spiegel, ABC Australia...) from their official RSS feeds: headline, link, summary, date, source, image. Deduplicated, newest first, alert mode.

- **URL**: https://apify.com/larkmoor/news-headlines-monitor.md
- **Developed by:** [Larkmoor Data](https://apify.com/larkmoor) (community)
- **Categories:** News, Marketing
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.85 / 1,000 headlines

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

## News Headlines Monitor: keyword news from 115+ publishers in 20 countries

Track any topic, company, person, product or market across **115+ major news publishers** in **20 countries and regions** and get a clean, de-duplicated list of matching **headlines with link, summary, publication time, source and image**, newest first. Run it once for research, or schedule it every 15 minutes with **"only new since last run"** for news alerts in Slack, email or your CRM.

It reads each publisher's **own official RSS/Atom feed**, the format news sites publish so that readers and apps can follow their headlines. No search-engine scraping, no CAPTCHAs, no proxies, no paywall bypass. That makes it fast (a 100-feed run finishes in seconds), cheap and steady: **$1 per 1,000 headlines**.

### What does it return?

One row per headline:

- `title`, `link` (tracking parameters removed), `summary` (the publisher's own teaser, up to 500 characters)
- `publishedAt` (UTC), `source`, `sourceFeed`, `region`, `language`
- `author`, `categories` (the publisher's section tags), `image` (thumbnail when the feed carries one)
- `matchedKeywords`: which of your keywords the headline matched
- `id`: a stable hash of the link, handy for de-duplication in your own database

The same story syndicated by several feeds is returned once (same link or same headline).

### Sources

**United States**: The New York Times, CBS News, ABC News, NBC News, Fox News, CNBC, Politico, The Hill, Los Angeles Times, Business Insider, Fortune, MarketWatch, Axios; **United Kingdom**: BBC News, The Guardian (UK), The Independent, Daily Mail, Sky News, Financial Times, The Economist, The Sun, Mirror, Evening Standard; **World (international)**: Al Jazeera, France 24 (EN), DW (EN), Euronews, UN News, The Guardian (World), BBC World, NYT World; **Tech, science & crypto**: TechCrunch, The Verge, Wired, Ars Technica, Engadget, ZDNet, MIT Technology Review, The Register, 9to5Mac, Hacker News (front page), CoinDesk, Cointelegraph, Decrypt, ScienceDaily; **India**: Times of India, The Hindu, Hindustan Times, NDTV, Economic Times, Mint, India Today; **Indonesia**: Antara, CNN Indonesia, Republika, CNBC Indonesia, Okezone, JPNN, Sindonews; **Nigeria**: Punch, Vanguard, Premium Times, Daily Post, Channels TV; **Australia**: ABC News Australia, Sydney Morning Herald, The Guardian Australia, The Age; **Canada**: CBC News, Global News; **Philippines**: Philstar, Rappler, Inquirer, GMA News; **South Africa**: Daily Maverick; **Kenya**: The Standard, Capital FM Kenya; **Pakistan**: Dawn, Express Tribune, Geo News; **Germany**: tagesschau, Der Spiegel, FAZ, Die Zeit, Süddeutsche Zeitung, Die Welt, n-tv, Handelsblatt; **France**: Le Monde, Le Figaro, franceinfo, Libération, 20 Minutes, France 24 (FR); **Spain**: El País, El Mundo, ABC España, 20minutos, Europa Press, La Vanguardia, El Confidencial; **Italy**: ANSA, la Repubblica, Il Sole 24 Ore; **Brazil**: g1, Folha de S.Paulo, Agência Brasil, CNN Brasil, Poder360; **Mexico**: La Jornada, El Universal, Expansión, El Financiero; **Japan**: The Japan Times, Japan Today.

Add any other public RSS/Atom feed with **Extra RSS/Atom feeds** (trade press, local papers, regulators, company newsrooms) and it is searched together with the built-in list.

### Who is it for?

- **PR and communications teams**: brand and competitor mentions across the press, every 15 minutes.
- **Traders, analysts and investors**: headlines that mention a ticker, a company or a commodity, as they appear.
- **Marketers and content teams**: what is being written about your category today.
- **Researchers and data scientists**: building a news dataset by topic, country or language.
- **AI agents and LLM apps**: a fresh, structured news feed to ground answers in today's headlines.

### Input

```json
{
  "keywords": ["artificial intelligence", "OpenAI", "Nvidia"],
  "excludeKeywords": ["sponsored"],
  "regions": ["US", "UK", "WORLD", "TECH"],
  "maxAgeHours": 24,
  "onlyNewSinceLastRun": true,
  "monitorName": "ai-news"
}
```

- **Keywords**: any of them (or all of them with **Require all keywords**); whole-word, case-insensitive; headline and summary.
- **Exclude keywords**, **Countries / regions**, **Only these sources**, **Extra feeds**, **Languages**.
- **Published in the last N hours** (feeds usually carry the last one to three days).
- **Only headlines not seen in earlier runs** + **Monitor name**: alert mode.

### Output example

```json
{
  "title": "AI stocks hammered by midterm shock as data center buildout becomes a 'war of attrition'",
  "link": "https://www.cnbc.com/2026/11/06/ai-data-center-midterms-selloff.html",
  "summary": "The election rout landed on an AI trade already under pressure from high interest rates, heavy capital spending and questions about returns.",
  "publishedAt": "2026-11-06T12:04:17Z",
  "source": "CNBC",
  "region": "US",
  "language": "en",
  "image": null,
  "matchedKeywords": [
    "election",
    "AI"
  ]
}
```

### How much does it cost?

**$1 per 1,000 headlines** returned (less on higher Apify plans), plus a one-time $0.001 start fee per run.

- **Brand monitor every 30 minutes, about 20 new mentions a day**: 600 headlines a month = **$0.60 a month** plus about $1.45 in start fees.
- **Daily research pull of every headline from the US, UK and World groups (about 1,500)**: **$1.50 a day**.
- **One-off pull of all European headlines (DE, FR, ES, IT) for a day (about 1,200)**: **$1.20**.

Runs need 256 MB and finish in under a minute.

### Tips

- Use specific phrases ("interest rates", "Tesla Cybertruck") for clean results; single short words like "AI" also match headlines such as "AI stocks".
- Combine **Only new since last run** with an Apify schedule and the Slack, email or webhook integration for real-time alerts.
- For the full article text of a headline, open the link (or use an article extractor on the links you are allowed to process).

### Integrations and API

Call it from the Apify API, Python or JavaScript client, Make, Zapier or n8n, schedule it, and send new headlines to Slack, Teams, Google Sheets, Airtable, a webhook or your database. The dataset can also be downloaded as CSV, Excel, JSON or RSS.

### Is it legal?

Yes. Publishers offer RSS feeds precisely so that readers and apps can follow their headlines. The actor reads only those public feeds, identifies itself as an RSS reader, returns the headline, the publisher's own short teaser and a link back to the publisher, and never bypasses paywalls or copies full articles. If you republish headlines, keep the source and the link.

### FAQ

**Is this a Google News scraper?** No. It does not touch Google; it reads the publishers directly. You get fewer sources than a search engine, but no blocking, no CAPTCHAs and no missing runs.

**Why is a well-known paper missing?** Some publishers no longer offer a public feed or block feed readers. Tell us a feed URL and we will add it, or pass it in Extra feeds.

**How fresh is it?** As fresh as the publishers' feeds: most update within minutes of publishing.

**Can I get older news?** Feeds keep the latest items only (typically one to three days). Run it on a schedule to build a history.

### Changelog

- 0.1 (November 2026): first release with 115 publisher feeds in 20 countries and regions, keyword/exclude/language filters, cross-source de-duplication and alert mode.

### Support

Want a country, a publisher or a field added? Open an issue on the Issues tab.

# Actor input Schema

## `keywords` (type: `array`):

Return headlines that mention any of these words or phrases (title and summary; whole words, case-insensitive). Put a phrase in quotes or just type it. Empty = all headlines.

## `matchAllKeywords` (type: `boolean`):

Only keep headlines that mention every keyword.

## `excludeKeywords` (type: `array`):

Drop headlines that mention any of these words (e.g. sponsored, horoscope).

## `regions` (type: `array`):

Which publisher groups to read. Default: United States, United Kingdom and World.

## `sources` (type: `array`):

Optional: keep only sources whose name contains one of these (e.g. BBC, Guardian, CNBC).

## `extraFeeds` (type: `array`):

Add any other public RSS or Atom feed URLs (trade press, local news, company blogs) to the same monitor.

## `languages` (type: `array`):

Optional two-letter codes (en, de, fr, es, it, pt, id). Empty = all.

## `searchInSummary` (type: `boolean`):

Match keywords in the feed summary as well as the headline.

## `maxAgeHours` (type: `integer`):

Only headlines published in this window. Default: 24. Most feeds carry the last 1-3 days.

## `onlyNewSinceLastRun` (type: `boolean`):

For alerts: remember returned headlines in a named store and return only new ones next time. Schedule the actor every 15-60 minutes.

## `monitorName` (type: `string`):

Name of the memory used by 'only new' mode (letters, digits, dashes). Use one name per monitor.

## `maxResults` (type: `integer`):

Stop after this many headlines. Default: 1000.

## Actor input object example

```json
{
  "keywords": [
    "artificial intelligence",
    "election"
  ],
  "matchAllKeywords": false,
  "regions": [
    "US",
    "UK",
    "WORLD",
    "TECH"
  ],
  "searchInSummary": true,
  "maxAgeHours": 24,
  "onlyNewSinceLastRun": false,
  "monitorName": "default",
  "maxResults": 1000
}
```

# Actor output Schema

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

All matched headlines as JSON items in the run's default dataset; also downloadable as CSV/Excel/RSS.

# 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 = {
    "keywords": [
        "artificial intelligence",
        "election"
    ],
    "regions": [
        "US",
        "UK",
        "WORLD",
        "TECH"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("larkmoor/news-headlines-monitor").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 = {
    "keywords": [
        "artificial intelligence",
        "election",
    ],
    "regions": [
        "US",
        "UK",
        "WORLD",
        "TECH",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("larkmoor/news-headlines-monitor").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 '{
  "keywords": [
    "artificial intelligence",
    "election"
  ],
  "regions": [
    "US",
    "UK",
    "WORLD",
    "TECH"
  ]
}' |
apify call larkmoor/news-headlines-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,larkmoor/news-headlines-monitor"
        }
    }
}
```

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/rYrKkPxsEyxBASLt4/builds/eDjM60X5f8AoHhQUf/openapi.json
