News Mentions API: Brand & Keyword Monitoring avatar

News Mentions API: Brand & Keyword Monitoring

Pricing

from $1.00 / 1,000 articles

Go to Apify Store
News Mentions API: Brand & Keyword Monitoring

News Mentions API: Brand & Keyword Monitoring

Search a curated index of publisher news feeds by keyword and get clean article rows: title, snippet, publisher URL, source, region, topic, language and publish time. Built for brand/PR monitoring, competitor tracking and market news in Malaysia, Southeast Asia and worldwide. Pay only per article.

Pricing

from $1.00 / 1,000 articles

Rating

0.0

(0)

Developer

subimpact

subimpact

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 hours ago

Last modified

Categories

Share

News Mentions API — Brand & Keyword News Monitoring (MY, SEA, Global)

Search a curated index of publisher news feeds by keyword and get clean rows back: headline, snippet, the publisher's own article link, source, region, topic, language and publish time. No browser, no proxy, no scraping per page — one API call per page of results, JSON/CSV/Excel export, pay only for the articles you get.

Built for Malaysia and Southeast Asia first: the index crawls national dailies, business, tech, auto, finance, energy and e-commerce press from MY, SG, ID, PH, TH and VN, plus a global layer of wires and international outlets.

What you get

  • One row per article (not per keyword): matchedKeywords lists every query that hit, so a story about "Petronas EV chargers" appears once with both keywords attached.
  • Publisher URLs, not aggregator redirects — the link goes straight to thestar.com.my, paultan.org, asia.nikkei.com, etc.
  • Filter at query time: region, topic, language, include/exclude publisher domains, date range or lookback.
  • Delta mode (onlyNew) for scheduled monitoring: each run returns only the articles added since the previous run, with a per-query cursor stored in your own key-value store.

Who it is for

  • Brand / PR / comms teams tracking mentions of a company, product or executive.
  • Competitor and market intelligence — what the local press says about rivals, launches, pricing, regulation.
  • Agencies and data teams feeding a dashboard, alerting pipeline or LLM/RAG store with fresh, linkable news.
  • Analysts who want SEA coverage without building and maintaining a feed crawler.

Coverage

RegionsTopics
MY Malaysia, SG Singapore, ID Indonesia, PH Philippines, TH Thailand, VN Vietnam, GLOBAL internationalgeneral, business, tech, startups, auto, finance, crypto, marketing, ecommerce, energy

Coverage is a curated list of publisher feeds (RSS/Atom published by the outlet itself). It is not "all of the web" and it does not include paywalled full text. Missing an outlet you need? Open an Issue on this actor and we add it to the source list — that is how coverage grows.

Up to 180 days of history is kept. Leave regions/topics empty to search everything.

Query syntax

Each entry in keywords is a query:

SyntaxMeaningExample
word wordAND — all words must appear (title or snippet)Petronas profit
"exact phrase"phrase match"electric vehicle" Malaysia
a OR beither term (OR must be uppercase)Grab OR foodpanda
-term / -"phrase"excludePetronas -sponsored

Matching is case-insensitive on the headline and the feed summary. excludeKeywords are appended to every query, so you can strip recurring noise once: ["press release", "advertorial"] adds -"press release" -advertorial to each query (multi-word terms are quoted automatically).

Examples:

{
"keywords": ["Petronas", "\"electric vehicle\" Malaysia", "Grab OR foodpanda -promo"],
"regions": ["MY", "SG"],
"topics": ["business", "auto"],
"excludeKeywords": ["advertorial"],
"lookbackDays": 30
}

A query that consists only of exclusions is rejected — always keep at least one positive term.

Scheduled monitoring (onlyNew)

  1. Create a Task from this actor with your keywords and filters, and tick Only new articles since the last run.
  2. Schedule the task (e.g. every hour) with an Apify Schedule.
  3. First run: returns the lookback window (lookbackDays, default 7) and stores the index position it reached.
  4. Later runs: return only articles ingested after that position, oldest first, and store the new position.

The cursor lives in the named key-value store news-mentions-state in your account, under a short hash of your query (keywords + filters, excluding limits). Change a filter and you get a new cursor (a fresh full lookback); change only maxItemsPerKeyword or dedupe and the cursor keeps working. Set stateKey to name the cursor yourself (useful when one task tracks several brands).

Notes:

  • The cursor only advances when the whole run finished cleanly. If a run stops early (charge limit, a keyword error), the cursor stays put and the next run repeats those articles rather than silently losing them.
  • Do not mix delta runs and full runs in the same task.
  • If a task was paused for a long time, its first run back returns everything since the last cursor (oldest first), capped by maxItemsPerKeyword per keyword.

Input

FieldTypeDefaultDescription
keywordsarray of strings— (required)1–100 queries in the syntax above
excludeKeywordsarray of strings[]Appended to every query as -term (quoted when multi-word)
regionsarray, enum[] (all)MY, SG, ID, PH, TH, VN, GLOBAL
topicsarray, enum[] (all)general, business, tech, startups, auto, finance, crypto, marketing, ecommerce, energy
languagesarray of strings[] (all)Feed language codes, e.g. en, ms, id
domainsarray of strings[]Only these publishers (thestar.com.my also matches subdomains)
excludeDomainsarray of strings[]Drop these publishers
lookbackDaysinteger 1–1807Days back from now; ignored when dateFrom is set
dateFrom / dateToISO date—Override the lookback; a bare date covers the whole day, dateTo inclusive
maxItemsPerKeywordinteger 1–5000100Cap per keyword; you pay only for returned articles
dedupeAcrossKeywordsbooleantrueOne row per article with all matching keywords (off: one row per keyword match)
onlyNewbooleanfalseDelta mode (see above)
stateKeystring—Name of the delta cursor when onlyNew is on

Output

One dataset row per article:

{
"keyword": "Petronas",
"matchedKeywords": ["Petronas", "\"electric vehicle\" Malaysia"],
"title": "Malaysia electric vehicle sales jump as Petronas adds chargers",
"snippet": "Electric vehicle registrations in Malaysia doubled while Petronas opened 40 new charging bays.",
"url": "https://paultan.org/2026/10/23/malaysia-ev-sales-jump/",
"sourceName": "Paul Tan's Automotive News",
"sourceDomain": "paultan.org",
"region": "MY",
"topic": "auto",
"language": "en",
"publishedAt": "2026-10-22T23:30:00Z",
"firstSeenAt": "2026-10-22T23:41:07Z",
"imageUrl": "https://paultan.org/img/ev-chargers.jpg",
"author": null,
"matchedIn": ["title", "snippet"],
"articleId": "3f9a1c0b7d2e4a51"
}

Fields: keyword (first matching keyword), matchedKeywords, title, snippet (≤320 characters), url, sourceName, sourceDomain, region, topic, language, publishedAt, firstSeenAt, imageUrl, author, matchedIn (title and/or snippet), articleId (stable id, sha1 of the canonical URL).

Pricing

$1.00 per 1,000 articles returned — one charge per pushed row, nothing else. Platform usage (compute/network) is paid by you on top of the event price and is typically under $0.05 per 1,000 articles for this actor. Each run also costs a $0.00005 start fee.

Zero results cost nothing. If the news index is unavailable, the run fails before pushing or charging anything.

How this compares

Most "news scraper" actors wrap Google News search. That works, but the link Google returns is a redirect (news.google.com/rss/articles/...) that has to be resolved separately — often by a second, paid call per article — before you have the publisher URL. This actor returns the publisher URL directly, from the publisher's own feed.

news-mentions-apiTypical Google News scraper
Article linkpublisher URL, ready to citeGoogle redirect, needs extra resolving
Dedupe across keywordsyes, matchedKeywordsusually one row per keyword
Historyup to 180 days backwhatever Google currently serves
Delta modecursor-based onlyNewusually none
Source metadataregion, topic, language, publisher domainmostly title + link
Price$1.00 / 1,000 articlesvaries by actor — check the listing

Check the individual listings for their current prices; they change.

Notes

  • With dedupeAcrossKeywords on, rows are pushed after all keywords have been scanned, so matchedKeywords is complete for every article. Turn it off if you prefer rows streamed to the dataset per keyword match.
  • With dedupeAcrossKeywords on, articles are written newest-published first.
  • The actor calls our news index directly (no browser, no proxy), so a 512 MB run is plenty and per-row compute cost is negligible.

Limits

  • Headline + snippet + link only. We never return full article text; read the article on the publisher's site.
  • Coverage is our source list, not the whole web. New outlets are added on request (Issues).
  • snippet is truncated at 320 characters and title at 300 by the index.
  • At most 100 queries per run, 5,000 articles per query, and 180 days of history.
  • Matching is on the headline and feed summary, so a mention buried deep in an article body can be missed.
  • Publisher feeds occasionally publish late or break their own feed; the status message reports the index freshness so you can tell when results may be behind.

FAQ

Do I need an API key? No. The actor is preconfigured against our news index; you just run it.

Can I get the full article text? No. The index stores headline, feed summary and the link. Fetch the page from the publisher if you need the body (respect their terms).

Why is an article I know about missing? Either the publisher is not in the source list, its feed published after your window, or the term appears only in the body rather than the headline/summary. Try a broader query or a longer lookback, and open an Issue if the outlet is missing.

How fresh is the data? The index polls publisher feeds continuously; the final status message reports the last ingest time and lag. If the index reports degraded, results may be behind and the run says so.

Can I run several brands in one task? Yes — put them all in keywords, or use one task per brand with onlyNew and a stateKey per brand.

What happens when I hit my max charge per run? The run stops cleanly, keeps the rows it already delivered, and the status message says the limit was reached. Raise the max charge per run (or lower maxItemsPerKeyword) and run again.