Brand Mention Scraper API — News, Reddit & Hacker News
Pricing
from $8.00 / 1,000 mention founds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
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 —
originmeans origin whether it's a publisher, a subreddit or HN. matchedIntells you why it matched —title,body,both,url,author, orchannel. The fastest way to triage false positives without reading every row. A mention we cannot prove contains your keyword is dropped and never billed.excludeTermskills 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
| Field | What it does |
|---|---|
keywords | Required. Brands, competitors, products, topics. |
sources | googlenews, reddit, hackernews (default), plus producthunt and youtube. |
onlyNew | Suppress already-reported mentions. On for monitoring; off for a one-time backfill. |
maxAgeHours | Ignore older mentions. Default 168 (one week). 0 = no limit. |
excludeTerms | Drop mentions containing any of these. |
youtubeChannels | Channel 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
maxAgeHoursand 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.
driftmeans a source returned feed items but the parser produced none — a format change. Firehose sources that legitimately match nothing reportemptyinstead, so you never get a false alarm from a quiet day.PARTIAL COVERAGEappears 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 asrate_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 notypefield, sotype == "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
maxAgeHoursand 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 raisingconcurrency. - 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.
producthuntis a firehose filtered locally against the daily feed, so it matches far less often than the search-backed sources.youtubeis a channel watch, not a search: it returns every new video from the channels inyoutubeChannels, withmatchedIn: "channel", because the channel itself is what you asked to watch. It does not search YouTube for your keywords.- Rows carry no
languagefield. None of these sources reports one reliably, and a field that is null on every row is worse than no field at all. Thelanguageinput 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.