# Brand Mentions Monitor: Web Mentions and Sentiment

> Brand Mentions Monitor is an Apify actor (API) by CheapAPI Labs. Mentions of a brand on news sites, blogs, forums and shops with sentiment. Schedule it to get only new mentions. It costs $2.40 per 1,000 mentions on the Apify Free plan and $0.20 on Gold, plus $0.033 per mentions search, billed through your Apify account with no API key. Compared with the most used Google News scraper on Apify Store (about 2,650 users): 1,000 results for one brand costs $2.43 on Free and $0.23 on Gold here and $5.09 on every plan there (Apify Store listing prices, checked September 2026). Apify platform usage is billed on top here. The cheapest per result Google News monitoring actor charges $1.01 on Free and $0.47 on Gold for news only; this actor also covers blogs, forums and shops.

- Page: https://cheapapilabs.com/actors/brand-mentions-monitor/
- Run on Apify: https://apify.com/cheapapi/brand-mentions-monitor
- Publisher: CheapAPI Labs (Apify username cheapapi)
- Main price: $2.40 per 1,000 mentions on Free, $0.20 on Gold
- Our prices updated: 2026-10-30

## Prices per event (USD)

| Event | Free | Bronze | Silver | Gold |
|---|---:|---:|---:|---:|
| Mentions search | $0.033 | $0.033 | $0.033 | $0.033 |
| Mention | $0.0024 | $0.002 | $0.0015 | $0.0002 |
| Web wide statistics (optional) | $0.08 | $0.08 | $0.08 | $0.08 |
| Search without delivered mentions | $0.0303 | $0.0303 | $0.0303 | $0.0303 |
| Fetched mention not delivered | $0.0001 | $0.0001 | $0.0001 | $0.0001 |
| Web wide statistics without data | $0.0786 | $0.0786 | $0.0786 | $0.0786 |

Platinum and Diamond pay the Gold price. Apify platform usage: billed separately by Apify.

## Call it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/cheapapi~brand-mentions-monitor/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"keywords":["Logitech"],"maxMentions":100}'
```

## Example output row

```json
{
  "id": "36E4sBBW_vzvpOZ3WQ9e",
  "rowType": "mention",
  "keyword": "Logitech",
  "mentionId": "P5YX9tlWXIWSTyPx",
  "url": "https://www.vikingdirekt.ch/de/logitech-kabellose-ergonomische-maus-beidhandig-m185-blau-p-7160985",
  "domain": "www.vikingdirekt.ch",
  "mainDomain": "vikingdirekt.ch",
  "title": "Logitech M185 Maus Kabellos Blau, Schwarz Geeignet Für Linkshänder",
  "sectionTitle": null,
  "previousSectionTitle": "Beschreibung",
  "snippet": "Keine Verzögerungen oder Ausfälle. Der winzige kabellose Empfänger garantiert Ihnen eine zuverlässige Verbindung. Logitech",
  "highlightedText": null,
  "author": null,
  "datePublished": null,
  "dateBest": "2026-08-26T09:50:52.000Z",
  "discoveredAt": "2026-08-26T09:50:52.000Z",
  "groupDate": "2023-02-24T09:03:53.000Z",
  "language": "de",
  "country": "CH",
  "sentiment": "negative",
  "positiveScore": 0.0109,
  "negativeScore": 0.9711,
  "neutralScore": 0.018,
  "emotionAnger": 0.579,
  "emotionHappiness": 0.073,
  "emotionLove": 0.057,
  "emotionSadness": 0.1667,
  "emotionShare": 0.0606,
  "emotionFun": 0.0638,
  "pageType": "ecommerce",
  "pageTypes": [
    "ecommerce"
  ],
  "pageCategories": [
    "Arts & Entertainment",
    "Computers & Consumer Electronics",
    "Consumer Electronics",
  …
}
```

## Fields

| Field | Type | Example |
|---|---|---|
| `rowType` | string | `mention` (or `summary` for the summary row) |
| `keyword` | string | `Logitech` |
| `url` | string | `https://www.vikingdirekt.ch/de/logitech-…-p-7160985` |
| `domain` / `mainDomain` | string | `www.vikingdirekt.ch` / `vikingdirekt.ch` |
| `title` | string | `Logitech M185 Maus Kabellos Blau…` |
| `sectionTitle` / `previousSectionTitle` | string | `null` / `Beschreibung` |
| `snippet` | string | `Keine Verzögerungen oder Ausfälle… Logitech` |
| `highlightedText` | string | matched words inside the snippet, when available |
| `author` | string | `null` |
| `datePublished` | ISO date | `2025-03-14T08:00:00.000Z` (null when the page has no date) |
| `dateBest` | ISO date | `2025-03-14T08:00:00.000Z`, the publication date, or `discoveredAt` when the page has none (rarely null) |
| `discoveredAt` | ISO date | `2026-08-26T09:50:52.000Z` (when our crawler found the page) |
| `groupDate` | ISO date | `2023-02-24T09:03:53.000Z` (when this text block was first recorded) |
| `language` / `country` | string | `de` / `CH` |
| `sentiment` | string | `negative` (label with the highest score) |
| `positiveScore` / `negativeScore` / `neutralScore` | number 0 to 1 | `0.0109` / `0.9711` / `0.018` |
| `emotionAnger`, `emotionHappiness`, `emotionLove`, `emotionSadness`, `emotionShare`, `emotionFun` | number 0 to 1 | `0.579` |
| `pageType` / `pageTypes` | string / array | `ecommerce` / `["ecommerce"]` (news, blogs, message boards, ecommerce, organization) |
| `pageCategories` / `textCategories` | array | `["Computers & Consumer Electronics", "Consumer Electronics"]` |
| `pageCategoryCodes` / `textCategoryCodes` | array | `[10019, 10167]` |
| `domainRank` / `pageRank` | number | `504` / `63` (shown on the 0 to 1000 scale; 0 to 100 by default) |
| `spamScore` | number 0 to 100 | `0` |
| `contentQualityScore` | number 0 to 100 | `100` |
| `relevanceScore` | number | `64538.832` |
| `contentType`, `headingLevel`, `snippetLength`, `semanticLocation` | mixed | `page_content`, `1`, `122`, `main` |
| `rating`, `socialMetrics` | array | on page rating, social counts when available |
| `id` | string | stable row id: same keyword + same mention → same id in every run (summary rows too) |
| `mentionId` | string | stable id of the mention (same page + same text) |
| `scrapedAt` | ISO date | `2026-09-28T15:56:44.509Z` |

For each keyword you also get one **summary row** (`rowType: "summary"`), which is also saved as `SUMMARY` in the key value store:
`mentionsDelivered`, `totalMatchingMentions` (all matches in the index), `sentimentCounts`, `positiveShare` / `negativeShare` / `neutralShare`, `netSentiment` (−1 to 1), `averageScores`, `averageEmotions`, `topDomains`, `uniqueDomains`, `countries`, `languages`, `pageTypes`, `trendByMonth` and `mentionsWithoutDate`. With the optional web wide statistics, it also includes `webWide`.

## Compared with alternatives

Typical run: **1,000 results for one brand**. Prices are for the whole run.

| Option | What it covers | Blogs, forums & shops | Sentiment & emotion scores | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|---|---|---|
| Most used Google News scraper on the Store (~2,650 users) | Google News articles | ✗ | ✗ | $5.09 | $5.09 | $5.09 | $5.09 | $5.09 | $5.09 |
| Fast pay per event Google News scraper (~2,100 users) | Google News articles | ✗ | ✗ | $4.00 | $4.00 | $3.75 | $1.00 | $1.00 | $1.00 |
| Tiered pay per result Google News scraper (~550 users) | Google News articles | ✗ | ✗ | **$2.31** | **$2.01** | $1.57 | $1.21 | $0.81 | $0.57 |
| Low cost pay per result Google News scraper (~480 users) | Google News articles | ✗ | ✗ | **$2.01** | **$1.68** | **$1.34** | $1.01 | $1.01 | $1.01 |
| Cheapest per result Google News monitoring Actor (~100 users) | Google News articles | ✗ | ✗ | **$1.01** | **$0.67** | **$0.57** | $0.47 | $0.29 | **$0.14** |
| Most used social media sentiment Actor (~2,650 users) | Comments on one profile's Facebook, Instagram and TikTok posts | ✗ | ✓ (sentiment) | $4.00 | $3.35 | $2.70 | $2.05 | $1.40 | $0.75 |
| **This Actor** | News, blogs, forums, shops, review and organization pages | ✓ | ✓ (3 sentiment + 6 emotion scores) | $2.43 | $2.03 | $1.53 | **$0.23** | **$0.23** | $0.23 |

Prices from public Apify Store listings, checked September 2026 (per result price plus any start fee; the listings of these six Actors do not show platform usage charged to the user). For this Actor, Apify platform usage is billed separately by Apify on top of the price shown (at the default 256 MB a small run typically uses about $0.001 to $0.005, so a 1,000-mention run stays around $0.23 to $0.24 on Gold). On Apify, Platinum and Diamond plans pay this Actor's Gold price. Features are taken from each listing's description.

Honest notes: several news only Google News scrapers cost less than this Actor on the Free and Bronze plans (the ~100-user Actor $1.01 vs $2.43 and $0.67 vs $2.03; the ~480-user one $2.01 vs $2.43 and $1.68 vs $2.03; the ~550-user one $2.31 vs $2.43 and $2.01 vs $2.03). Some are also cheaper on Silver (the ~100-user Actor $0.57 and the ~480-user one $1.34 vs our $1.53) and on Diamond (the ~100-user Actor $0.14 vs our $0.23). This Actor is the cheapest option in the table on Gold and Platinum, even after adding a few tenths of a cent of platform usage, and against the two most used Google News scrapers and the social media sentiment Actor it is cheaper on every plan. It is also the only option in the table that covers the wider web (blogs, forums, shops, organization sites) with sentiment and emotion scores for every mention. Pick a Google News Actor if news headlines are all you need. Here you also get blogs, forums, shops and organization sites, a sentiment and emotion score for every mention, domain and page rank, spam score, a free summary, and an "Only new mentions" mode where repeats are never charged as mentions. Brand monitoring SaaS subscriptions add social networks, dashboards and built in alerts, but charge a monthly fee whether or not there are new mentions.

## Not included

- **Social network posts** (Instagram, TikTok, X, Facebook): our index covers the open web.
- **YouTube videos and comments**: use [YouTube Search Scraper](https://cheapapilabs.com/actors/youtube-search-scraper/) to find videos about your brand and [YouTube Comments Scraper](https://cheapapilabs.com/actors/youtube-comments-scraper/) for their comments.
- **Brand mentions in AI answers** (ChatGPT, Perplexity, Google AI Overviews): use [AI Search Visibility Tracker](https://cheapapilabs.com/actors/ai-search-visibility-tracker/).
- **Links to your site without a text mention**, or tracking a URL: mentions are found by text. For pages that link to a URL or domain, use [Backlink Checker](https://cheapapilabs.com/actors/backlink-checker/).
- **Google search rankings** for your brand: use [Google SERP Scraper](https://cheapapilabs.com/actors/google-serp-scraper/).
- **Pages behind a login, full page text and author contact details**: you get the text block around the mention, not the whole page, and no personal contact data.

## Limits

- Social networks (Instagram, TikTok, X, Facebook and similar) are not covered.
- Coverage depends on our web index. Very new pages, pages behind a login and pages that block crawlers may be missing.
- Many pages have no publication date. When you filter by publication date, those pages are left out. Use "Date range applies to: discovery date" if you want to include them.
- Sentiment is computed per text block by a model. It can misread sarcasm, mixed opinions or text that is not about your brand.
- A search returns at most 1,000 mentions. Larger runs page through the results, and each page is one search event. The limit is 20,000 mentions per keyword per run.
- Up to 8 filter conditions can be combined per run.
- In "Only new mentions" mode, if a run stops at "Max mentions" or at your cost limit, the next run can still pick up the remaining mentions. When many new mentions arrive continuously, raise "Max mentions" so no mentions are skipped.

## FAQ

**Is there a limit on the Apify Free plan?**
Yes: up to $0.25 of this Actor's results per calendar month, enough to try it. Apify pays developers nothing for Free plan usage while our data costs are real, so this keeps the Actor sustainable. Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit.

**Is it legal?**
The Actor returns publicly available information from public web pages: URL, title, a short text snippet and computed scores. It collects no personal accounts or private data. Make sure your use of the data complies with the laws and terms that apply to you.

**How fresh is the data?**
Our crawler visits pages continuously. Each mention has `discoveredAt` (when the page was fetched) and, when the page provides one, `datePublished`. How quickly a new page appears depends on the site: large, often updated sites are usually picked up sooner than small ones. Use `discoveredAt` to see when each page was found, or `dateBest` for one date column that is almost never empty (publication date when the page has one, otherwise the discovery date).

**Why did I get fewer results than "totalMatchingMentions"?**
`maxMentions` limits how many mentions you get per keyword (the default is 100). Filters, "one mention per domain" and a date range also narrow the results. With "Only new mentions", mentions you already received are skipped. Your maximum cost per run can also stop the Actor early.

**Why do I enter keywords and not URLs?**
A mention is a piece of text on a web page, and the index is searched by text. So you track a brand, product or phrase, not a URL. To watch particular websites, enter the keyword and add the sites under **Only these domains** (subdomains are included). To find pages that link to your URL, use [Backlink Checker](https://cheapapilabs.com/actors/backlink-checker/).

**What happens if a run fails halfway through a keyword?**
Mentions saved before the problem stay in the dataset, and you pay only for those (plus, if a search got no answer, "Search without delivered mentions" and $0.0001 per requested mention, because that search may already have been paid for). They are also remembered in "Only new mentions" mode, so the next run does not deliver or charge them again. The summary row for that keyword covers the saved mentions.

**How does "Only new mentions" work?**
The Actor keeps a small memory in your Apify account (a key value store named `brand-mentions-monitor-state`). The memory is kept per keyword and filter combination, or per "Monitor name" if you set one. On the next run, the Actor searches only pages discovered since shortly before the last complete run and skips mentions it already delivered. New mentions are charged as usual; each skipped repeat costs $0.0001, and a keyword with nothing new costs $0.0303 for its search.

**How is sentiment calculated?**
Each text block that mentions your keyword gets a probability for positive, negative and neutral. It also gets six emotion probabilities: anger, happiness, love, sadness, share and fun. `sentiment` is the label with the highest probability. The scores describe the text around the mention, which is not always about your brand. For example, a negative product review of a competitor on the same page can affect it.

**What is the difference between the free summary and web wide statistics?**
The free summary is calculated from the mentions you received. Web wide statistics (a paid add on) count **all** matching mentions in the index, which can be millions for a big brand, and add a trend over time.

**How do I control what a run costs, and is platform usage included?**
Set **Max mentions per keyword** and, in the run options, **Maximum cost per run**. The Actor checks the remaining budget before every search (assuming the most that search could cost) and stops before it would go over it. The summary row is never charged. Apify platform usage (compute) is not included in these fees; Apify bills it separately. At the default 256 MB memory a small run typically uses about $0.001 to $0.005; very large runs use more. Each run's usage is shown in Apify Console.

**Why was I charged $0.0303, $0.0001 or $0.0786?**
Every search is paid for, whether or not it finds something. When a search delivers no mention, nothing matches your keyword and filters, everything it found was delivered in an earlier run ("Only new mentions"), or it got no answer although it may already have been paid for, it costs $0.0303 instead of the normal $0.033 search fee. Each mention a search returned but that is not delivered (already delivered before, a duplicate, or over your maximum cost) costs $0.0001. With default settings you will practically never see these fees. **$0.0786 ("Web wide statistics without data")**: web wide statistics were on, the lookup was made, but it returned no data (no matching page in the period, or no answer arrived). The lookup is paid for either way. If the mentions search already found no matching page at all, the statistics are skipped and nothing is charged.

**Where do I get help?**
Open an issue in the Actor's **Issues** tab in Apify Console. Include the run link and describe what you expected.
