Skip to the content.

Google News Scraper

Google News articles by keyword, topic or country, with the real publisher URL decoded. From $0.003 / article, pay per result, no browser, no login.

▶ Run it on Apify · Python example · All scrapers

Get Google News articles as clean JSON, CSV or Excel — with the real publisher URL, not the news.google.com redirect. Search any keyword, follow whole topic sections or the top stories, in any language and country. This Google News scraper reads Google News feeds directly and decodes every link — no headless browser, no API key — so runs are fast and cost a fraction of a cent per article.

✅ Real article URLs: Google’s news.google.com/rss/articles/CBMi… links decoded to the publisher’s page ✅ Search with Google News operators: "exact phrase", OR, -exclude, site:reuters.com, intitle:, after: / before: dates ✅ Topic sections: World, Nation, Business, Technology, Entertainment, Sports, Science, Health ✅ Top stories of any edition ✅ Any language and country: en-US, en-GB, pt-PT, pt-BR, fr-FR, de-DE, es-ES, it-IT, ja-JP… several in one run ✅ Time filters: past hour, 24 hours, 7 days, 30 days, year ✅ Related coverage: other outlets covering the same story ✅ Title, source, source website, publication date (ISO), rank — up to 100 articles per search


🚀 Why this Google News API is different

  This Actor Typical Google News scrapers
Real publisher URLs Yes, decoded Often only news.google.com redirects
Several countries/languages per run Yes One per run
Topics + top stories + searches in one run Yes Usually searches only
Related coverage of the same story Yes No
Browser needed No — 48 articles with decoded URLs in ~30 s Slow headless Chrome
Blocking handling Session retries, new IPs, automatic residential fallback Fails on cloud IPs

💡 What can you do with Google News data?


🛠️ How to scrape Google News (3 steps)

  1. Add searches (one per line), topic sections or top stories.
  2. Choose editions (e.g. en-US, pt-PT) and a time range.
  3. Click Start and download your dataset as JSON, CSV, Excel, XML or HTML, or fetch it through the API.

📥 Input example

{
  "queries": ["\"artificial intelligence\" regulation", "site:reuters.com tesla"],
  "topics": ["BUSINESS", "TECHNOLOGY"],
  "topStories": true,
  "editions": ["en-US", "en-GB"],
  "timeframe": "1d",
  "maxArticlesPerFeed": 50,
  "decodeUrls": true
}

📤 Output example

{
  "position": 1,
  "title": "Pokémon Happy Meals Are Coming to McDonald's in an Exciting New Way",
  "source": "Pokemon.com",
  "sourceUrl": "https://www.pokemon.com",
  "publishedAt": "2026-10-29T14:04:41+00:00",
  "url": "https://www.pokemon.com/us/news/pokemon-happy-meals-are-coming-to-mcdonalds-in-an-exciting-new-way-",
  "googleNewsUrl": "https://news.google.com/rss/articles/CBMi…",
  "relatedCoverage": [
    { "title": "McDonald's Pokémon cards 2026: set list and release dates", "source": "VICE", "googleNewsUrl": "https://news.google.com/rss/articles/CBMi…" }
  ],
  "feedType": "search",
  "feed": "pokemon cards",
  "edition": "en-US"
}

⚙️ Input parameters

Field Type Default Description
queries array ["artificial intelligence"] One search per line. Google News operators work: “exact phrase”, OR, -exclude, site:reuters.com, intitle:bitcoin, after:2026-01-01, before:2026-06-30.
topics array — Headlines of whole Google News sections, in each edition below.
topStories boolean false Also get the Top stories page of each edition.
editions array ["en-US"] Google News editions to search, e.g. en-US, en-GB, pt-PT, pt-BR, fr-FR, de-DE, es-ES, it-IT, ja-JP. Every query and topic runs in each edition.
timeframe string — Only articles published in this period. Use after:/before: in the query for exact dates. Values: ``, 1h, 1d, 7d, 30d, 1y.
maxArticlesPerFeed integer 50 Google News returns up to 100 articles per search or section. Lower it to control cost.
decodeUrls boolean true Replace Google News redirect links (news.google.com/rss/articles/CBMi…) with the real article URL on the publisher’s site.
proxyConfiguration, maxRetries object, integer Apify Proxy, auto Proxy and retries; the defaults work for most runs.

📋 Output fields

Field Type Description
position integer Rank of the article in the feed
title string Headline, without the source suffix
source string Publisher name
sourceUrl string Publisher home page
publishedAt string Publication time, ISO 8601 UTC
googleNewsUrl string Google News link of the article
url string Decoded article URL on the publisher’s site
relatedCoverage array Other articles about the same story
feedType string search, topic or top
feed string Search query, topic name or Top stories
edition string Edition language-country, e.g. en-US

Export as JSON, CSV, Excel, XML or HTML, or read it through the API.


💰 Pricing — pay only for articles

What you run Results Cost (free plan)
1 search, top 20 articles 20 $0.06
5 searches × 50 articles 250 $0.75
Top stories of 3 countries ~100 $0.30
Hourly brand monitoring (10 new articles/hour) ~7,200/month ~$21.60/month

Higher Apify plans pay less: $0.0025 (Bronze), $0.002 (Silver), $0.0015 (Gold and above). Platform usage and proxies are included. Set a maximum cost per run and the Actor stops cleanly when it is reached. Failed searches are never charged.


🔌 Use the Google News API from your code

Python

from apify_client import ApifyClient  # pip install "apify-client>=3"

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("victorrodi/google-news-scraper-api").call(
    run_input={"queries": ["nvidia earnings"], "timeframe": "1d", "maxArticlesPerFeed": 20}
)
for article in client.dataset(run.default_dataset_id).iterate_items():
    print(article["publishedAt"], article["source"], article["title"], article["url"])

JavaScript / Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('victorrodi/google-news-scraper-api').call({
  topics: ['TECHNOLOGY'],
  editions: ['en-US', 'fr-FR'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((a) => console.log(a.edition, a.title, a.url));

cURL (run and get the results in one call)

curl -X POST "https://api.apify.com/v2/acts/victorrodi~google-news-scraper-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"queries": ["bitcoin"], "timeframe": "1h", "maxArticlesPerFeed": 10}'

Also works with Make, Zapier, n8n, Google Sheets, Slack, LangChain and MCP / AI agents through Apify integrations.

🤖 Use it from AI agents (Claude, ChatGPT, Cursor…)

This Actor is available to AI assistants through the Apify MCP server. Add it with --actors victorrodi/google-news-scraper-api, then ask:

“What does the press say about Nvidia today? Use the Google News scraper and summarize the 10 latest articles with their links.”

“List today’s top business stories in Portugal and Brazil.”


🛡️ Reliability

More examples and docs for all our Actors: trendpulse-scrapers.


📌 Tips


❓ FAQ

Is there an official Google News API? No. Google retired its News API years ago; this Actor reads the public Google News feeds.

Why are Google News links decoded? Google News feeds only give news.google.com/rss/articles/… redirect links. The Actor resolves them to the article on the publisher’s site so you can read, store or summarize it directly.

Which countries and languages are supported? Every Google News edition: use the language-COUNTRY code (en-US, en-IN, pt-BR, es-MX, de-DE, ja-JP…).

Do I get the full article text? You get the title, source, date, rank, related coverage and the real URL. Use the URL with any article extractor (e.g. Apify’s Website Content Crawler) for the full text.

Is scraping Google News legal? The Actor collects public headlines, sources and links — no personal data. Respect publishers’ copyrights and the terms and laws that apply to you.


💬 Support

Missing a field or found an issue? Open an issue in the Issues tab — it is answered fast. Feature requests are welcome.