Brand Mention Scraper API — News, Reddit & Hacker News avatar

Brand Mention Scraper API — News, Reddit & Hacker News

Pricing

from $8.00 / 1,000 mention founds

Go to Apify Store
Brand Mention Scraper API — News, Reddit & Hacker News

Brand Mention Scraper API — News, Reddit & Hacker News

Scrape brand and competitor mentions across Google News, Reddit, Hacker News, Product Hunt and YouTube. Blocked sources are reported as partial coverage, never as silence. Unofficial — not affiliated with any source named.

Pricing

from $8.00 / 1,000 mention founds

Rating

0.0

(0)

Developer

Quarry

Quarry

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Brand Monitor — mentions across news, Reddit and Hacker News

Track any brand, product, competitor or topic. Schedule it daily and it only ever shows you what's new — it remembers everything it has already reported.

Sample output

{
"id": "googlenews:CBMi...",
"source": "googlenews",
"keyword": "apify",
"title": "AI Agents Gain Financial Independence: Apify Adds 20,000 Tools",
"url": "https://ffnews.com/newsarticle/...",
"snippet": "Apify announced support for agent payments, adding…",
"origin": "FF News",
"author": null,
"publishedAt": "2026-07-28T12:55:17.000Z",
"matchedIn": "both"
}

Every field is plain text. snippet is decoded and stripped of markup, so it is readable in a spreadsheet without a second cleaning pass.

Why this one

  • It's a monitor, not a search. State persists between runs, so a daily schedule returns only genuinely new mentions. No re-reading yesterday's results, and you are not charged for anything you've already been shown.
  • Three sources, one schema. Google News, Reddit and Hacker News in identical shape — origin means origin whether it's a publisher, a subreddit or HN.
  • matchedIn tells you why it matchedtitle, body, both, url, author, or channel. The fastest way to triage false positives without reading every row. A mention we cannot prove contains your keyword is dropped and never billed.
  • excludeTerms kills recurring noise before you're billed for it.
  • It tells you when it could not see. A source that refuses a request is reported as a coverage gap, never as "no mentions".

Input

FieldWhat it does
keywordsRequired. Brands, competitors, products, topics.
sourcesgooglenews, reddit, hackernews (default), plus producthunt and youtube.
onlyNewSuppress already-reported mentions. On for monitoring; off for a one-time backfill.
maxAgeHoursIgnore older mentions. Default 168 (one week). 0 = no limit.
excludeTermsDrop mentions containing any of these.
youtubeChannelsChannel IDs to watch when the youtube source is on.

Daily competitor watch:

{
"keywords": ["your brand", "competitor a", "competitor b"],
"sources": ["googlenews", "reddit", "hackernews"],
"onlyNew": true,
"maxAgeHours": 48,
"excludeTerms": ["job", "hiring"]
}

Use cases

  • Brand and reputation monitoring — know within hours when your name appears in news or on Reddit.
  • Competitor tracking — watch launches, funding, outages and complaints across several rivals at once.
  • Crisis detection — schedule hourly with a short maxAgeHours and a narrow keyword set.
  • PR measurement — a dated, exportable record of coverage rather than a dashboard screenshot.

Reliability

Every run writes RUN_STATS: ok, empty, drift, transport, rate_limited, not_found, plus newMentions, suppressedAsAlreadySeen, droppedAsUnmatched, trackedIds, and the coverage triple pairsAttempted / pairsAnswered / pairsFailed.

Silence is never presented as safety.

  • drift means a source returned feed items but the parser produced none — a format change. Firehose sources that legitimately match nothing report empty instead, so you never get a false alarm from a quiet day.
  • PARTIAL COVERAGE appears in the log whenever fewer keyword/source pairs answered than were attempted, and names the pairs that did not. Reddit in particular rate-limits hard (see Limits), and a blocked request is booked as rate_limited — it is never counted as "your brand was not mentioned".
  • A run in which no source answered fails loudly rather than finishing green with an empty result. A mistyped YouTube channel or a total block is an error you will see, not a quiet week you will misread.
  • A run that finds nothing new still writes one row: {"type": "no_changes", …} with the run's counters. It is never charged. Mention rows carry no type field, so type == "no_changes" is an unambiguous filter for "checked, nothing new".

Limits

  • Public sources only. No private groups, no logged-in content.
  • Google News returns roughly the last week per query — for older coverage, lower maxAgeHours and schedule more often rather than reaching further back.
  • Reddit answers roughly one request per minute per address. Requests to it are serialised, but on a run with several keywords some Reddit pairs will still come back rate-limited; they are reported under PARTIAL COVERAGE. Split large keyword sets across scheduled runs rather than raising concurrency.
  • Hacker News yield is brand-dependent. Its index is queried as an exact phrase with typo tolerance disabled, which is what makes it usable at all — the default index matched "Notion" against 80 stories about a nation. Even so, a brand that simply is not discussed on HN returns few or no rows, and rows that do not provably contain your keyword are dropped rather than billed. Expect HN to be a strong source for technology brands and a thin one for consumer brands.
  • producthunt is a firehose filtered locally against the daily feed, so it matches far less often than the search-backed sources.
  • youtube is a channel watch, not a search: it returns every new video from the channels in youtubeChannels, with matchedIn: "channel", because the channel itself is what you asked to watch. It does not search YouTube for your keywords.
  • Rows carry no language field. None of these sources reports one reliably, and a field that is null on every row is worse than no field at all. The language input still selects which Google News edition is queried.
  • State is capped at 50,000 remembered mentions per store; beyond that the oldest are forgotten.

Pricing

Pay per new mention. Re-runs that find nothing new cost nothing, and the no_changes row is never charged.