Google News Scraper API: Articles, Real URLs, Full Text
Pricing
from $3.40 / 1,000 articles
Google News Scraper API: Articles, Real URLs, Full Text
Google News articles by keyword, site or topic in 60+ countries: title, source, date, real publisher URL, full text, Markdown for LLMs. Dedup and only-new mode. Google News API alternative. No API key, no login. MCP-ready for AI agents. Pay per result, errors are free. $4 per 1,000 articles.
$4 per 1,000 articles · pay per result, no monthly rental · errors, duplicates and empty results are free · no API key, no login
Scrape Google News by keyword, website or topic in 60+ countries and languages. You get clean JSON with the headline, publisher, publication date, the real publisher URL (not the news.google.com redirect), related coverage, LLM-ready Markdown, and (optionally) the full article text split into chunks for RAG. Results are deduplicated across queries and countries, and Only new mode returns only the articles you have not received yet, which suits scheduled monitoring.
It is a Google News API alternative: Google has no public Google News API, so this actor reads the official Google News RSS feeds over plain HTTP. No browser and no account are needed, so it is fast, light and stable.
How much does it cost?
| Event | Price | When it is charged |
|---|---|---|
article | $0.004 ($4 / 1,000) | One unique article delivered with its resolved publisher URL |
article-text | $0.001 ($1 / 1,000) | Only if you enable Extract full article text and text was actually extracted |
Example: 1,000 articles = $4.00. 1,000 articles with full text = $5.00. A daily brand watch with 50 new articles a day costs about $6 a month.
Never charged: duplicates, articles already delivered (with Only new), articles whose Google link could not be resolved (they are still returned with urlResolved: false), failed or blocked feeds, empty searches, and paywalled or empty pages for the text option. To cap your spend, use Max articles in total or the run's maximum cost. The actor stops cleanly when your budget is reached.
What it does
- Keyword search with every Google operator:
"exact phrase",OR,-exclude,intitle:,site:,when:7d. - Site monitoring: the latest articles from the domains you list (
lemonde.fr,reuters.com…). - Topics: Top stories, World, Nation, Business, Technology, Entertainment, Sports, Science, Health, or any topic/entity ID from news.google.com.
- Several countries and languages:
US,FR,DE,JP,BR… The language is picked automatically for each edition, or you can force it withCA:fr,US:es,BE:nl. - Time filters: past hour, day, week, month or year, or an exact date range.
- More than 100 results per query: Google caps each feed at 100 items. Split by day runs one search per day of your date range.
- Real URLs: Google's encrypted redirect links are converted to the publisher URL.
- Deduplication by Google ID, by title + source, and by final URL without tracking parameters (
utm_*,fbclid…).matchedQueriesandmatchedEditionslist every query and country where the article appeared. - Only new (
onlyNew): for scheduled runs, articles delivered by previous runs are skipped and not charged. - LLM-ready output: every item has a
markdownfield. With full text on,textChunks(set withragChunkSize) gives paragraph-aligned chunks ready for embeddings. - Full text (optional): the main text, author, main image and description from the publisher page.
Input example
{"keywords": ["artificial intelligence", "\"electric vehicles\" -tesla"],"sites": ["reuters.com"],"topics": ["TECHNOLOGY"],"countries": ["US", "FR", "DE", "CA:fr"],"timeRange": "7d","maxArticlesPerQuery": 50,"maxArticles": 500,"resolveUrls": true,"deduplicate": true,"extractText": false}
Scheduled monitoring (run every hour; you only get and pay for new articles):
{"keywords": ["\"Acme Corp\"", "Acme CEO"],"countries": ["US", "GB", "FR"],"timeRange": "1d","onlyNew": true,"extractText": true,"ragChunkSize": 1500}
Date range, day by day (collect thousands of articles for a period):
{"keywords": ["inflation"],"countries": ["US"],"dateFrom": "2026-09-01","dateTo": "2026-10-01","splitByDay": true,"maxArticlesPerQuery": 3000,"maxArticles": 3000}
Output example
One dataset item per unique article:
{"title": "Bitcoin: BloFin sees bullish signals despite the recent correction","source": "Cointribune","sourceUrl": "https://www.cointribune.com","url": "https://www.cointribune.com/en/bitcoin-blofin-bullish-signals/","urlResolved": true,"googleNewsUrl": "https://news.google.com/rss/articles/CBMiowFBVV95cUxP...?oc=5","guid": "CBMiowFBVV95cUxP...","publishedAt": "2026-10-11T07:00:00Z","query": "bitcoin","queryType": "keyword","country": "FR","language": "fr","edition": "FR:fr","timeWindow": "7d","matchedQueries": ["bitcoin", "crypto"],"matchedEditions": ["FR:fr", "BE:fr"],"relatedArticles": [],"markdown": "## Bitcoin: BloFin sees bullish signals despite the recent correction\n\nCointribune · 2026-10-11T07:00:00Z · FR:fr\n\nhttps://www.cointribune.com/en/bitcoin-blofin-bullish-signals/","feedUrl": "https://news.google.com/rss/search?q=bitcoin%20when%3A7d&hl=fr&gl=FR&ceid=FR%3Afr","scrapedAt": "2026-10-15T08:12:44Z"}
With Extract full article text turned on, these fields are added (textChunks only when ragChunkSize > 0), and markdown then includes the text:
{"text": "Bitcoin is trading below its recent high after...","textLength": 3812,"textChunks": ["Bitcoin is trading below its recent high after...", "Analysts expect..."],"author": "Jane Doe","imageUrl": "https://www.cointribune.com/app/uploads/2026/10/btc.jpg","articleDescription": "Analysts at BloFin point to...","siteName": "Cointribune","textError": null}
Topic feeds (Top stories, Business…) also fill relatedArticles with the other headlines in the same story cluster (title, source, googleNewsUrl). A run summary (delivered, unresolved, duplicates, already seen, proxy traffic) is saved in the key-value store as SUMMARY.
Use with AI agents (MCP)
This actor is MCP-ready. Add it to Claude, Cursor, ChatGPT or any MCP client through the Apify MCP server (https://mcp.apify.com) and your agent can call it as a tool, for example: "Get today's news about Nvidia in the US and Germany and summarize it". The markdown field can go straight into a prompt. textChunks is ready for vector databases (RAG). Because each article is billed separately, an agent only pays for what it actually reads.
Integrations
- API: run it from any language with the Apify API or the Python/JavaScript clients, and get results as JSON, CSV, Excel or XML.
- Make, Zapier, n8n: use the official Apify modules/nodes to send new articles to Slack, email, Notion or a CRM.
- Google Sheets: export the dataset, or use the Apify integration to append new articles to a sheet on every scheduled run.
- Webhooks and schedules: run it every hour with
onlyNew: trueand get a webhook when new articles arrive.
Use cases
- Media monitoring and PR: track a brand, product or executive across countries every hour.
- Market and competitive intelligence: follow the news flow on companies, sectors and tickers.
- AI agents and RAG: feed fresh, deduplicated articles (with full text) to an LLM for summaries, alerts or sentiment.
- SEO and content: see which publishers rank in Google News for your keywords, in each country.
- Research and datasets: build historical news corpora with day-by-day date ranges.
FAQ
Is there an official Google News API? No. Google shut down its News API years ago. This actor gives you the same data in a structured form, with no API key and no quota.
Why do I need the "real URL"? Google News links point to news.google.com/rss/articles/..., which you can't use for analytics, deduplication or text extraction. This actor returns the publisher URL in url.
How many results can I get? Up to 100 per query, per country, per feed. That is Google's limit. To go beyond it, use several keywords, several countries, or Split by day with a date range.
How does "Only new" work? The IDs and URLs of the articles you received are stored in your own named key-value store google-news-rss-state, with one history per search configuration (or the name you set in stateKey). Later runs skip those articles and are not charged for them.
How do I choose a language? By default each country uses the language of its Google News edition (US → English, FR → French, BR → Portuguese…). Write COUNTRY:language to force another one, e.g. CA:fr, US:es, IN:hi.
Does it use a browser or log in? No. It only reads public RSS feeds and public pages over plain HTTP.
Do I need a proxy? The default Apify datacenter proxy is enough. A residential IP is used only as a fallback when Google rate-limits a link resolution. It handles a few kilobytes per link, under a traffic cap you control.
Limits
- Google returns at most 100 items per feed, and publication dates are the ones Google reports.
- Very old articles may not be available through date-range searches.
- Link resolution depends on an internal Google endpoint. If Google changes it, articles are still returned with
urlResolved: falseand are not charged until it is fixed. The run status says so. - Full-text extraction cannot read paywalled, JavaScript-only or video pages. In that case
textErrorexplains why and no text event is charged. - Search operators and time filters work the way Google applies them, which is best effort on Google's side.