# Brand Mention Monitor (`arched_friend/brand-mention-monitor`) Actor

Track every news mention of your brand, your competitors or any topic. Returns the headline, publisher, link and date, and on scheduled runs gives you only the mentions that are new.

- **URL**: https://apify.com/arched\_friend/brand-mention-monitor.md
- **Developed by:** [Peach O](https://apify.com/arched_friend) (community)
- **Categories:** News, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 term checkeds

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?

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

## Brand Mention Monitor: Every Time You Are in the News

Watch what the press says about your brand, your competitors, or any topic you care about. Every run returns headlines with the publisher, link and date. Schedule it and each run gives you only what is new since yesterday.

Built for founders, PR teams and marketers who would rather find out from an alert than from a customer.

### How it works

```mermaid
flowchart LR
    A["Terms you watch<br/>your brand, rivals, topics"] --> B["News search"]
    B --> C["Headline, publisher,<br/>link, date"]
    C --> D{"Filters<br/>publisher, words, date"}
    D --> E{"Seen before?"}
    E -->|no| F[("New mention rows")]
    E -->|yes| G["Skipped"]
```

Each term is searched on its own, so a run watching you and three competitors comes back clearly separated by term rather than as one pile.

### Built for

- **Founders** catching coverage the day it publishes
- **PR teams** proving a campaign landed, and where
- **Competitor tracking** seeing who writes about your rivals and how often
- **Reputation work** spotting a bad story early enough to respond

### Input

```json
{
  "queries": ["Acme Corp", "Acme Robotics", "warehouse automation"],
  "freshnessDays": 7,
  "onlyNewMentions": true,
  "excludeDomains": ["prnewswire.com", "globenewswire.com"]
}
```

| Setting | What it does |
| --- | --- |
| `queries` | Brands, people or topics to watch |
| `matchExactPhrase` | Treats a two word brand as one phrase, on by default |
| `freshnessDays` | Limit to the last few days, ideal for a daily schedule |
| `onlyNewMentions` | Return only what appeared since the previous run |
| `includeDomains` / `excludeDomains` | Focus on real press, drop the wires |
| `titleContains` / `titleExcludes` | Narrow by words in the headline |

### Output

```json
{
  "query": "Acme Corp",
  "title": "Acme Corp raises $40m to expand warehouse robots",
  "source": "TechCrunch",
  "sourceUrl": "https://techcrunch.com",
  "snippet": "The company said the round will fund European expansion",
  "publishedAt": "2026-09-03T08:12:00.000Z",
  "url": "https://news.google.com/rss/articles/CBMi...",
  "guid": "CBMiK2h0dHBzOi8vdGVjaGNydW5jaC5jb20",
  "foundAt": "2026-09-04T09:50:11.402Z"
}
```

Filter on `source` or `sourceUrl` to separate real editorial coverage from syndicated reprints of the same story.

### Turn it into a morning alert

```json
{
  "queries": ["Acme Corp"],
  "freshnessDays": 1,
  "onlyNewMentions": true
}
```

Schedule that daily. The first run records what already exists, and every run after it returns only genuinely new coverage, which on a quiet day is nothing at all.

### Watch your competitors instead

```json
{
  "queries": ["Rival One", "Rival Two", "Rival Three"],
  "freshnessDays": 30,
  "excludeDomains": ["prnewswire.com"]
}
```

The run summary ranks which publishers cover each rival most, which tells you exactly who to pitch.

### Run it as an API

```bash
curl -X POST "https://api.apify.com/v2/acts/arched_friend~brand-mention-monitor/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["Acme Corp"],
    "freshnessDays": 7
  }'
```

### Pricing

You pay $0.01 for each term checked, however many mentions come back. A quiet day costs the same as a busy one, and never more.

| Watching 5 brands daily | Monthly cost |
| --- | --- |
| Checking by hand | roughly 10 hours |
| Media monitoring platforms | $100 to $1,000 per month |
| This Actor | $1.50 per month |

### Common questions

**Why do links point at news.google.com?** The feed publishes redirect links that resolve to the publisher. The real publisher is always in `source` and `sourceUrl`, which is what the domain filters use.

**Can I watch a topic rather than a brand?** Yes. Any search term works, so "warehouse automation" or a person's name is fine. Turn off `matchExactPhrase` to search the words loosely.

**Will I get the same story twice?** Repeats are removed inside a run, and with `onlyNewMentions` on, anything reported in an earlier run is dropped too.

### Related products

- **Google Reviews Monitor** for what customers say, alongside what the press says
- **App Store Review Tracker** and **Google Play Review Tracker** for app feedback
- **Hiring Signals Tracker** to spot a competitor scaling up before the news does
- **Website Lead Extractor** to find contact details for a publisher you want to pitch

# Actor input Schema

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

Brand names, competitor names, people or topics, one per line. Each is searched separately so you can tell the results apart.

## `matchExactPhrase` (type: `boolean`):

Wrap each term in quotes so a two word brand is matched as one phrase. Turn off to search the words loosely.

## `freshnessDays` (type: `integer`):

Limit results to the last few days. 0 returns whatever the feed holds. Set to 1 or 7 for daily or weekly monitoring.

## `maxItemsPerQuery` (type: `integer`):

Upper limit on how many mentions to return for each term.

## `onlyNewMentions` (type: `boolean`):

Remember every mention across runs and return only what appeared since last time. Turn this on for scheduled monitoring.

## `includeDomains` (type: `array`):

Keep only mentions from these domains, for example techcrunch.com. Subdomains are included.

## `excludeDomains` (type: `array`):

Drop mentions from these domains. Useful for filtering out aggregators and press release wires.

## `titleContains` (type: `array`):

Keep only mentions whose headline contains one of these words.

## `titleExcludes` (type: `array`):

Drop mentions whose headline contains one of these words.

## `since` (type: `string`):

A date such as 2026-08-01. Anything published before it is dropped.

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

Two letter language code for the news edition, for example en, de, fr.

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

Two letter country code for the news edition, for example US, GB, DE.

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

Optional. Useful when watching many terms on a frequent schedule.

## Actor input object example

```json
{
  "queries": [
    "Apify"
  ],
  "matchExactPhrase": true,
  "freshnessDays": 0,
  "maxItemsPerQuery": 100,
  "onlyNewMentions": false,
  "language": "en",
  "country": "US",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `mentions` (type: `string`):

One row per mention, with the headline, publisher, link, snippet and publish date.

## `runSummary` (type: `string`):

Per term mention counts, the publishers covering you most, and the date range of the coverage.

# 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": [
        "Apify"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("arched_friend/brand-mention-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": ["Apify"] }

# Run the Actor and wait for it to finish
run = client.actor("arched_friend/brand-mention-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": [
    "Apify"
  ]
}' |
apify call arched_friend/brand-mention-monitor --silent --output-dataset

```

## MCP server setup

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