# News Brand Mentions Monitor: New Articles Only (`offerastudio/news-brand-mentions-monitor`) Actor

Track your brand, competitors, executives or any topic in the news. Searches Google News and GDELT, removes duplicates, resolves the publisher URL and returns only articles that are new since your last run. Ready for a daily Slack or e-mail digest.

- **URL**: https://apify.com/offerastudio/news-brand-mentions-monitor.md
- **Developed by:** [Offera Studio](https://apify.com/offerastudio) (community)
- **Categories:** News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 article returneds

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

### What does News Brand Mentions Monitor do?

**News Brand Mentions Monitor** is built for **PR and communications teams** that need to know what the press says about their **brand, competitors and executives** without reading the same headlines twice. You give it a few queries (`"Acme Corp"`, `"Jane Doe" CEO`, `electric trucks -toy`), it searches **Google News** and the **GDELT** worldwide news index, removes duplicates between the two, looks up the **real publisher URL** behind every Google link, and in **monitor mode** returns **only the articles that were not in your previous run**. Schedule it every morning, point an Apify integration or webhook at **Slack, e-mail, Google Sheets or your CRM**, and your team gets a short list of new mentions instead of a feed to scroll.

For every article you get:

- 📰 **title**, **publisher** and **publisher domain**
- 🕒 **published date** (UTC)
- 🔗 the **publisher's own URL** (`urlResolved: true`) rather than a Google redirect
- 🔎 which **query** found it, the **language**, the **country** and which **source** (`google-news`, `gdelt` or `both`)
- ✨ **`isNew`** in monitor mode, and a **snippet** when the source gives one

No API key, no proxy, no login.

### Who is it for?

- **PR and communications teams**: a morning digest of new coverage of the company, its products and its spokespeople.
- **Agencies**: one watch per client, each with its own **monitor name**, delivered to the client's Slack channel.
- **Competitive and market intelligence**: follow competitors, funding rounds, product launches or regulation topics.
- **Investor relations and crisis teams**: spot negative stories early and share the link with legal or leadership.

### How to use it

1. Click **Try for free**. The prefilled input searches two topics over the last 48 hours in English.
2. Replace **Queries** with your own: one per line. Use `"exact phrases"`, `OR` between alternatives and `-word` to exclude.
3. Choose **Sources** (default: Google News and GDELT) and the **time window** (`sinceHours`).
4. For a daily digest set **Mode** to `monitor`, give the watch a **Monitor name**, save the input as a **task** and add a **schedule**.
5. Add an **integration** (Slack, e-mail, Google Sheets, webhook) on the task so each run's new articles go where your team works.

### Input example

```json
{
    "queries": ["\"Acme Corp\" OR AcmeCorp", "\"Jane Doe\" CEO", "electric trucks -toy"],
    "languages": ["en", "de"],
    "countries": ["US", "DE"],
    "sinceHours": 24,
    "sources": "both",
    "mode": "monitor",
    "monitorName": "acme-daily",
    "maxResults": 200
}
```

### Output example

Real rows from a run on 7 October 2026 (shortened):

```json
[
    {
        "query": "\"OpenAI\"",
        "title": "OpenAI’s ChatGPT for Teens Poses ‘Unacceptable Risk,’ Nonprofit Says",
        "publisher": "WSJ",
        "publisherDomain": "wsj.com",
        "publishedAt": "2026-10-07T17:44:00.000Z",
        "url": "https://www.wsj.com/tech/ai/openais-chatgpt-for-teens-poses-unacceptable-risk-...",
        "urlResolved": true,
        "snippet": null,
        "language": "en",
        "country": "US",
        "source": "google-news",
        "gdeltTone": null,
        "isNew": null
    },
    {
        "query": "\"OpenAI\"",
        "title": "OpenAI Reports Early Results for Radisson Hotels ChatGPT Plugin",
        "publisher": "Unite.AI",
        "publisherDomain": "unite.ai",
        "publishedAt": "2026-10-07T17:37:05.000Z",
        "url": "https://www.unite.ai/openai-reports-early-results-for-radisson-hotels-...",
        "urlResolved": true,
        "source": "google-news"
    }
]
```

`gdeltTone` is filled when GDELT's answer includes a tone for the article. GDELT's article list does not always do so, so expect `null` most of the time. Rows with an `error` code (`rate-limited`, `api-error`, `invalid-input`, `no-results`) cost nothing. If one source is down you get a free error row for it and the other source still runs.

### How does monitor mode work?

In `monitor` mode the Actor keeps the identity of every article it returned in a **named key-value store** (named after your **Monitor name**). The next run with the same name skips those articles. Two articles count as the same when their normalized publisher URLs match **or** their title and publisher domain match, so a story syndicated on many sites by the same wire shows up once per publisher, while the same page found by Google and GDELT shows up once. The first run returns everything in the time window; later runs return only the new ones. Use `all` mode to get every article every time.

### How much does it cost?

This Actor uses **pay per event**:

| Event | Price |
| --- | --- |
| Article returned | **$0.001** per article |
| Duplicates, error rows and the "no results" row | **free** |

- A daily watch that finds 30 new articles costs **$0.03 per day**.
- Apify also charges a tiny standard start fee per run.
- Set **Maximum articles**, or **Maximum cost per run** in the run options, to cap the cost.

### Data sources and terms

- **Google News RSS search** (`news.google.com/rss/search`). Google's feed notice says the feed is "made available solely for the purpose of rendering Google News results within a personal feed reader for personal, non-commercial use". **Check that your use fits those terms**; the Actor sends a polite, spaced-out request per query, and you are responsible for how you use the results. Only headline, publisher, date and link are returned, never article text.
- **GDELT DOC 2.0 API** (`api.gdeltproject.org`). GDELT is open and free; it asks for **one request every 5 seconds**, which the Actor respects. Cite GDELT when you publish results.
- Article titles and links belong to their publishers. This Actor is **not affiliated with or endorsed by Google, GDELT or any publisher**.

### Limitations

- **Google News shows the most relevant ~100 articles per query**, not every article. GDELT adds breadth but its coverage and language detection vary.
- **Publisher URLs** are looked up through Google's own redirect page (two requests per article, at most 300 articles per run). If Google does not answer, the article keeps the Google link and `urlResolved: false`.
- GDELT's article list has **no per-article tone** in most answers; `gdeltTone` is then `null`.
- Time windows are applied on the publication date given by the source.
- Dates and relevance ranking come from the sources; syndicated copies on different domains are separate rows.

### FAQ

#### Can I get a Slack message with the new articles?

Yes. Save your input as a task in `monitor` mode, schedule it, and add the Slack integration (or a webhook to your own service) on the task. Each run's dataset holds only the new articles.

#### Why did the first monitor run return many articles?

Nothing was remembered yet, so everything in the time window is new. Later runs only return what appeared since.

#### Can I search in other languages?

Yes: set `languages` (e.g. `de`, `fr`, `es`) and `countries` (e.g. `DE`, `FR`). Google News is searched for each pair (at most 6), GDELT for each language.

#### How do I reset a monitor?

Use a new **Monitor name**, or delete the named key-value store `news-mentions-<name>` in the Console.

### More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

**Website audits**

- [Website Accessibility Checker: WCAG 2.2 & EAA](https://apify.com/offerastudio/website-accessibility-audit): accessibility issues with fixes, SEO basics and security headers.
- [Cookie & Tracker Audit: GDPR Consent Checker](https://apify.com/offerastudio/cookie-tracker-audit): cookies and tracking tags that load before consent.
- [AI Crawler Access Checker: robots.txt & llms.txt](https://apify.com/offerastudio/ai-crawler-access-audit): which AI crawlers a site allows, plus llms.txt.
- [Structured Data Validator: Schema & Rich Results](https://apify.com/offerastudio/structured-data-validator): JSON-LD and Microdata checked against Google's rich result rules.
- [Website Change Monitor: Diffs, Prices & Alerts](https://apify.com/offerastudio/website-change-monitor): get a row only when a page changes, with a clean diff.
- [Policy Change Monitor: Privacy & Terms Tracker](https://apify.com/offerastudio/policy-change-monitor): privacy policy and terms changes, classified clause by clause.
- [SaaS Pricing Monitor: Track Competitor Plans](https://apify.com/offerastudio/saas-pricing-monitor): competitor pricing plans as structured data, with price-change diffs.
- [Sitemap Change Monitor: New & Removed URLs](https://apify.com/offerastudio/sitemap-change-monitor): new, removed and changed URLs from a site's sitemaps.
- [Site SEO Crawler: Broken Links & On-Page Audit](https://apify.com/offerastudio/site-seo-crawler-audit): site-wide crawl for broken links, redirects and on-page SEO issues.
- [Website Tech Stack Detector: Bulk Lead Filters](https://apify.com/offerastudio/website-tech-stack-detector): technologies used by websites, with filters for lead lists.
- [Domain Availability & Expiry Checker (RDAP)](https://apify.com/offerastudio/domain-whois-availability): domain availability, registrar and expiry dates from RDAP.
- [Status Page SLA Monitor: Uptime & Incidents](https://apify.com/offerastudio/status-page-sla-monitor): SaaS vendor uptime, incidents and a monthly SLA table from public status pages.

**Company data and compliance**

- [Company Contact Finder: Emails, Phones & Socials](https://apify.com/offerastudio/company-contact-finder): contact details published on company websites.
- [UK New Companies Feed: Companies House Daily](https://apify.com/offerastudio/uk-new-companies-feed): newly incorporated UK companies with sector filters.
- [EU VAT Number Validator: Bulk VIES Checker](https://apify.com/offerastudio/eu-vat-number-validator): bulk VAT checks with name, address and consultation number.
- [LEI Corporate Tree: GLEIF Parents & Subsidiaries](https://apify.com/offerastudio/gleif-lei-corporate-tree): LEI lookup with parents, subsidiaries and a KYC summary.
- [UK Company Distress Watch: Insolvency Alerts](https://apify.com/offerastudio/uk-company-distress-watch): administrations, liquidations and winding-up petitions from The Gazette.
- [IBAN Validator: Bulk Check & Bank Lookup](https://apify.com/offerastudio/iban-bank-validator): IBAN format and checksum, plus bank name and BIC where open data exists.
- [Sanctions Screening: OFAC, EU, UN & UK Lists](https://apify.com/offerastudio/sanctions-screening): names screened against official sanctions lists, with match scores.
- [OSHA & EPA Violation Monitor: Fines by Company](https://apify.com/offerastudio/osha-epa-violation-monitor): US OSHA and EPA enforcement cases and penalties by company.
- [Email List Precheck: Syntax, MX & Disposable Check](https://apify.com/offerastudio/email-list-precheck): cheap email list hygiene before a real verification.
- [UK Company Officer Changes: Director & PSC Alerts](https://apify.com/offerastudio/uk-company-officer-changes): director, owner, address and status changes for a watchlist of UK companies.
- [FDA Warning Letters Monitor: By Company & Subject](https://apify.com/offerastudio/fda-warning-letters-monitor): FDA warning letters by company and subject, with cited regulations.
- [Supplier Risk Report: Sanctions, VAT & Insolvency](https://apify.com/offerastudio/supplier-risk-report): one risk row per supplier from eight official registers, with changes since last run.
- [Brand Impersonation Domain Monitor: Look-alikes](https://apify.com/offerastudio/brand-impersonation-domain-monitor): look-alike domains and certificates that imitate your brand, with a risk score.

**Media and AI**

- [Audio & Video Transcriber: Podcasts, SRT, Speakers](https://apify.com/offerastudio/audio-video-transcriber): audio, video, podcasts and social links to text, SRT and VTT.
- [Podcast Mention Alerts: Brand Mentions by Second](https://apify.com/offerastudio/podcast-mention-alerts): where your brand is said in new podcast episodes, with the exact second.
- [YouTube Channel Monitor: New Videos & Growth](https://apify.com/offerastudio/youtube-channel-monitor): new videos and view growth of the channels you watch.

**Market signals**

- [US WARN Layoff Notices: 12 States Daily Feed](https://apify.com/offerastudio/us-warn-layoff-notices): layoff and plant closure notices from official state sources.
- [US Product Recalls Monitor: FDA & CPSC Feed](https://apify.com/offerastudio/us-product-recalls-monitor): FDA and CPSC recalls in one feed, with severity.
- [EU Tenders Feed: TED Public Procurement Alerts](https://apify.com/offerastudio/eu-tender-feed): EU public tenders from TED with CPV, country and value filters.
- [Liquor License Openings: New Bars & Stores (US)](https://apify.com/offerastudio/liquor-license-openings): new US liquor licences from official state open data.
- [Clinical Trials Change Monitor: Status & Updates](https://apify.com/offerastudio/clinicaltrials-change-monitor): status, enrollment and results changes on ClinicalTrials.gov studies.
- [Career Site Jobs Monitor: ATS Jobs & New Roles](https://apify.com/offerastudio/career-site-jobs-monitor): open roles from company career sites, with new and closed roles since the last run.
- [App Reviews Monitor: App Store & Google Play](https://apify.com/offerastudio/app-store-reviews-monitor): app reviews from both stores, only new ones in monitor mode.
- [US Federal Contracts Feed: SAM.gov & USAspending](https://apify.com/offerastudio/us-federal-contracts-feed): SAM.gov contract opportunities with the buyer's award history.
- [Grants.gov Opportunities: US Federal Grants Feed](https://apify.com/offerastudio/grants-gov-opportunities): US federal grant opportunities by keyword, eligibility and agency.
- [Federal Register Monitor: US Rules & Notices Feed](https://apify.com/offerastudio/federal-register-monitor): new US rules, proposed rules and notices by agency or topic.
- [B2B Sales Trigger Feed: Hiring + Tech Leads](https://apify.com/offerastudio/b2b-sales-trigger-feed): companies hiring for a role and using (or not using) a technology, with contacts.
- [Local Business Leads: OpenStreetMap, No Website](https://apify.com/offerastudio/local-business-leads-osm): local businesses by city and category, including those with no website.
- [Solana Token Pair Monitor: New & Trending Pairs](https://apify.com/offerastudio/solana-token-pair-monitor): new and trending Solana pairs with liquidity, volume and safety flags.

### Feedback

Missing a source, a filter or a field? Open an issue on the **Issues** tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/offerastudio/news-brand-mentions-monitor/changelog.md

# Actor input Schema

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

What to look for, one query per line. Use "exact phrases" in quotes, OR between alternatives and a minus sign to exclude a word, e.g. "Acme Corp" OR AcmeCorp -jobs. Up to 50 queries.

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

Two-letter language codes, e.g. en, de, fr, es. Default: en. Google News is searched for every language and country pair (at most 6 pairs).

## `countries` (type: `array`):

Two-letter country codes of the Google News edition, e.g. US, GB, DE. Default: US.

## `sinceHours` (type: `integer`):

Only articles published within this many hours. Default 48, maximum 720 (30 days).

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

Google News RSS gives the most relevant headlines; GDELT adds wider worldwide coverage. Default: both.

## `mode` (type: `string`):

All: return every article found. Monitor: return only articles not returned in an earlier run with the same monitor name (the first run returns everything).

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

Names this watch (monitor mode). Runs with the same name share one memory of returned articles, kept in a named key-value store. Default: derived from your queries.

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

Stops after this many articles. Default 200, maximum 5,000.

## `resolvePublisherUrls` (type: `boolean`):

Google News links point to a Google redirect page. When on, the Actor looks up the real publisher URL for each returned Google article (two polite requests per article, at most 300 per run). Articles that cannot be resolved keep the Google link and urlResolved=false.

## Actor input object example

```json
{
  "queries": [
    "\"OpenAI\"",
    "quantum computing"
  ],
  "languages": [
    "en"
  ],
  "countries": [
    "US"
  ],
  "sinceHours": 48,
  "sources": "both",
  "mode": "all",
  "maxResults": 30,
  "resolvePublisherUrls": true
}
```

# Actor output Schema

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

No description

## `details` (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 = {
    "queries": [
        "\"OpenAI\"",
        "quantum computing"
    ],
    "languages": [
        "en"
    ],
    "countries": [
        "US"
    ],
    "sinceHours": 48,
    "sources": "both",
    "mode": "all",
    "maxResults": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("offerastudio/news-brand-mentions-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 = {
    "queries": [
        "\"OpenAI\"",
        "quantum computing",
    ],
    "languages": ["en"],
    "countries": ["US"],
    "sinceHours": 48,
    "sources": "both",
    "mode": "all",
    "maxResults": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("offerastudio/news-brand-mentions-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 '{
  "queries": [
    "\\"OpenAI\\"",
    "quantum computing"
  ],
  "languages": [
    "en"
  ],
  "countries": [
    "US"
  ],
  "sinceHours": 48,
  "sources": "both",
  "mode": "all",
  "maxResults": 30
}' |
apify call offerastudio/news-brand-mentions-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,offerastudio/news-brand-mentions-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/JqHQdAjcxY5CsjAcS/builds/sD5uPuiI3o4ssow9N/openapi.json
