Google News Scraper
Pricing
from $1.20 / 1,000 article scrapeds
Google News Scraper
Scrape Google News by keyword, topic or date range, past the 100-result limit. Get headlines, publishers, real publisher article URLs and dates as JSON, CSV or Excel, via API or MCP. Pure HTTP, fast and cheap.
Pricing
from $1.20 / 1,000 article scrapeds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
7
Bookmarked
870
Total users
209
Monthly active users
11 hours ago
Last modified
Features
Share
📰 Scrape Google News articles by keyword, topic or date range. Get headlines, publishers, real publisher article URLs and publication dates — past Google's 100-result limit, with the publisher URL included at no extra charge.
What does Google News Scraper do?
Google News Scraper extracts news articles from Google News using RSS feeds. Search by keyword (e.g., "artificial intelligence", "climate change") or browse predefined topics like Technology, Business, Sports, Health, and more. Returns structured data including article title, publisher name, the real publisher article URL, publication date, and the Google News link. Limit results to a date range with publishedAfter and publishedBefore.
Pure HTTP — no browser needed. Small runs finish in a few seconds on 512 MB memory. No API key or Google account required.
Who is it for?
📊 Market researchers & analysts
- Track news coverage of brands, products, or industries
- Monitor competitor mentions across news sources
- Build media monitoring dashboards with scheduled scraping
🤖 AI/ML engineers
- Collect training data for NLP models and sentiment analysis
- Build news-aware RAG pipelines with fresh article data
- Feed real-time news into LLM applications
📈 Marketing & PR teams
- Monitor brand mentions and media coverage
- Track industry trends and breaking news
- Build daily news digests for stakeholders
💼 Financial analysts & traders
- Monitor news about stocks, crypto, and market events
- Track geopolitical events affecting investments
- Build news-driven trading signals
Why use Google News Scraper?
- 🔗 Real publisher URLs — each Google News redirect link is decoded to the publisher's article URL (
publisherUrl), included in the article price - 📈 Past the 100-result limit — for larger limits the Actor walks back day by day, so one query can return hundreds or thousands of articles
- 🗓️ Date ranges —
publishedAfterandpublishedBeforefor monitoring windows and historical research - ⚡ Fast — 5 articles in about 2 seconds, 100 articles with publisher URLs in about 25 seconds (pure HTTP, no browser)
- 💰 Publisher URL included — $0.0023 per article on the FREE plan ($0.0012 on GOLD) plus $0.005 per run; some alternatives charge $0.0005–$0.001 extra per resolved URL
- 🔑 No API key or login needed — uses public Google News RSS feeds
- 📰 8 topic categories — Technology, Business, Sports, Health, Science, World, Entertainment, Nation
- 🌍 Multi-language — supports any Google News language/country combination
- 📊 Structured output — clean JSON/CSV/Excel ready for analysis
- 🔄 Schedule runs — monitor news topics daily, hourly, or on any schedule
- 🔗 5,000+ integrations — connect to Google Sheets, Slack, Zapier, Make, and more
- 🪶 Lightweight — 512 MB default memory, costs fractions of a cent per run
What data can you extract?
| Field | Description |
|---|---|
| 📰 title | Article headline (cleaned, without source suffix) |
| 🔗 url | Google News link (redirects to the article) |
| 🌐 publisherUrl | Real publisher article URL, decoded from the Google News link (null if decoding is off or unavailable) |
| 🏢 source | Publisher name (e.g., Reuters, CNN, BBC) |
| 🏠 sourceUrl | Publisher homepage |
| 📅 publishedAt | ISO 8601 publication timestamp |
| 📝 description | Text Google News supplies for the item; for most articles it repeats the headline |
| 🔍 query | Search query that found this article |
| 📂 topic | Google News topic category (if browsing by topic) |
| 🌍 language | Language code used for the search |
| 🏳️ country | Country code used for the search |
How much does it cost to scrape Google News?
Google News Scraper uses pay-per-result pricing. You only pay for articles extracted.
If you request many queries/topics, set Maximum charge per run in the actor settings first. This actor now checks the charge cap during extraction and stops processing once the cap is reached.
| Event | FREE plan | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Run started | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 | $0.005 |
| Per article | $0.0023 | $0.002 | $0.00156 | $0.0012 | $0.0008 | $0.00056 |
Example costs (FREE plan):
- 10 articles: ~$0.03
- 50 articles: ~$0.12
- 100 articles: ~$0.24
With the free $5 monthly credit, you can scrape ~2,000 articles per month at no cost.
How to scrape Google News
- Go to Google News Scraper on Apify Store
- Enter search keywords (e.g., "tesla earnings") or select a topic category
- Set the maximum number of articles to extract
- Click Start: small runs finish in seconds
- Download your data as JSON, CSV, or Excel
Example input — search by keyword:
{"queries": ["artificial intelligence"],"maxArticles": 50}
Example input — multiple queries:
{"queries": ["tesla", "spacex", "nvidia"],"maxArticles": 20}
Example input — browse by topic:
{"topic": "TECHNOLOGY","maxArticles": 100}
Example input — scheduled monitoring since an exact date:
{"queries": ["OpenAI", "AI regulation"],"publishedAfter": "2026-08-31T00:00:00Z","maxArticles": 50}
Example input — historical date range, more than 100 articles:
{"queries": ["electric vehicles"],"publishedAfter": "2026-10-01","publishedBefore": "2026-10-05","maxArticles": 1000}
publishedAfter and publishedBefore are optional. They accept an ISO 8601 date (2026-08-31) or datetime (2026-08-31T12:00:00Z), and filter before the per-feed article limit and result charge are applied. A year (2025) or month (2025-06) means the first day of that period. Google's own date operators work on whole days, and wide ranges are sampled thinly, so the Actor queries one day at a time when it needs more articles.
Example input — non-English news:
{"queries": ["économie française"],"language": "fr","country": "FR","maxArticles": 30}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| queries | array | - | Search keywords (e.g., "bitcoin", "climate change") |
| topic | string | - | Browse by topic: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH |
| language | string | en | Language code (en, fr, de, es, pt, ja, etc.) |
| country | string | US | Country code (US, GB, FR, DE, JP, etc.) |
| publishedAfter | string | - | Optional ISO 8601 date or datetime; only emit articles published at or after this instant |
| publishedBefore | string | - | Optional ISO 8601 date or datetime; only emit articles published before this instant |
| maxArticles | integer | 100 | Maximum matching articles per query/topic (up to 5,000; topic feeds return up to ~100) |
| decodeUrls | boolean | true | Decode Google News links to real publisher URLs (publisherUrl); turn off for the fastest runs |
Output example
{"title": "The Rapid Trajectory Of Artificial Intelligence","url": "https://news.google.com/rss/articles/CBMi...","publisherUrl": "https://www.forbes.com/sites/example/2026/03/14/the-rapid-trajectory-of-artificial-intelligence/","source": "Forbes","sourceUrl": "https://www.forbes.com","publishedAt": "2026-03-14T15:49:51.000Z","description": "The Rapid Trajectory Of Artificial Intelligence","query": "artificial intelligence","topic": "","language": "en","country": "US","scrapedAt": "2026-03-17T23:42:20.573Z"}
Reliability and diagnostics
Temporary HTTP/network failures and rate limits (429/5xx) are retried a bounded number of times, and retries switch to a fresh Apify datacenter proxy IP so a throttled address is not reused. The run also keeps a reserve before its timeout. Every query gets its first request before any publisher URL is decoded or any query collects further back, and the time left is shared between queries, so one slow or sparse query cannot use up the run. Time a quick query leaves unused goes back to queries still collecting. If time runs out, the run stops cleanly and succeeds with the articles saved so far; publisher URLs that had no time to decode are null, and the status message says how far back it searched. If a request fails after its retries, or a feed could not be requested before the time limit, articles already saved stay and the run still succeeds, with a status message giving the count delivered, the count asked for and the cause. A run that delivers nothing because of a failure or the time limit fails. Each run ends with a status message such as "Got 100 of 100 articles" or "Got 21 of 300 articles … (searched from 2026-10-01 to 2026-10-05; no more articles in range)". Invalid input fails before anything is charged, with a status message naming the field to fix. If the maximum charge per run is reached, the run saves and charges only the articles that fit, then says so. If a publisher URL cannot be decoded, publisherUrl is null and the article is still delivered. A valid empty RSS feed, or a feed with no articles matching publishedAfter, can legitimately succeed with zero rows. Prices and charge events are unchanged.
Failed operations send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed; reports are retained for 30 days.
This Actor uses no AI/model provider, paid external API or browser. Apify Proxy (datacenter) is used only for retries after a failed request, at no extra charge to you. Google receives your search terms and locale to return public news metadata; do not submit secrets or sensitive personal data as queries. Apify hosts run input, output datasets and logs under your account's retention settings; you can delete these through Apify Console/API. No cross-run cache is created. Private sanitized diagnostics are hosted by Automation Lab's self-hosted service in Germany, not used for model training, and expire after 30 days. Use Apify Store issues for support. This independent tool is not affiliated with or endorsed by Google.
Tips for best results
- ⚡ Use specific keywords — "tesla earnings Q1 2026" returns more relevant results than just "tesla"
- 📰 Combine queries — add multiple related queries to get broader coverage
- 🔄 Schedule hourly — for breaking news monitoring, schedule runs every 1-2 hours and set
publishedAfterto the start of the desired window - 🌍 Use local language — set
languageandcountryto get region-specific news - 📂 Use topics for broad coverage — TECHNOLOGY, BUSINESS, etc. give curated top stories
- 💡 More than 100 articles — raise
maxArticles(up to 5,000); search queries are collected day by day, topic feeds return up to ~100. With publisher URLs on, the default 300-second timeout fits about 700 articles in total across all queries: raise the timeout for bigger jobs, or turndecodeUrlsoff
Integrations
- 📊 Google News → Google Sheets — auto-populate a spreadsheet with daily news about your brand or industry
- 🔔 Google News → Slack — get instant notifications when news breaks about your company or competitors
- ⚡ Google News → Make/Zapier — trigger workflows when specific topics trend in the news
- 📅 Scheduled monitoring — run every hour to build a live news dashboard
- 🔗 Webhooks — process new articles in real-time for sentiment analysis or alerting
API usage
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/google-news-scraper').call({queries: ['artificial intelligence'],maxArticles: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/google-news-scraper').call(run_input={'queries': ['artificial intelligence'],'maxArticles': 50,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL:
curl "https://api.apify.com/v2/acts/automation-lab~google-news-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"queries": ["artificial intelligence"],"maxArticles": 50}'
RSS feed export for monitoring
For scheduled news monitoring, create an Apify task and export the latest run as RSS with Apify's positional outputFields mapping:
https://api.apify.com/v2/actor-tasks/{TASK_ID}/runs/last/dataset/items?format=rss&fields=title,url,description,publishedAt&outputFields=title,link,description,pubDate&token=YOUR_API_TOKEN
Use with AI agents via MCP
Google News Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/google-news-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/google-news-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Use automation-lab/google-news-scraper to get the latest news about OpenAI and summarize the top 5 stories"
- "Scrape Google News for 'climate change policy' and analyze sentiment across sources"
- "Get today's top technology news and create a briefing document"
Learn more in the Apify MCP documentation.
Legality
Google News Scraper accesses publicly available RSS feeds provided by Google — the same data accessible to any RSS reader. RSS feeds are explicitly designed for programmatic consumption.
You should always:
- Comply with Google's Terms of Service
- Respect rate limits and avoid excessive requests
- Use the data responsibly and ethically
- Handle any personal data in accordance with GDPR and applicable privacy laws
FAQ
How fast is Google News Scraper?
Fast — about 2 seconds for 5 articles and about 25 seconds for 100 articles with publisher URLs; with decodeUrls off, 100 articles take a few seconds. It uses Google News RSS feeds (pure HTTP), so there's no browser overhead.
How much does it cost to scrape 100 articles? On the FREE plan: $0.005 (start) + 100 × $0.0023 = $0.24. On BRONZE: $0.21. On GOLD: $0.13.
How is this different from the Google Search Scraper? Google News Scraper focuses specifically on news articles from Google News, using RSS feeds for speed and reliability. Google Search Scraper returns web search results. Use this actor when you specifically need news coverage.
Do I get the real article URL?
Yes. Google News feeds only provide Google redirect links (url); the Actor decodes each one to the publisher's article URL in publisherUrl, at no extra charge. Set decodeUrls to false if you only need the Google links.
Why did my run return 0 results? This usually means your search query didn't match any news articles. Try broader keywords or check spelling. Very niche or recent topics may have limited coverage.
How do I monitor news about my brand or competitors automatically?
Set up a scheduled run that fires daily or hourly with your brand name and competitor names as queries. Set publishedAfter to an ISO 8601 date or datetime at the start of your monitoring window so the Actor emits and charges only for matching recent articles. Each result remains timestamped in publishedAt for downstream processing.
For alerting, connect the actor to Slack via Apify's native integration or Zapier. Configure a filter that triggers a Slack notification whenever new articles appear. This gives you a lightweight media monitoring system without paying for tools like Mention or Brand24 — and you can track as many terms as you want since pricing is per-article, not per-keyword.
What is the difference between Google News Scraper and Google Search Scraper?
Google News Scraper targets Google News specifically — it uses Google's public RSS feeds, which are curated for news content only. Results are news articles from publishers indexed by Google News, filtered and ranked for recency and relevance to the news cycle.
Google Search Scraper returns general web search results, which can include news articles, but also blog posts, forum threads, product pages, and anything else Google indexes. Use Google News Scraper when you want only journalism and news coverage. Use a general search scraper when you want broader web presence tracking.
A practical distinction: searching "Tesla" in Google News returns Reuters, Bloomberg, and TechCrunch articles from the past 24–72 hours. Searching "Tesla" in Google Search returns Tesla's homepage, Wikipedia, stock pages, and then maybe news articles.
Can I scrape Google News in languages other than English?
Yes. Set the language and country parameters to target any language/region combination that Google News supports. For example, language: "de" and country: "DE" returns German-language news from German sources. Common combinations:
| Language | language | country |
|---|---|---|
| French | fr | FR |
| German | de | DE |
| Spanish | es | ES |
| Japanese | ja | JP |
| Portuguese | pt | BR |
| Italian | it | IT |
For regional news monitoring (e.g., tracking how an event is covered differently in France vs. the US), run the same query multiple times with different language/country pairs and compare sources and framing across datasets.
How do I build a news dataset for NLP or AI training?
Google News Scraper is commonly used to build text corpora for sentiment analysis, named entity recognition, topic classification, and LLM fine-tuning. A typical pipeline:
- Define a set of queries covering your domain (e.g., finance, climate, tech).
- Schedule hourly or daily scrapes to accumulate articles over time.
- Store results in a database (PostgreSQL, MongoDB, or BigQuery via the Apify integration).
- Use the
publisherUrlfield to fetch full article text from the original source for deeper analysis — Google News descriptions are often truncated. - Deduplicate on
url+publishedAtto avoid training on repeated content.
The actor can return thousands of articles per query per run, making it practical to build datasets of tens of thousands of articles per month at very low cost (well under $5/month on the free plan).
Why do I get fewer articles than I asked for?
Each Google News feed returns at most ~100 articles. For search queries the Actor collects more by querying one day at a time, so you get up to maxArticles when Google has them. Quiet stretches are searched in wider windows, up to 32 days, and any wide window that returns articles is searched again day by day. With publishedAfter it searches the whole range (until the run timeout). Without it, it stops after about 14 days with no new articles (at most one year back) and says so; set publishedAfter to search further back. Topic feeds cannot be split by date and return up to ~100. The run's status message says how many were delivered and why it stopped.
Coverage is also bounded by how much news exists for a topic. Niche or very specific queries may only have a handful of recent articles indexed — requesting 100 doesn't guarantee 100 results if Google News hasn't indexed that many.
Factors that reduce article counts:
- Very specific queries — "niche product recall 2026" may have 3 articles, not 100.
- Slow news days — breaking news topics spike in volume; quieter topics have fewer daily articles.
- Language/country filtering — narrowing to a specific country naturally reduces the pool.
To maximize coverage, use broader keyword variants, combine multiple queries in one run, and browse by topic (TECHNOLOGY, BUSINESS, etc.) when you want curated top stories rather than keyword-specific results.
Related scrapers
- 💻 Hacker News Scraper — scrape tech news from Hacker News
- 🚀 TechCrunch Scraper — extract startup and tech news
- 📝 Dev.to Scraper — scrape developer blog posts
- 🦞 Lobsters Scraper — extract programming news from Lobsters
- 📖 Wikipedia Scraper — extract Wikipedia articles
- 🐦 Twitter/X Scraper — scrape tweets and trending topics
- 💬 Reddit Scraper — extract posts and discussions from Reddit
Use with AI agents via x402 (no Apify account)
Agent workflows can run this actor through Apify MCP without an Apify account when the MCP client uses a funded x402 wallet. Use the actor-specific MCP endpoint:
https://mcp.apify.com?tools=automation-lab/google-news-scraper&payment=x402
This keeps existing Apify MCP/API usage unchanged; x402 only changes payment/authentication for clients that support it. Learn more in Apify's x402 integration docs.
Server API: get Google News articles over HTTP
Google News Scraper is also a Server Actor. Besides normal runs, it answers short HTTP requests directly, without starting a run for each query. Copy the server URL from the Actor's Server tab (do not build it from the Actor name) and authenticate with your Apify token. Use normal Actor runs for many queries, date ranges (publishedAfter, publishedBefore) and more than 20 articles.
$curl -sS "$SERVER_URL/search?query=openai&maxArticles=5" -H "Authorization: Bearer $APIFY_TOKEN"
| Method and path | Input | Output and charge |
|---|---|---|
GET / | None | ready: true, the routes, limits and topics; no scraping or charge |
GET /search | Query query (search keywords, up to 500 characters) or topic (WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH), not both; optional language (default en), country (default US), maxArticles 1–20 (default 10), decodeUrls true/false (default true) | {ok,count,results} with the newest articles from one Google News feed, each the same record as a normal run's dataset item; one Article scraped event per returned article; no start fee |
A query or topic with no articles returns an error and is free. Each request has a 45-second deadline and a 128 KiB response cap, and one server works on at most eight requests at once. A publisher URL that cannot be decoded in time stays null, as in normal runs, and the article is still returned. A failed feed request is retried once through a fresh proxy session before an error is returned. Nothing is cached. Errors use { "ok": false, "error": { "code": "...", "message": "...", "retryable": false } }: 400 INVALID_QUERY, INVALID_TOPIC, INVALID_LANGUAGE, INVALID_COUNTRY, INVALID_LIMIT or INVALID_INPUT; 402 spending limit; 404 NO_ARTICLES or unknown route; 405 wrong method; 502 BLOCKED, UNEXPECTED_RESPONSE, UPSTREAM_ERROR or charging failure; 503 server busy or stopping; 504 TIMEOUT. Failed requests are free. Retry only when retryable is true. The Server tab shows the full OpenAPI description.