Google News Scraper (Search, Topics, Top Stories)
Pricing
$0.70 / 1,000 news articles
Google News Scraper (Search, Topics, Top Stories)
Google News articles by keyword, topic or top stories in any of 80+ editions: title, source, publisher URL, date, related coverage. Date ranges past 100 results. No proxy needed. $0.70 per 1,000.
Pricing
$0.70 / 1,000 news articles
Rating
0.0
(0)
Developer
Prague Data Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Share
Google News Scraper
Get Google News articles for any search query, for a topic, or for the top stories of 80+ country editions, one row per article: headline, publisher, link, publication date and related coverage. Media monitoring teams, analysts and researchers use it to follow a subject over time. $0.70 per 1,000 articles.
Why this one
| Price per 1,000 results | |
|---|---|
| This Actor | $0.70 |
| Popular alternatives (top 5 on the Store by users) | $2.00 – $5.00 |
The top five Actors for "google news scraper" list between $2 and $5 per 1,000 articles.
Quick start
Run the Actor with this input. Every other field has a default.
{"queries": ["electric vehicles"],"timeframe": "1d","maxItems": 50}
Compatible with the input of the leading Google News Actors, so you can switch by changing only the Actor ID:
| Leader | Fields accepted as they are |
|---|---|
data_xplorer/google-news-scraper-fast | keyword, maxArticles, timeframe (1h, 1d, 1w, 1m, 1y), region_language (US:en…), proxyConfiguration |
lhotanova/google-news-scraper | query, topics, topicsHashed, language, maxItems, dateFrom, dateTo, openEndedDateRange (12h, 7d…), fetchArticleDetails (→ decodeUrls) |
easyapi/google-news-scraper | query, maxItems, gl, hl, time_period (last_hour … last_year) |
Output keeps their main field names too: title, source, sourceUrl, link, url, rssLink, guid, publishedAt, publishedTimestamp.
Output example
One row, trimmed. The full field list is further down this page.
{"title": "UK Taxman to Tackle Rogue Advice From Artificial Intelligence","source": "Bloomberg.com","link": "https://www.bloomberg.com/news/articles/2026-10-22/uk-taxman-to-tackle-rogue-advice-from-artificial-intelligence","publishedAt": "2026-10-22T04:00:00.000Z","query": "artificial intelligence","position": 2,"isDecoded": true}
Use it from your code
The Actor id is praguedatalab/google-news-scraper. Replace YOUR_APIFY_TOKEN with your Apify API token.
Python (pip install apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("praguedatalab/google-news-scraper").call(run_input={"queries":["electric vehicles"],"timeframe":"1d","maxItems":50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('praguedatalab/google-news-scraper').call({"queries":["electric vehicles"],"timeframe":"1d","maxItems":50});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
curl (returns the rows as JSON; the endpoint waits for the run, up to 5 minutes, so keep the limits small)
curl -X POST "https://api.apify.com/v2/acts/praguedatalab~google-news-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["electric vehicles"],"timeframe":"1d","maxItems":50}'
Use it with AI agents
AI assistants can call praguedatalab/google-news-scraper through the Apify MCP server to get the latest articles for a query as JSON rows.
FAQ
Is it legal to scrape Google News?
The Actor reads the public Google News feeds and the links in them. It does not download article text. The articles belong to their publishers, so check the reuse rules before you republish headlines.
How much do 10,000 results cost?
$7.00. The price is $0.70 per 1,000 articles. Duplicates are not saved and not charged.
Do I need a proxy?
No. The default input does not use a proxy. Publisher link decoding is best effort: if Google shows a captcha, the rest of the run keeps the news.google.com link (isDecoded is false). The Actor never solves captchas.
How fresh is the data?
Each run reads the feeds when it runs. Use timeframe, or dateFrom and dateTo, to choose the period. A feed holds at most 100 articles per query.
Can I export to Excel, CSV or Google Sheets?
Yes. Each run saves a dataset that you can download as JSON, CSV or Excel. For Google Sheets, import the CSV, or connect Apify to Google Sheets with an integration.
Can I schedule it daily?
Yes. In the Apify Console, open the Actor, go to Schedules, and add a daily schedule with the same input. Each run is billed per result, as usual.
Input
| Field | Type | Description |
|---|---|---|
queries | array of strings | Google News searches. Operators work: "exact phrase", OR, -exclude, site:reuters.com, intitle:. Aliases: keyword, query. |
topics | array of strings | WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH, or a hashed topic id from a news.google.com/topics/<id> URL. |
topStories | boolean | Also read the edition's top stories (automatic when no query and no topic is given). |
language | string | Edition as COUNTRY:lang, e.g. US:en, GB:en, FR:fr, DE:de, CZ:cs. Default US:en. Aliases: region_language, gl + hl. |
timeframe | string | 1h, 1d, 7d, 30d, 1y (also 1w, 1m, 12h, 3d, last_week…). Ignored when dateFrom/dateTo is set. |
dateFrom, dateTo | string | Publication days, YYYY-MM-DD. dateTo defaults to today. |
maxItems | integer | Maximum articles saved per run, all feeds together (queries first, then topics, then top stories). Default 100. Alias: maxArticles. |
splitByDay | boolean | Google returns at most 100 articles per search. When maxItems is above 100 and the range covers several days, each day is searched separately. Default on. |
decodeUrls | boolean | Replace the news.google.com link with the publisher article URL (two extra requests per article, about 1 s each). Default off. |
deduplicate | boolean | Save each article once across queries, days and topics. Default on. |
proxyConfiguration | object | Not needed. Use it only if Google rate-limits your runs. |
Output fields
| Field | Description |
|---|---|
title | Headline without the " - Source" suffix Google adds. |
source | Publisher name. |
sourceUrl | Publisher home page. |
link | Publisher article URL when decodeUrls worked, otherwise the news.google.com link (it opens the article in a browser). |
url | Same as link. |
rssLink | The news.google.com/rss/articles/… link from the feed. |
isDecoded | true when link is the publisher URL. |
guid | Google News article id, used for deduplication. |
publishedAt | Publication time, ISO 8601 UTC. |
publishedTimestamp | Publication time in milliseconds since 1970. |
position | Position in its feed, 1 = first. |
query | Search query that returned the article (null for topics and top stories). |
topic | Topic name or id, TOP_STORIES, or null for searches. |
feed | search, topic or top. |
language | Edition used. |
relatedArticles | Other coverage of the same story: title, source, link. |
scrapedAt | When the row was saved, ISO 8601 UTC. |
Pricing
Pay per event: $0.0007 per article saved ($0.70 per 1,000), the same with or without decodeUrls. Duplicates are not saved and not charged. Set maxItems (or a maximum cost per run) to control the total. No platform usage is added on top.
Limits
- Google News returns at most 100 articles per feed. Long ranges are split into days automatically. A single very busy day still caps at 100 per query, so split the query into narrower ones (
site:, extra keywords) if you need more. - Decoding publisher URLs is best effort. If Google answers with a captcha page, decoding stops for the rest of the run and those rows keep the
news.google.comlink (isDecoded: false). The Actor never solves captchas. - Article bodies are not downloaded. Use the
linkwith a page scraper if you need the text. - Headlines and links come from Google News feeds; the articles belong to their publishers.