Google News Scraper
Pricing
from $0.40 / 1,000 articles
Google News Scraper
Scrape Google News by keyword, topic or location, past the 100-article cap: the Actor searches day by day and removes duplicates. Real publisher URLs decoded, optional full article text, new-only monitoring with webhook. Plain HTTP, no proxy.
Pricing
from $0.40 / 1,000 articles
Rating
0.0
(0)
Developer
Alex Morain
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Share
This Actor turns Google News into structured data. Give it search queries, topics, locations or Google News URLs, and it returns every article: headline, publisher, publication time, and the real article URL on the publisher's site, decoded from Google's redirect link. Optionally it opens each article and adds the full text, author and main image.
It reads Google News's own RSS feeds over plain HTTP. No browser, no login, no proxy to pay for. 1,300 articles take about a minute. Pricing is pay per event: $1.00 per 1,000 articles at the entry price, from $0.40 / 1,000 on Gold, URL decoding included; $2.50 per 1,000 articles with full text ($1.20 on Gold); and $0.002 per run.
Google News has no public API. This Actor is the closest thing to a Google News API: a query in, JSON out, scheduled or called from your code.
What does Google News Scraper do?
Google shows at most 100 articles per search, whatever period you ask for. Wider periods
do not help: Google picks a sample. On a 7-day search for mistral ai, Google's own
when:7d filter returns 54 articles and a 7-day date range returns 49. Searched one day at
a time, the same week holds 220.
So when you set a time range of 2 days or more, the Actor runs one search per day, newest day first, and merges them. Neighbouring days overlap in Google's results (its days end at midnight Pacific time, not UTC), so 10% to 25% of the raw rows are duplicates. The Actor removes them before pushing, and you are charged once per article.
Measured on 18 October 2026, US and French editions, 11 to 17 October:
| Query | Edition | when:7d | One 7-day search | This Actor, day by day |
|---|---|---|---|---|
mistral ai | US:en | 54 | 49 | 220 |
nvidia | US:en | 100 | 100 | 676 |
airbus | US:en | 100 | 100 | 583 |
renault | FR:fr | 100 | 100 | 570 |
The raw day-by-day feeds held 242, 800, 641 and 645 rows for these four: those extra rows are the overlap duplicates you are not charged for.
Why use this Google News scraper?
- Brand and media monitoring. Schedule it hourly or daily with New articles only: each run returns only articles never returned before, and a webhook pings Slack, Discord or your own endpoint when something new comes out. A quiet run costs $0.002.
- PR and competitor tracking. Every outlet that covered a launch, with the publisher URL ready to open, sort by domain or send to a spreadsheet.
- Datasets for analysis and AI. Months of coverage on a topic, with full text, for sentiment analysis, summaries or a RAG index.
- Sales signals. Funding rounds, hires and expansions of the companies you prospect,
using Google's operators:
"Example Company" (raises OR funding OR hires).
What you get that other Google News scrapers miss:
- Real publisher URLs. Google's RSS links point to
news.google.com/rss/articles/…. The Actor decodes each one to the publisher's address. Rows where decoding fails keep the Google link and are not charged. - Every article of each story. Topics, top stories and location feeds group several
outlets under one story, and only the lead article is a feed item. On the US top stories,
38 items hide 180 articles. With Include all articles of each story on (the default),
each becomes its own row, linked by
storyIdandstoryRank. - No silent fallback to US news. Google answers an edition code it does not know (say
UK:eninstead ofGB:en) with the US edition, without an error. The Actor checks every edition and skips an unknown one with a warning. - It tells you what it could not get. When one day still holds more than 100 articles for a broad query, the run's status message says which query and how many days, so you know to narrow it.
What data can I extract from Google News?
| Field | Description |
|---|---|
title | Headline, without the trailing " - Publisher" |
url | Article URL on the publisher's site, decoded |
source, sourceDomain | Publisher name and domain |
publishedAt | Publication time, ISO 8601 UTC |
input, inputType, edition | The query, topic, location or URL that found it, and the edition |
storyId, storyRank, storyPublishedAt | Story grouping for topic, top stories and location feeds |
text, textLength, author, image, summary | With Fetch article text on |
textStatus | ok, blocked (paywall or bot protection), not-found, no-article-text, error, not-decoded, not-requested |
googleNewsUrl, articleId | Google's link and ID for the article |
How to scrape Google News
- Type one or more search queries. Google's operators work:
"exact phrase",OR,-exclude,site:reuters.com,intitle:. - Pick a time range (
7d,1m,1y) or a fixed period with From date and To date. Without either, Google returns its default ranking, at most 100 articles. - Choose one or more editions (
US:en,GB:en,FR:fr,DE:de,IN:en,BR:pt-419…). - Set Max articles per query, or
0for every article of the period. - Press Start, then download the dataset as JSON, CSV, Excel or HTML.
Topics (business, technology, sports…), locations (Paris, Texas) and pasted Google News
URLs (a search or topic page from your browser) work the same way and can be combined
with queries in one run.
How much does it cost to scrape Google News?
| Event | Free | Bronze | Silver | Gold and up |
|---|---|---|---|---|
| Article, publisher URL decoded | $1.00 / 1,000 | $0.80 / 1,000 | $0.60 / 1,000 | $0.40 / 1,000 |
| Full-text article (instead of Article) | $2.50 / 1,000 | $2.00 / 1,000 | $1.60 / 1,000 | $1.20 / 1,000 |
| Run start | $0.002 | $0.002 | $0.002 | $0.002 |
A week of news on one busy company (about 600 articles) costs $0.60 on the Free plan, $0.24 on Gold. Duplicates, rows without a decoded URL, and articles already returned in New articles only mode are free. The log announces the maximum cost of the run at its start, and the Actor stops cleanly at the maximum charge you set in the run options.
Full text is charged only when it comes out. Paywalled and bot-protected sites return the article without text at the plain article price: in our tests from Apify's servers, 78% of articles came with text (about 70% in English, more in French).
Input
See the Input tab for every option. The ones worth knowing:
- Time range counts back from now. Up to 47 hours it uses Google's
when:filter (one search, at most 100 articles). From2don, it searches day by day. - From date / To date are UTC days. They take precedence over Time range.
- Editions multiply the searches: 3 queries in 2 editions are 6 searches, each with its own Max articles.
- Mode: New articles only keeps a registry in your Apify account, matched on Google's ID and on the publisher URL, so an article republished under a new Google link is still recognised. Registry key lets you keep one registry while you edit the query list.
- Webhook URL receives a JSON summary (
runId,datasetId,items,feeds) when a run returns at least one article.
Example, daily monitoring of two brands in English and French:
{"queries": ["\"Example Company\"", "\"Example Brand\" -recipe"],"editions": ["US:en", "GB:en", "FR:fr"],"timeRange": "2d","maxArticles": 0,"mode": "new-only","webhookUrl": "https://hooks.slack.com/services/T000/B000/XXXX"}
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
[{"title": "Example Company unveils its new electric model","url": "https://www.example-news.com/business/2026/10/17/example-company-electric-model","source": "Example News","sourceDomain": "example-news.com","publishedAt": "2026-10-17T09:30:00Z","googleNewsUrl": "https://news.google.com/rss/articles/CBMiXEFVX3lxTE5leGFtcGxl?oc=5","articleId": "CBMiXEFVX3lxTE5leGFtcGxl","storyId": null,"storyRank": null,"storyPublishedAt": null,"input": "\"Example Company\"","inputType": "query","edition": "US:en","textStatus": "ok","text": "Example Company presented its new electric model on Friday...","textLength": 3200,"author": "Jane Example","image": "https://www.example-news.com/images/example-model.jpg","summary": "Example Company's new model goes on sale next spring.","scrapedAt": "2026-10-17T10:00:00Z"},{"title": "Markets close higher as tech shares rally","url": "https://www.example-wire.com/markets/stocks-close-higher","source": "Example Wire","sourceDomain": "example-wire.com","publishedAt": null,"storyId": "CBMiYUFVX3lxTE9leGFtcGxl","storyRank": 2,"storyPublishedAt": "2026-10-17T21:05:00Z","input": "BUSINESS","inputType": "topic","edition": "US:en","textStatus": "not-requested","text": null}]
Tips
- Monitoring: schedule the same input with
timeRangea little longer than the schedule interval (2dfor a daily run,3hfor an hourly one) and New articles only. The overlap catches late-indexed articles, the registry makes sure you pay for each once. - Broad queries: if the status message reports days still at 100 articles, split the
query (
nvidia earnings,nvidia chips…), add editions, or narrow it withsite:orintitle:. Google exposes no finer slice than a day. - Full text at scale: keep the default 1 GB of memory. Text extraction is the slow part, about 2 articles per second.
- From code: call the Actor through the Apify API or the Python and JavaScript clients:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("alexmorain/google-news-scraper").call(run_input={"queries": ["Example Company"],"timeRange": "7d","maxArticles": 0,})for article in client.dataset(run["defaultDatasetId"]).iterate_items():print(article["publishedAt"], article["source"], article["url"])
FAQ
Is there a Google News API?
No public one. Google News exposes RSS feeds for searches, topics and locations, capped at about 100 items and with links that redirect through Google. This Actor reads those feeds, goes past the cap day by day and decodes the links: it is the practical Google News API.
How do I get more than 100 results from Google News?
Set a time range of 2 days or more, or From and To dates, and Max articles to 0. The Actor
runs one search per day of the period and merges them without duplicates.
Why does an article have no publisher URL?
Google could not resolve that link at the time of the run. The row keeps googleNewsUrl,
which still opens the article in a browser, and it is not charged. If a whole run has none,
Google has probably changed its link format: open an issue.
Why is publishedAt empty on some rows?
Those rows come from a story cluster in a topic, top stories or location feed. Google gives
a time for the story's lead article only: it is in storyPublishedAt.
Can I scrape a single publisher?
Yes: add site:example.com to a query, for example site:reuters.com tesla, or
site:example.com alone with a time range to list everything Google indexed from it.
Is it legal to scrape Google News?
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. Article texts belong to their publishers: use them for analysis, not republication.
Support
Something wrong or missing? Open an issue in the Issues tab, it gets answered and fixed. If the Actor saved you time, a short review helps others find it. This Actor is not affiliated with or endorsed by Google.