Google News Scraper: Headlines, Topics & Real Article URLs
Pricing
from $1.20 / 1,000 articles
Google News Scraper: Headlines, Topics & Real Article URLs
Input: keywords (Google operators OK), topics, countries/languages, date range. Output: one row per article: title, source, publish date, real publisher URL, related coverage. Past the 100-result limit. No login, no API key. $1.50 per 1,000 articles.
Scrape Google News by keyword, topic, country/language and date range. Every row has the headline, publisher, publish time and the real article URL on the publisher's site (not the news.google.com redirect). Goes past Google News' 100-results limit by searching day by day. No login, no API key, no browser.
What you get
- Keyword search with Google operators:
"exact phrase",site:reuters.com,intitle:,OR,-exclude. - Topic feeds (Top stories, World, Nation, Business, Technology, Entertainment, Sports, Science, Health) with related coverage from other outlets.
- Any edition:
US:en,GB:en,IN:en,DE:de,FR:fr,MX:es-419,BR:pt-419,JP:ja... several in one run. - Time range (past hour/day/week/month/year) or an exact date range (
dateFrom/dateTo). - Real publisher URLs resolved with Google News' own link resolver (included in the price). In our tests 2,500+ of 2,500+ links resolved.
- More than 100 results per keyword: above 100 the Actor splits the search into one-day windows (up to ~100 articles per day per edition).
- Stable
articleIdto de-duplicate between scheduled runs.
Real test numbers (2026-10-28)
- Empty input: 100 articles, 8 s, 100/100 URLs resolved.
- 2 keywords + 2 topics × 2 editions (US, BR): 240 articles, 16 s.
bitcoin+nvidia, Oct 1–27, cap 1,000 each: 2,000 articles, 156 s, 2,000/2,000 URLs resolved, 0 duplicates.
Sources and coverage
| Source | Coverage | Data |
|---|---|---|
| Google News RSS search | Any query, 40+ region/language editions (e.g. US:en, MX:es, BR:pt-419) | title, publisher, publish date, real article URL |
| Google News topics | WORLD, BUSINESS, TECHNOLOGY, SPORTS, HEALTH... | same fields per topic |
How to use it
- Click Try for free (or Start): the prefilled input runs a quick test.
- Fill in the input fields (see the examples below). Every field is optional.
- Click Start and wait a few seconds to minutes, depending on how many articles you ask for.
- Open the Output tab and export as JSON, CSV, Excel, XML or HTML, or read the results via API.
Input examples
Keyword (default):
{"searchQueries": ["artificial intelligence"], "regions": ["US:en"], "maxArticlesPerQuery": 20}
Last 24h, several countries:
{"searchQueries": ["Tesla"], "regions": ["US:en", "GB:en", "DE:de"], "timeRange": "1d"}
Topics feed:
{"topics": ["BUSINESS", "TECHNOLOGY"], "regions": ["MX:es-419"]}
Date range:
{"searchQueries": ["inflation"], "dateFrom": "2026-10-01", "dateTo": "2026-10-31", "maxArticlesPerQuery": 100}
Input fields
| Field | Type | Description |
|---|---|---|
searchQueries | array | What you would type in the Google News search box. Google operators work: "exact phrase", site:reuters.com, intitle:tesla, OR, -exclude. If you leave both this and Top… |
topics | array | Current Google News headline sections for each region (about 30-70 stories each, with related coverage from other outlets). Optional. |
regions | array | Google News editions as COUNTRY:language. Examples: US:en, GB:en, IN:en, CA:fr, DE:de, FR:fr, ES:es, MX:es-419, AR:es-419, BR:pt-419, PT:pt-150, IT:it, JP:ja. Every ke… |
timeRange | string | Only articles published in this period (search keywords only). Ignored when you set a date range below. |
dateFrom | string | Optional start date. With a date range the Actor searches day by day, which goes past Google News' 100-results-per-search limit. |
dateTo | string | Optional end date (inclusive). Defaults to today. |
maxArticlesPerQuery | integer | Google News returns up to ~100 articles per search. Above 100 the Actor automatically splits the search into one-day windows (newest first) until this cap, the date ra… |
maxResults | integer | Hard cap on articles for the whole run (all keywords, topics and regions). Never exceeded. |
decodeUrls | boolean | Google News links (news.google.com/rss/articles/...) are converted to the real article URL on the publisher's site (articleUrl). Included in the price. Turn off for sl… |
Output example (real run, 2026-10-28, topic BUSINESS, US:en)
{"query": null,"topic": "BUSINESS","region": "US:en","position": 1,"title": "Fed meeting live updates: No hike expected, but investors watching Warsh for what's next","source": "CNBC","sourceUrl": "https://www.cnbc.com","publishedAt": "2026-10-28T15:05:00Z","articleUrl": "https://www.cnbc.com/2026/10/28/fed-meeting-today-live-updates.html","urlResolved": true,"googleNewsUrl": "https://news.google.com/rss/articles/CBMidkFVX3lxTE1t...?oc=5","articleId": "CBMidkFVX3lxTE1t...","relatedArticles": [{"title": "The Federal Reserve Will Release Its Interest Rate Decision Today. Here’s What to Watch.", "source": "The New York Times", "googleNewsUrl": "https://news.google.com/rss/articles/CBMihgFB..."},{"title": "Fed expected to hold interest rates steady as inflation tops midterm voters’ concerns", "source": "NBC News", "googleNewsUrl": "https://news.google.com/rss/articles/CBMimwFB..."}],"relatedCount": 4,"searchDate": null,"scrapedAt": "2026-10-28T15:24:05Z"}
Output fields
| Field | Description |
|---|---|
query | Search keyword that found the article (empty for topic feeds) |
topic | Topic feed (e.g. BUSINESS) when the article came from a headline section |
region | Google News edition (COUNTRY:language) |
position | Position in the Google News feed (1 = first) |
title | Headline (without the trailing " - Source") |
source | Publisher name |
sourceUrl | Publisher homepage |
publishedAt | Publication date and time (ISO 8601, UTC) |
articleUrl | Real article URL on the publisher site (resolved from the Google News link) |
urlResolved | True when articleUrl was resolved |
googleNewsUrl | Original Google News link |
articleId | Google News article id (stable; use it to deduplicate between runs) |
relatedArticles | Other outlets covering the same story (title, source, Google News link); mostly on topic feeds |
relatedCount | Number of related articles |
searchDate | Day window used when the search was split by day (past 100 results) |
scrapedAt | When the row was scraped (ISO 8601, UTC) |
The Output tab has a Articles view.
Pricing
Pay-per-event: you pay only for results delivered, no monthly fee.
- Article (
article): $1.50 per 1,000 ($0.0015 each) - Actor start: $0.005 per run
| Run | Articles | Cost |
|---|---|---|
| Quick test | 20 | $0.035 |
| Small run | 100 | $0.155 |
| Regular run | 1,000 | $1.505 |
| Large run | 10,000 | $15.005 |
Rows that are not delivered are never charged. Apify's free plan includes monthly credit, and you can set a maximum cost per run in the run options.
Use cases
Media monitoring and brand mentions, PR and competitor tracking, market and crypto news feeds, news datasets for sentiment analysis and LLM/RAG pipelines, local-news research in any country and language.
Integrations and API
- Export results as JSON, CSV, Excel, XML or HTML from the Output tab.
- Schedule runs (daily, hourly) and send results to Google Sheets, Slack, Zapier, Make, n8n, Airbyte or webhooks.
- Call it from code with the Apify API:
curl -X POST "https://api.apify.com/v2/acts/datadesk-io~google-news-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["artificial intelligence"], "regions": ["US:en"], "maxArticlesPerQuery": 20}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("datadesk-io/google-news-scraper").call(run_input={'searchQueries': ['artificial intelligence'], 'regions': ['US:en'], 'maxArticlesPerQuery': 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get('title'))
FAQ
Do I need a Google account or API key? No.
Is it legal? It collects public headline metadata (title, source, date, link) that Google News shows to anyone. You are responsible for how you use it: respect publishers' copyright and Google's terms, and don't republish full articles.
Why are some articleUrl empty? Very rarely Google's resolver doesn't answer for a link; googleNewsUrl still opens the article.
How fresh is the data? Live: every run reads the source at that moment. Schedule it to keep a dataset up to date.
Why did I get fewer articles than the maximum? The source had fewer matching articles, or duplicates were removed. You only pay for articles delivered.
Limitations
- Google News gives headline, source, time and link. It does not give the article body or images; open
articleUrlfor those. - Google caps each search at ~100 results, so day-by-day splitting returns at most ~100 per day per edition. Very busy topics can have more than that in a day.
- Publication dates come from Google; a few articles fall on the day next to the searched window (time zones).
- Topic feeds hold the current headlines only (about 30-70 stories), not history.
- If Google rate-limits the run, the Actor retries and then uses the Apify datacenter proxy included in your plan. Partial results are kept.
Support
Found a bug, or need a new field, source or filter? Open an issue in the Issues tab; we usually answer within 24 hours. Custom data work: datadesk.io@proton.me.
Español
Google News Scraper: extrae noticias de Google News por palabra clave (con operadores de Google), tema, país/idioma y rango de fechas. Cada fila trae titular, medio, fecha de publicación y la URL real del artículo en el sitio del medio. Supera el límite de 100 resultados buscando día por día. Sin login ni API key.
- Ediciones de cualquier país:
MX:es-419,AR:es-419,CO:es-419,ES:es,US:es-419... - Temas: portada, mundo, nacional, negocios, tecnología, entretenimiento, deportes, ciencia, salud (con cobertura relacionada).
- Precio: US$1,50 por 1.000 artículos + US$0,005 por corrida, solo si hay resultados.
- Ejemplo:
{"searchQueries": ["elecciones"], "regions": ["MX:es-419", "AR:es-419"], "timeRange": "7d"}.
Português
Google News Scraper: extrai notícias do Google News por palavra-chave (com operadores do Google), tema, país/idioma e período. Cada linha traz manchete, veículo, data de publicação e a URL real da matéria no site do veículo. Passa do limite de 100 resultados buscando dia a dia. Sem login nem API key.
- Edições de qualquer país:
BR:pt-419,PT:pt-150... - Temas: principais, mundo, Brasil (NATION), negócios, tecnologia, entretenimento, esportes, ciência, saúde (com cobertura relacionada).
- Preço: US$1,50 por 1.000 matérias + US$0,005 por execução, só quando há resultados.
- Exemplo:
{"searchQueries": ["inteligência artificial"], "regions": ["BR:pt-419"], "timeRange": "1d"}.
Use with AI agents (MCP)
This Actor works as a tool for AI agents through the Apify MCP server. Add it to Claude, ChatGPT, Cursor, VS Code or any MCP client:
https://mcp.apify.com/?tools=datadesk-io/google-news-scraper
Sign in with OAuth or Authorization: Bearer <APIFY_TOKEN>. Local stdio config:
{"mcpServers": {"google-news": {"command": "npx", "args": ["-y", "@apify/actors-mcp-server", "--tools", "datadesk-io/google-news-scraper"], "env": {"APIFY_TOKEN": "<token>"}}}}
What goes in → what comes out: Input: keywords and/or topics, editions, time or date range, caps. Output: one JSON row per article with title, source, publish time, real publisher URL and related coverage. Every input is optional and every output field is documented.
Example prompt: "Get this week's Google News articles about 'Anthropic' in the US and UK editions and group them by publisher." Use maxArticlesPerQuery or maxResults to cap the cost of one call.