Google News Media Monitoring Scraper - Brand Mention Monitor avatar

Google News Media Monitoring Scraper - Brand Mention Monitor

Pricing

$2.90 / 1,000 articles

Go to Apify Store
Google News Media Monitoring Scraper - Brand Mention Monitor

Google News Media Monitoring Scraper - Brand Mention Monitor

Google News scraper that splits a keyword into day windows: 2070 articles where one plain feed returns 99, measured. Links resolve to the publisher's real address, not a google redirect: 100 of 100 on the default cloud run. 80 editions. Google News API for media monitoring and brand mentions.

Pricing

$2.90 / 1,000 articles

Rating

0.0

(0)

Developer

Snow Leo Data

Snow Leo Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Google News Scraper — news articles, publisher URLs, 80 editions

Scrape Google News without an API key. This Actor collects news articles by keyword, by topic, by city, or from the top stories of any Google News edition, and gives you every article with the publisher URL — the real link to the newspaper, not the news.google.com/rss/articles/CBMi… redirect that Google hands out.

It is built for news monitoring, media monitoring, brand mentions, press coverage tracking and news data pipelines. Use it as a Google News API replacement, as a news API for an agent, as a news aggregator feed, for news alerts on breaking news, or as a plain news crawler over Google News RSS. Everything below is a number you can reproduce with one command; nothing here is an estimate.

What this Actor does that a Google News feed cannot

Why does a normal Google News scraper stop at 100 articles?

Because the feed does. A Google News RSS feed returns about one hundred items and never says so — there is no cursor, no page two, and no error. Measured on 2026-09-12:

feedarticles returned
q=tesla99
q=apple104
q=climate change102
q=economy107
topic TECHNOLOGY56
topic BUSINESS70
city Chicago70

One competing Google News scraper says it plainly in its own README: "100 articles per query — Google News RSS feeds return up to ~100 articles per query." Another offers maxArticles: 0 for "no limit" over the same feed.

This Actor splits a keyword search into day windows. Google News search understands the after: and before: operators, so instead of one request for tesla it makes one request per day. The ceiling applies to each window, not to the search:

what was askedrequestsunique articles
tesla, plain feed199
tesla, 4 day windows5309
tesla, 30 day windows312070

Thirty-one requests, half a minute, 20 times more news articles than the feed will give you. Set daysBack and the sweep happens by itself. Turn breakFeedCap off and you get exactly what a single feed returns — the run report then records that the cap was hit, so you always know which of the two you got.

Why is the article URL a google.com link everywhere else?

Since Google re-encrypted its redirects, a Google News feed link looks like https://news.google.com/rss/articles/CBMiyAFBVV95cUxPVWlM…. You cannot store it, group by domain, feed it to a model, or open it from a spreadsheet reliably. Decoding it takes a signed call to an internal Google endpoint.

This Actor resolves every link to the publisher's own article URL. Measured on live output: 30 out of 30 articles resolved, all thirty in a single request. On the first cloud run with the default input: 100 out of 100. Sample rows:

https://www.bloomberg.com/news/features/2026-09-10/iphone-duo-hands-on-…
https://www.latimes.com/business/story/2026-09-11/is-there-really-10-chance-…
https://apnews.com/article/heat-record-climate-change-sizzle-el-nino-…

It needs no proxy and no browser. When a link cannot be resolved, url stays empty and url_resolved is false — the field is never filled with a Google redirect pretending to be an article link.

What does Google News do when it does not know the city?

It lies quietly. Ask for local news of a place Google News has never heard of and it does not answer with an error or with an empty feed — it returns the national feed under the name you asked for. Measured:

requested citychannel Google actually returnedarticlesoverlap with the real city
ChicagoChicago - Latest - Google News70—
ZzqqxxnotaplaceU.S. - Latest - Google News640

Sixty-four articles that have nothing to do with the city, delivered as local news. A scraper that only reads the items cannot tell the difference.

This Actor compares the channel title with the city you asked for. When they disagree, every row is marked geo_fallback: true, the run report lists the swap, and the log says which spelling Google refused to recognise.

Which fields does Google News actually publish, and which does it not?

The feed carries the headline, the publisher name, the publisher home page, the publication time and the article link. It carries no article summary and no image: the description element of a Google News item is the headline again plus the list of other outlets covering the same story.

This Actor does not pretend otherwise. The repeated headline is dropped instead of being sold to you as a snippet, and the list of other outlets is parsed into a structured related array — headline and link for each outlet that covered the same story. related_count is a cheap relevance signal: a story picked up by several outlets is rarely noise, and minRelatedArticles filters on it.

If you do want the description and the image, switch on fetchArticleMeta: the Actor opens each resolved publisher page and reads og:description and og:image. No proxy is used, so some publishers refuse. Measured on 40 live articles: 26 of the 40 publisher pages answered with both fields; the rest returned 403, 401, 402 or timed out. A cloud run over 50 articles filled them for 36. The run report gives you meta_attempted and meta_ok for every run, so the success rate is a number you see rather than a promise you are given.

How does monitor mode avoid billing you twice?

Turn on onlyNew. The Actor remembers the article ids it has already delivered in a named key-value store, which survives between runs, and skips them next time. A scheduled hourly run over the same keyword therefore pays for the few articles that are new, not for the same hundred every hour.

A monitor run with nothing new writes zero rows, and that is correct behaviour, not a fault — so the Actor says why: empty_reason is set to nothing-changed in the report and the log spells it out. Every legitimate empty result is named the same way (filtered-out, source-returned-nothing, charge-limit-reached), so an empty dataset is never silent.

The fingerprint used to spot a rewritten headline deliberately ignores the resolved URL. Otherwise a run with resolution on and a run with it off would count the same article as two different ones and the monitor would deliver it again.

How do the filters avoid emptying your dataset?

The dangerous kind of scraper bug is a green run with zero rows: the buyer pays for the start and gets nothing, and nobody can see why. Two rules keep it out of this Actor.

A filter never depends on a field that the current mode does not fill. Filtering by publisher uses publisher_domain, which the feed supplies in its <source url=…> element, so publisher filters work with URL resolution turned off. The single filter that does need resolution — withUrlOnly — switches resolution on by itself and says so in the log, instead of silently returning nothing. So does fetchArticleMeta.

A missing value is not a mismatch. An article whose publisher Google did not state passes a publisher filter instead of being thrown away.

maxItems limits the output, not the crawl. When filters are on, the Actor collects with headroom and stops counting when it has delivered the number you asked for. Ask for 5 articles from one rare publisher and you get 5, not an empty dataset with 1100 articles quietly discarded behind it.

Output

One row per article. Fields Google did not publish stay empty; nothing is inferred or invented.

fieldwhat it is
titleheadline with the publisher suffix removed
title_rawheadline exactly as Google News published it
urlthe publisher's own article URL, resolved
url_resolvedwhether resolution succeeded for this row
google_news_urlthe original news.google.com redirect
publisherpublisher name as Google names it
publisher_domaindomain, www. stripped — group and filter on this
publisher_urlpublisher home page from the feed
descriptionog:description from the publisher page (fetchArticleMeta)
imageog:image from the publisher page (fetchArticleMeta)
snippetfeed text when it carries more than the headline
published_atISO 8601 UTC
published_timestampunix seconds, computed in UTC
relatedother outlets covering the same story: headline and link
related_counthow many of them
source_typesearch, topic, topic_url, geo or top
query, topic, geowhich input produced this row
geo_fallbacktrue when Google swapped your city for the national feed
edition, language, countrywhich Google News edition this came from
article_idGoogle's stable id for the article
change_typeNEW / UPDATED / UNCHANGED in monitor mode
scraped_atwhen this run collected it

Two output modes keep the rows small: compactOutput cuts to twelve fields for AI agents and spreadsheets, excludeEmptyFields drops keys with nothing in them.

Editions

Eighty Google News editions are offered, and all eighty were checked live on 2026-09-12 with the same query: every one returned articles, median 100 per feed. The edition sets the language of the results and decides which publishers Google treats as local, so DE:de for wirtschaft is a different newspaper set from AT:de for the same word.

Covered: United States, United Kingdom, Canada (English and French), Australia, India (English, Hindi, Bengali, Tamil, Telugu, Marathi, Malayalam, Gujarati, Kannada), Ireland, New Zealand, South Africa, Singapore, Philippines, Nigeria, Pakistan, Kenya, Ghana, Tanzania, Uganda, Germany, Austria, Switzerland, France, Belgium (French and Dutch), Spain, Mexico, Argentina, Chile, Colombia, Peru, Venezuela, US Spanish, Italy, Netherlands, Portugal, Brazil, Russia, Ukraine (Russian and Ukrainian), Poland, Czechia, Slovakia, Hungary, Romania, Bulgaria, Greece, Turkey, Israel, Sweden, Norway, Denmark, Finland, Lithuania, Latvia, Estonia, Slovenia, Croatia, Serbia, Japan, South Korea, China, Taiwan, Hong Kong, Thailand, Vietnam, Indonesia, Malaysia, Bangladesh, Egypt, Saudi Arabia, United Arab Emirates, Lebanon and Iran.

Input

inputdefaultwhat it does
queriesartificial intelligencesearch terms; Google operators work
topics—Google's own sections: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH
topicUrls—any topic or section page address copied from news.google.com
geoLocations—city feeds for local news
includeTopStoriesoffthe edition's front page
editionUS:enone of 80
daysBack7how far the day-window sweep goes
breakFeedCaponsplit by day to pass the ~100 cap
resolveArticleUrlsonpublisher URL instead of the Google redirect
fetchArticleMetaoffdescription and image from the publisher page
maxItems0hard stop on delivered rows
onlyNewoffmonitor mode with memory between runs
emitUnchangedoffdeliver known articles again
titleContains / excludeKeywords—keep or drop by words in the headline
publishers / excludePublishers—keep or drop by domain, subdomains included
publishedWithinHours0freshness window
withUrlOnlyoffonly rows with a resolved publisher URL
minRelatedArticles0only stories several outlets covered
includeRelatedArticlesonkeep the related-coverage array
compactOutput, excludeEmptyFieldsoffsmaller rows

Search terms accept Google operators: tesla OR rivian, bitcoin -ethereum, "exact phrase", site:reuters.com, and they combine with the day windows.

What this Actor does not do

Named plainly, because a limitation you find after paying is worse than one you read first.

  • No full article text. Google News does not carry it and this Actor does not fetch it. With fetchArticleMeta you get the publisher's own description and image, at the measured rate above, and nothing more.
  • No proxy, and that has a price. Roughly a third of publisher pages refuse a direct request, so fetchArticleMeta leaves those two fields empty on them. Feed reading and URL resolution are unaffected — both go through Google itself. Measured: 26 of 40 locally, 36 of 50 in the cloud.
  • Topic, city and top-story feeds cannot be swept by day. Only keyword search understands after:/before:, so those are snapshots of what Google shows right now: 56 to 70 articles. The same applies to topicUrls, and some topic ids that Google prints on its own front page answer 404 to the feed — the run report names them rather than leaving you with silence.
  • related links are Google redirects. The outlets covering the same story are resolved only if you collect them as articles in their own right.
  • Sentiment, entities and topic models are not included. You get the news data; scoring it is your pipeline's job.

FAQ

Do I need a Google News API key?

No. Google does not publish one — the official Google News API was retired years ago. This Actor reads the public feeds and needs no key, no token and no account with Google.

How many articles can I get for one keyword?

Measured: 2115 for tesla over thirty day windows, against 99 from the plain feed. The number depends on how much the world writes about your keyword; a busy term fills every daily window to the cap, a quiet one does not.

Is this a Google News API alternative?

It is a replacement for one, with structured JSON or CSV out of the box, the publisher URL included, and no quota. What it cannot do is give you articles Google News does not index.

How do I set up news monitoring or brand mentions alerts?

Put your brand and your competitors in queries, turn on onlyNew, and schedule the Actor hourly or daily in Apify. Each run delivers only articles you have not seen, so cost follows the news rather than the schedule. Connect it to Make, n8n, Slack or Google Sheets through the standard Apify integrations.

Why is url empty on some rows?

Either resolution was switched off, or Google refused to resolve that particular article. The row keeps google_news_url so nothing is lost, and url_resolved: false marks it. Use withUrlOnly to drop such rows entirely.

Why did my run return zero articles?

The report always says. filtered-out means the filters removed everything and the report names which filter removed how many. nothing-changed means monitor mode found no new articles. source-returned-nothing means Google News had no results for that input — a misspelled search term does this, and so does a narrow publishedWithinHours. charge-limit-reached means your spending limit for the run was already used up.

Can I track local news for a specific city?

Yes, with geoLocations. Check geo_fallback on the rows: if it is true, Google did not recognise the name and gave you the national feed instead. Try the spelling Google News itself uses on its site.

Does it work for non-English news?

Yes, in all 80 editions, and the results come back in that edition's language. Search terms should be in the language of the edition: wirtschaft for DE:de, 経済 for JP:ja.

How does the day-window sweep affect cost?

One window is one request. Thirty days for one keyword is thirty-one requests and roughly half a minute. You pay per delivered article, so the sweep costs you nothing extra beyond the articles you actually receive — use maxItems if you want a hard ceiling.

What happens if the run is interrupted?

Rows are pushed to the dataset in batches as they are collected, and the monitor memory is written only after a batch has been delivered. An interrupted run therefore never marks an article as delivered when it was not, and the next run picks up what was missed.

The feeds are public and this Actor collects published journalism metadata: headlines, publisher names, links and timestamps. It collects no personal data. You are responsible for complying with copyright, the terms of the publishers whose pages you open, and any applicable law in your jurisdiction.

How fast is it, and what does a run cost in compute?

Measured in the cloud at 512 MB, which is what this Actor is set to run on and about five times its observed peak of 106 MB:

runarticlestimeApify compute
default input, every link resolved1006.0 seconds$0.000414
7-day sweep of tesla, links resolved500116.7 seconds$0.005915
50 articles with fetchArticleMeta on5025.5 seconds$0.000904

That is the platform's compute charge, separate from what you pay per article. Turning resolution off makes a run several times faster and cheaper: the same 500-article sweep without it took 5.6 seconds.

What else is this called?

Also asked for as newsroom monitoring, which is the publisher field.