# Brand Monitoring — Mentions from News, HN, Bluesky & Reddit (`intelscrape/brand-mentions-monitor`) Actor

Brand Monitoring: track every new mention of your brand, product, competitor or keyword across Google News, Hacker News, Bluesky, Reddit and Mastodon in one run, deduplicated, with date filters, exclude words, engagement and sentiment. Schedule it for alerts. No API key. Pay per mention.

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

## Pricing

Pay per event

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

## Brand Monitoring — Mentions from News, HN, Bluesky & Reddit

![Brand Monitoring — Mentions from News, HN, Bluesky & Reddit](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/brand-mentions-monitor-banner.png)

🇨🇳 **品牌监测**：一次运行即可追踪品牌、产品、竞争对手或关键词在 Google 新闻、Hacker News、Bluesky、Reddit 和 Mastodon 上的最新提及，自动去重，支持日期过滤、排除词、互动数据和情感分析。可定时运行实现提醒。无需 API 密钥，按提及付费。

🇸🇬 **Pemantauan Jenama**: jejak setiap sebutan baharu jenama, produk atau pesaing anda di Google News, Hacker News, Bluesky, Reddit dan Mastodon dalam satu larian, dengan sentimen. Tiada kunci API.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%241%20per%201K%20mentions-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20mention-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![sources](https://img.shields.io/badge/sources-5-orange)

**One run, five sources: news, Hacker News, Bluesky, Reddit and Mastodon mentions of any brand or keyword, deduplicated, with engagement and sentiment.**

> **Honest coverage & billing:** X/Twitter, Instagram, Facebook and LinkedIn are not covered (login required). You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is Brand Monitoring?

Brand monitoring tools usually cost hundreds of dollars a month and lock you into their dashboards. Most teams only need one thing: a reliable list of new mentions, every day, from the places that matter, in a format they can send to Slack, a spreadsheet or an AI. **Brand Monitoring** searches Google News, Hacker News, Bluesky, Reddit and Mastodon for each of your keywords, removes duplicates, filters by date and exclude words, tags sentiment and hands you one clean table, pay-per-mention, no subscription.

### What does it do?

- **Five sources**: Google News (any edition), Hacker News stories and comments, Bluesky posts, Reddit posts and Mastodon hashtags
- **Exact-phrase search** for multi-word brands, plus exclude words to drop homonyms
- **Time window**: only mentions from the last N days; schedule for continuous monitoring
- **Engagement**: points and comments (HN), likes, reposts and replies (Bluesky), favourites and boosts (Mastodon), subreddit (Reddit)
- **Sentiment (on by default)**: positive / negative / neutral label and score
- **Clean, deduplicated rows** with source, title, text, author or outlet, date and link

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **PR & comms**: catch press coverage and social chatter the same day
- **Founders & marketers**: see who talks about your launch and join the conversation
- **Competitive intelligence**: track competitor news and complaints
- **Customer support**: spot public complaints and outages early
- **Investors & analysts**: monitor portfolio companies
- **AI agents**: daily digest of brand mentions summarised by an LLM

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~brand-mentions-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["Apify"], "sources": ["googleNews", "hackerNews", "bluesky", "reddit"], "sinceDays": 7}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/brand-mentions-monitor").call(run_input={"keywords": ["Apify"], "sources": ["googleNews", "hackerNews", "bluesky", "reddit"], "sinceDays": 7})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/brand-mentions-monitor with the default input and summarise the results."*

### Input examples

**One brand, four sources, last 7 days (default)**

```json
{
  "keywords": ["Apify"],
  "sources": ["googleNews", "hackerNews", "bluesky", "reddit"],
  "sinceDays": 7
}
```

**Brand vs competitors, news only, UK edition**

```json
{
  "keywords": ["Monzo", "Revolut", "Starling Bank"],
  "sources": ["googleNews"],
  "country": "GB",
  "sinceDays": 3
}
```

**Daily alert with homonym filter**

```json
{
  "keywords": ["Apple Vision Pro"],
  "excludeWords": ["recipe", "orchard"],
  "sinceDays": 1,
  "maxPerSource": 100
}
```

### Output fields

| Field | Description |
|---|---|
| `keyword` | Which of your keywords matched |
| `source` | google_news, hacker_news, bluesky, reddit or mastodon |
| `title / text` | Headline or post text |
| `url` | Link to the mention |
| `author` | Author handle or news outlet |
| `publishedAt` | Publication time |
| `engagement` | Source-specific engagement numbers |
| `sentiment / sentimentScore` | Sentiment label and score (when on) |
| `scrapedAt` | Collection time |

#### Sample output

```json
{
  "keyword": "Apify",
  "source": "hacker_news",
  "title": "Show HN: I scraped 1M product pages with Apify and …",
  "url": "https://news.ycombinator.com/item?id=41234567",
  "author": "builder42",
  "publishedAt": "2026-10-19T14:22:03Z",
  "engagement": { "points": 120, "comments": 48 },
  "sentiment": "positive",
  "sentimentScore": 1
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Mention** | per mention row | $0.001 |
| **Sentiment** | per mention tagged (on by default; turn off to skip) | $0.0002 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 1 brand, ~60 mentions | about $0.08 |
| Daily run, 3 brands, ~40 mentions | about $0.05 per day |
| Weekly run, 10 keywords × 4 sources × 50 | up to $2.41 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Schedule daily with sinceDays 1 and send new rows to Slack or email with an Apify integration.
- Use exact product names; add excludeWords for common-word brands.
- Mastodon searches hashtags, so use one-word brand names there.
- Reddit sometimes blocks cloud servers; the run continues with the other sources and you are not charged for it.

### FAQ

#### Which sources are included?

Google News, Hacker News, Bluesky, Reddit and Mastodon (hashtag timeline on mastodon.social). X/Twitter, Instagram and Facebook require logins and are not included.

#### How is sentiment calculated?

A fast word-list model (positive vs negative words). It is a quick triage signal, not a deep language model.

#### Are duplicates removed?

Yes, within a run by URL and source. Across scheduled runs, use sinceDays equal to your schedule interval.

#### Do I need API keys?

No. All sources are public.

#### What if a source is down or blocks the run?

It is skipped with a warning; you pay only for mentions delivered.

#### Can I monitor in other languages?

Yes. Set language and country for Google News and Bluesky.

### Honest limits

- X/Twitter, Instagram, Facebook and LinkedIn are not covered (login required).
- Reddit may block some cloud IPs; those runs skip Reddit.
- Sentiment is lexicon-based and English-oriented.
- Google News returns up to about 100 recent articles per query.

### Related IntelScrape bots

- [Hacker News Scraper](https://apify.com/intelscrape/hacker-news-scraper): stories & comments by keyword
- [Google News Scraper](https://apify.com/intelscrape/google-news-scraper): headlines & summaries
- [Bluesky Posts Scraper](https://apify.com/intelscrape/bluesky-posts-scraper): posts & profiles from Bluesky
- [Reddit Posts Scraper](https://apify.com/intelscrape/reddit-posts-scraper): posts & comments by keyword
- [Google Trending Searches](https://apify.com/intelscrape/google-trending-searches-scraper): daily trending searches by country
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

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

Brand names, products, competitors or topics. Multi-word terms are searched as exact phrases.

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

Where to look.

## `sinceDays` (type: `integer`):

Time window.

## `maxPerSource` (type: `integer`):

Caps cost on very popular keywords.

## `excludeWords` (type: `array`):

Drop mentions containing any of these words (e.g. a homonym).

## `sentiment` (type: `boolean`):

Tag each mention positive, negative or neutral. Charged per mention.

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

Language code for Google News and Bluesky.

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

Google News edition, e.g. US, GB, IN, AU.

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

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "keywords": [
    "Apify"
  ],
  "sources": [
    "googleNews",
    "hackerNews",
    "bluesky",
    "reddit"
  ],
  "sinceDays": 7,
  "maxPerSource": 50,
  "excludeWords": [],
  "sentiment": true,
  "language": "en",
  "country": "US",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "keywords": [
        "Apify"
    ],
    "sentiment": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/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 = {
    "keywords": ["Apify"],
    "sentiment": True,
}

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

```

## MCP server setup

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