Google News Scraper
Pricing
from $2.00 / 1,000 news articles
Google News Scraper
Scrape Google News headlines by keyword, topic, city or any Google News URL in any language and country. Every record has the title, publisher, publish time, related coverage and the resolved publisher URL - no extra charge for URL resolution.
Pricing
from $2.00 / 1,000 news articles
Rating
0.0
(0)
Developer
Matthew Curtis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Pull headlines out of Google News the way you would read it: by keyword search, by topic section (Top stories, World, Business, Technology, Sports, …), by city / region (local news) or from any Google News URL you copy from the browser - in any of Google News' languages and country editions.
Every record is one unique story with the headline, publisher name and site, publish time, a short snippet, the other publishers covering the same story, and - unlike the Google News feed itself - the resolved publisher URL, so you can open or crawl the real article. URL resolution is included in the per-article price; there is no extra event for it.
Typical uses: media monitoring and brand alerts, competitor and industry news feeds, RSS replacement for dashboards and AI agents, local-news aggregation, trend and sentiment pipelines, feeding an article crawler with fresh publisher links.
What you get
One dataset record per story:
{"id": "CBMirAFBVV95cUxNYjF6M2x3R2hodlk0dGJGZGFKNmNZQlBEOVd1SXA2b2pGQk9wQnl2TnhZeldjZ25ZdzduTERsTTVfeDh5bzJpNXhKRTV6c1NwbnhPTjVjMGJBa1A0WVdWWUxfUHFPTVhLLXdoeVN0MWgtbVhGNGlsT2JzbVF3c3JQSk9XbXprNWIxZ3JhRlE5cW11ZU1US3Z4dmtYYXMwQ2ozY2lNM24tMGV4SXZZ","title": "Exclusive: Longhorns used AI against Florida — a 'new wave' for UT sports","url": "https://www.statesman.com/business/technology/article/texas-football-athletics-ai-bevo-lab-dell-22484462.php","publisher": "Austin American-Statesman","publisherUrl": "https://www.statesman.com","publishedAt": "2026-10-23T14:16:41.000Z","googleNewsUrl": "https://news.google.com/rss/articles/CBMirAFBVV95cUxN...?oc=5","description": "Exclusive: Longhorns used AI against Florida — a 'new wave' for UT sports","relatedArticles": [{ "id": "CBMi...", "title": "Apple's Foldable iPhone Duo Arrives in Stores: Smartphone Review", "publisher": "The New York Times", "googleNewsUrl": "https://news.google.com/rss/articles/CBMi...?oc=5" }],"urlResolution": "api","source": { "type": "search", "value": "artificial intelligence", "feedUrl": "https://news.google.com/rss/search?q=artificial%20intelligence&hl=en-US&gl=US&ceid=US%3Aen" },"language": "en-US","country": "US","scrapedAt": "2026-10-24T19:39:05.910Z"}
| Field | Meaning |
|---|---|
id | Google News story id (stable; used for deduplication) |
title | Headline with Google's " - Publisher" suffix removed |
url | Resolved publisher article URL, or null when resolution was off or failed |
publisher, publisherUrl | Publisher name and homepage as shown by Google News |
publishedAt | ISO 8601 UTC publish time |
googleNewsUrl | The Google News redirect link |
description | Up to 300 characters: the headline, or for clustered stories the related headlines and publishers |
relatedArticles | Other publishers' coverage of the same story (empty when includeRelated is off or the story is not clustered) |
urlResolution | api (resolved through Google News), offline (legacy id decoded locally), skipped (resolveUrls off) or failed |
source | Which feed produced the record: search, topic, location or url, with the value and the feed URL |
language, country | The Google News edition used |
The key-value store also holds a SUMMARY record with feed counts, items seen, duplicates skipped, URL-resolution counts and whether maxItems was reached.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
queries | string[] | ["artificial intelligence"] | One Google News search per entry. Operators work: "exact phrase", OR, -word, site:reuters.com, intitle:, allintext:, when:7d, before:2026-01-01, after:2026-01-01. Each search feed returns up to ~100 newest stories. |
topics | enum[] | [] | Headline sections: TOP, WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH. |
locations | string[] | [] | Local-news feeds, e.g. Chicago, Sydney NSW, Bavaria. |
startUrls | request list | [] | Google News search / topic / section / RSS URLs copied from the browser; converted to RSS automatically. Other URLs are ignored (listed in the log and SUMMARY). |
language | string | en-US | Google hl: en-US, en-GB, de, fr, es, pt-BR, ja, hi, … |
country | string | US | Google gl; empty derives it from the language. Together they pick the edition (ceid). |
timeRange | enum | any | 1h, 1d, 7d, 1m, 1y - applied to search queries only, unless the query already has when:. |
maxItems | integer | 100 | Total unique stories per run (exact). |
maxItemsPerFeed | integer | 100 | Cap per query / topic / location / URL. Google returns at most about 100 per feed. |
resolveUrls | boolean | true | Resolve each Google News link to the publisher URL (two lightweight requests per story, no extra charge). Off = faster, Google links only. |
includeRelated | boolean | true | Keep relatedArticles. |
proxyConfiguration | object | Apify proxy | Datacenter proxies are fine for normal volumes; use residential if Google rate-limits very large runs. |
At least one of queries, topics, locations or startUrls is required.
Example inputs
Media monitoring, last 24 hours, UK edition:
{ "queries": ["\"Acme Corp\" OR \"Acme Corporation\"", "Acme recall"], "language": "en-GB", "country": "GB", "timeRange": "1d", "maxItems": 200 }
German business and tech headlines plus Bundesliga, Google links only (fastest):
{ "topics": ["BUSINESS", "TECHNOLOGY"], "queries": ["Bundesliga"], "language": "de", "country": "DE", "resolveUrls": false }
Local news for several cities:
{ "locations": ["Chicago", "Austin TX", "Denver"], "maxItemsPerFeed": 30, "maxItems": 90 }
Pricing
Pay per event. $0.005 per run start plus $0.002 per story returned ($2 per 1,000), with publisher URL resolution and related coverage included. A default run of 100 stories costs about $0.21. Compared with other Google News Actors on the Store (typically $0.002–0.005 per item, some charging extra for resolved URLs), this is at the low end with the resolved URL built in.
How it works and limitations
- The Actor reads Google News' public RSS feeds (search, section, local and topic feeds) and, when
resolveUrlsis on, resolves each story link through Google News' own redirect service to the publisher URL. No login, cookies or CAPTCHA solving are involved. - Google News caps feeds at roughly 100 stories each. For more coverage, split a broad query into several narrower ones or use
when:/before:/after:ranges, and uselocationsandtopicsalongside queries. maxItemsis exact and filled in the order feeds finish; usemaxItemsPerFeedto balance several feeds.- Output is facts and metadata only: headline, publisher, time, links and a snippet of at most 300 characters. Article bodies and images are not copied; use the
urlwith an article crawler if you need full text. - Stories are deduplicated by Google's story id within a run (the same story appearing in two feeds is returned once, attributed to the first feed that produced it).
- Google occasionally rate-limits an IP; the Actor retries with a new session and proxy. If a feed still fails after 3 retries it is counted in
SUMMARY.feedsFailed, and the run fails only when every feed failed.
Get alerted when records change
Pair this Actor with Dataset Diff & Alert Monitor to receive only the new, changed or removed records in Slack, Discord, Telegram or a webhook. Schedule the monitor, not this Actor: it runs this Actor for you, compares runs by id, and a run that finds nothing costs only the comparison. Scheduled hourly this is a Google Alerts replacement you control: your keywords, your edition, your channel, at $0.002 per new story plus the comparison.
{"sourceActorId": "mdcurt/google-news-scraper","sourceInput": {"queries": ["\"Acme Corp\" OR \"Acme Corporation\""],"timeRange": "1d","maxItems": 100},"keyFields": ["id"],"notifyOn": ["added"],"labelField": "title","urlField": "url","slackWebhookUrl": "https://hooks.slack.com/services/…"}
Changelog
- 1.0.0 (2026-10-24) - Initial release: search, topic, location and start-URL feeds; language/country editions; time range; publisher URL resolution (API + offline legacy ids); related coverage; exact
maxItems; SUMMARY record.