Google News Scraper — Headlines, Topics & Full Coverage avatar

Google News Scraper — Headlines, Topics & Full Coverage

Pricing

from $1.50 / 1,000 news search results

Go to Apify Store
Google News Scraper — Headlines, Topics & Full Coverage

Google News Scraper — Headlines, Topics & Full Coverage

Google News scraper and news API in one actor. Search news by query and time range, pull top headlines by country, topic and publisher feeds (CNN, BBC, Tech, Sports), local geo headlines, and full-story coverage with sub-articles and X posts. Pay per result — no subscription.

Pricing

from $1.50 / 1,000 news search results

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Google News Scraper — News API, Headlines & Full Coverage 📰

SIÁN Agency Store Store-Trustpilot Reviews Store-Glassdoor Scraper Store-Instagram Transcripts

🎉 Scrape Google News at scale — the news API alternative that needs no API key, no RSS parsing, and no developer account

Built for PR & comms teams, brand-monitoring SaaS founders, market researchers, and data teams who need clean, structured news data on a schedule

📋 Overview

Google News data made ridiculously simple. Give this actor a search query, a country, a topic, a publisher, or a story ID — click Run — and get clean, query-ready article rows back. No login, no RSS feed parsing, no proxy setup, and no waiting on an official news API key. It's the Google News API you can actually use today.

Most news scrapers on the Store do one thing — keyword search. This actor bundles six operations behind a single dropdown: keyword news search with a time-range filter, top headlines by country, topic & publisher feeds (World, Business, Technology, Sports — plus CNN, BBC, or any source), local geo headlines, full-story coverage that pulls every sub-article of one story plus posts from X (formerly Twitter), and a language helper lookup. Pick one operation per run, get one tidy dataset out. Perfect for building a brand-monitoring pipeline, mapping how a story spreads, aggregating topic feeds for a newsletter, and feeding sentiment models thousands of clean article rows.

Why teams choose us:

  • News API alternative, zero setup: no API key, no RSS parsing, no developer registration — paste an input and run
  • 🧵 Full-story coverage — a SIÁN exclusive: the entire coverage cloud of one story (top news + all sub-articles + X posts when available), each row tagged _rowType: article or tweet — no other Google News actor returns this
  • 6 operations in one actor: news search · top headlines · topic & publisher feeds · local headlines · full-story coverage · language list
  • 💰 Pay per result, no rental wall: charged per successful row plus a small start fee — no monthly subscription, you pay only for the rows you pull
  • 🎯 Rich structured fields: curated camelCase aliases (articleTitle, snippet, sourceName, storyId, sourcePublicationId) plus raw upstream fields spread alongside — analyst-friendly and engineer-complete
  • 💎 Only pay for successful rows: failed lookups land as status:"error" rows at zero cost — you're never billed for a hiccup

✨ Features

  • 🔍 News Search: keyword search across Google News with a published-time filter (past hour → past year), optional source-domain restriction — your Google News search API alternative
  • 📰 Top Headlines: the latest top stories for any country, ready for a dashboard or daily digest
  • 🗂️ Topic & Publisher Headlines: pull a Google News topic feed (World, National, Business, Technology, Entertainment, Sports, Science, Health) or a single publisher's feed via its publication ID (CNN, BBC, any outlet)
  • 📍 Local Headlines: geo-based news for any city or region — New York, London, Berlin
  • 🧵 Full-Story Coverage: every sub-article of one story plus X (Twitter) posts when available — trace how a narrative spreads across outlets and social in one call
  • 🌐 Language List: a helper lookup that returns the valid languages for a country code — no more guessing locale combinations
  • 🆔 Re-Queryable IDs: every row carries storyId (chains into Full-Story Coverage) and sourcePublicationId (chains into a publisher feed) so operations compose into a pipeline
  • 🖼️ HTTPS-Normalized URLs: every article link, photo, source logo, and favicon arrives ready to embed
  • 🌍 Country & Language Targeting: scope any feed by two-letter country and language codes
  • 📊 Single Clean Dataset Shape: one flat row per article (or tweet), filterable by _operation, _rowType, and status — the same export pipeline works across all six operations

🎬 Quick Start

So simple, no training needed! Pick an operation, fill the matching input, click Run.

# Or use the API — one line
curl -X POST https://api.apify.com/v2/acts/sian.agency~google-news-scraper/runs?token=YOUR_TOKEN \
-d '{"operation":"newsSearch","query":"Tesla","timePublished":"7d","limit":50}'

🚀 Getting Started (3 Simple Steps)

Step 1: Pick an Operation

Choose one of six operations from the dropdown: News Search, Top Headlines, Topic / Publisher Headlines, Local Headlines, Full-Story Coverage, or Language List. One run = one operation.

Step 2: Fill the Matching Input

  • News Search → a query (e.g. Tesla), optionally a timePublished window and source domain
  • Top Headlines → just a country (defaults to us)
  • Topic / Publisher Headlines → a topic keyword (TECHNOLOGY) or a publisher sourcePublicationId
  • Local Headlines → a query that's a place name (e.g. London)
  • Full-Story Coverage → a story ID (copied from any headline row's storyId)
  • Language List → a country code

Optionally set country, language, and limit where relevant.

Step 3: Click Run

One click and we fetch, flatten, normalize, and push clean rows to your dataset. An HTML run report lands in the key-value store. Export to JSON, CSV, or Excel from the Apify console — or pull via API.

That's it! In seconds, you'll have:

  • Clean flat article rows from any of six Google News endpoints — same shape, ready to export
  • Curated camelCase fields per row plus raw upstream data spread alongside
  • storyId and sourcePublicationId on every row to chain into deeper operations
  • HTTPS article, photo, logo, and favicon URLs ready to embed
  • Error rows for failed inputs — never billed

📥 Input Configuration

One operation per run. Each operation has its own required field (validated before charging). The optional country, language, and limit fields apply where relevant.

FieldTypeRequiredDescription
operationenumYesOne of: newsSearch, topHeadlines, topicHeadlines, localHeadlines, fullStoryCoverage, languageList
querystringnewsSearch, localHeadlinesKeyword to search (News Search) or place name (Local Headlines)
timePublishedenumNo (newsSearch)anytime, 1h, 1d, 7d, 30d, 1y
sourcestringNo (newsSearch)Restrict to one publisher domain (e.g. cnn.com)
topicstringtopicHeadlinesTopic keyword (TECHNOLOGY, BUSINESS, SPORTS…) or a publisher sourcePublicationId
storystringfullStoryCoverageGoogle News story ID (from any headline row's storyId)
storySortenumNo (fullStoryCoverage)RELEVANCE (default) or DATE
countrystringNoTwo-letter country code (default us)
languagestringNoTwo-letter language code (default en)
limitintegerNoMax articles per run, 1–500 (default 25) — applies to search & headline feeds

Example — News Search (last 7 days):

{
"operation": "newsSearch",
"query": "Tesla",
"timePublished": "7d",
"limit": 50
}

Example — Top Headlines (UK):

{
"operation": "topHeadlines",
"country": "gb",
"limit": 50
}

Example — Topic Headlines (Technology):

{
"operation": "topicHeadlines",
"topic": "TECHNOLOGY",
"country": "us",
"limit": 50
}

Example — Local Headlines (a city):

{
"operation": "localHeadlines",
"query": "London",
"country": "gb"
}

Example — Full-Story Coverage (one story's entire cloud):

{
"operation": "fullStoryCoverage",
"story": "CAAqNggKIjBDQklTSGpvSmMzUnZjbmt0TXpZd1NoRUtEd2pSdnR5aEVSRld6LXRKNmM4dHl5Z0FQAQ",
"storySort": "RELEVANCE"
}

💡 Workflow tip: Run Top Headlines or Topic Headlines to discover storyId values, then loop Full-Story Coverage per story to map the complete coverage cloud. Copy a sourcePublicationId from any row into the topic field to pull that publisher's full feed.

📤 Output

One flat row per article (or per tweet on Full-Story Coverage), saved to the Apify dataset. Curated camelCase aliases land on every row alongside the raw upstream data. Filter by _operation to split modes, by _rowType to separate articles from tweets, or by status to separate success from error rows.

FieldTypeDescription
articleIdstringGoogle News article identifier
articleTitlestringHeadline text
snippetstringArticle summary / lead text
linkstringHTTPS link to the article
photoUrl / thumbnailUrlstringHTTPS article imagery
publishedDatetimeUtcstringISO-8601 publish timestamp
authorsarrayArticle authors
sourceNamestringPublisher name (CNN, BBC, Reuters…)
sourceUrl / sourceLogoUrl / sourceFaviconUrlstringHTTPS publisher links and branding
sourcePublicationIdstringRe-queryable publisher feed ID (paste into topic)
storyIdstringRe-queryable story cluster ID (paste into story)
relatedTopicsarrayGoogle News related-topic tags
subArticlesarrayClustered sub-articles for a headline
sectionstringFull-Story Coverage section: top_news, all_articles, twitter_posts
tweetText / tweetUrl / tweetAuthorstringTweet fields (Full-Story Coverage, _rowType: tweet)
languagesarrayValid languages for a country (Language List)
_operation / _rowType / _fetchedAt / _page / statusmetadataAlways-present row metadata

All examples below are real captured output (June 2026; trimmed to the most useful fields):

Example — News Search row:

{
"_operation": "newsSearch",
"_rowType": "article",
"articleId": "CBMiWEFVX3lxTE1DYzB5d29UTWVKVDdpTnNETGVGbGoz...",
"articleTitle": "Tesla, Inc. | History, Cars, Elon Musk, & Headquarters | Britannica Money",
"snippet": "Tesla, Inc., headquartered in Austin, Texas, is an American manufacturer of electric automobiles, solar panels, and batteries…",
"link": "https://www.britannica.com/money/Tesla-Motors",
"publishedDatetimeUtc": "2026-06-03T08:16:00.000Z",
"sourceName": "Britannica",
"sourcePublicationId": "CAAqKQgKIiNDQklTRkFnTWFoQUtEbUp5YVhSaGJtNXBZMkV1WTI5dEtBQVAB",
"status": "success"
}

Example — Top Headline row (carries a re-queryable storyId):

{
"_operation": "topHeadlines",
"_rowType": "article",
"articleTitle": "Markets rally as central bank holds rates",
"sourceName": "Reuters",
"storyId": "CAAqNggKIjBDQklTSGpvSmMzUnZjbmt0TXpZd1NoRUtEd2pSdnR5aEVSRld6LXRKNmM4dHl5Z0FQAQ",
"subArticles": [
{ "title": "Stocks climb after rate decision", "source_name": "BBC" },
{ "title": "What the rate hold means for borrowers", "source_name": "CNBC" }
],
"publishedDatetimeUtc": "2026-06-08T07:40:00.000Z",
"status": "success"
}

Example — Full-Story Coverage article row (section-tagged):

{
"_operation": "fullStoryCoverage",
"_rowType": "article",
"section": "top_news",
"articleTitle": "Inside the story everyone is covering",
"sourceName": "The Guardian",
"link": "https://www.theguardian.com/...",
"publishedDatetimeUtc": "2026-06-08T06:10:00.000Z",
"_sourceQuery": "CAAqNggKIjBDQklTSGpvSmMz...",
"status": "success"
}

Example — Full-Story Coverage tweet row (when X posts are present):

{
"_operation": "fullStoryCoverage",
"_rowType": "tweet",
"section": "twitter_posts",
"tweetText": "This is the biggest development on the story so far — full thread 🧵",
"tweetUrl": "https://twitter.com/...",
"tweetAuthor": "@reporter",
"publishedDatetimeUtc": "2026-06-08T06:25:00.000Z",
"status": "success"
}

🧵 About X (Twitter) posts: Full-Story Coverage returns top news, every sub-article, and X posts when Google News surfaces them for that story — busy, breaking stories tend to include them; quieter stories may return articles only. Each row is tagged _rowType: article or tweet so you can filter cleanly either way.

💼 Use Cases & Examples

1. Brand & PR Monitoring — Catch Every Mention

For PR and comms teams tracking brand, product, and executive coverage across Google News.

Input: Schedule newsSearch with your brand query and timePublished: "1d" on a daily cron Output: One row per article — headline, snippet, source, author, and publish timestamp Use: Diff consecutive datasets to catch new coverage, crises, and competitor PR moves the moment they hit — power "new mention" alerts and a share-of-voice dashboard.

2. Full-Story Coverage Mapping — Trace a Narrative

For analysts and PR teams mapping how a single story spreads across outlets and social.

Input: Run topHeadlines, copy a storyId, then run fullStoryCoverage on it Output: Top news + every sub-article + X posts (when available), each tagged by _rowType and section Use: See the entire coverage cloud of one story in a single call — which outlets carried it, in what order, and what people said on X. No other Google News actor returns this.

3. Topic & Publisher Feed Aggregation — Build a Curated Feed

For newsletter editors, dashboards, and LLM pipelines that need structured topic feeds.

Input: Run topicHeadlines for World, Business, Technology, Sports — or a publisher's sourcePublicationId Output: The latest clustered headlines for that topic or outlet, ready to export Use: Power a curated news feed for a newsletter, internal dashboard, or a retrieval pipeline that feeds an LLM — refreshed on a schedule with one click.

4. Local & Geo News Intelligence — Regional Monitoring

For market researchers, real-estate teams, and local-SEO agencies tracking regional press.

Input: localHeadlines with a city or region as the query Output: Geo-based headlines for that location — civic events, local business, regional sentiment Use: Monitor regional press and location-specific events for market research, real-estate intelligence, or local-SEO content planning.

5. Sentiment & Media Analysis — Feed Your NLP Models

For data teams quantifying tone, share-of-voice, and trending topics at scale.

Input: Paginate newsSearch (or topic feeds) across your target queries with a high limit Output: Thousands of clean article rows — title, snippet, source, author, published date Use: Feed structured rows into sentiment and NLP models to quantify tone, surface trending topics, and benchmark share-of-voice across competitors for research and competitive intelligence.

🔌 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
// Search news, then map each story's full coverage
const search = await client.actor('sian.agency/google-news-scraper').call({
operation: 'topHeadlines',
country: 'us',
limit: 25
});
const { items } = await client.dataset(search.defaultDatasetId).listItems();
const storyIds = items.filter(i => i.status === 'success' && i.storyId).map(i => i.storyId);
console.log(`${storyIds.length} stories to expand into full coverage`);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
# Daily brand-mention snapshot
run = client.actor('sian.agency/google-news-scraper').call(
run_input={'operation': 'newsSearch', 'query': 'Tesla', 'timePublished': '1d', 'limit': 50}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
if item.get('status') == 'success':
print(f"{item['publishedDatetimeUtc']}{item['sourceName']}: {item['articleTitle']}")

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~google-news-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"topicHeadlines","topic":"TECHNOLOGY","limit":50}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule (daily news refresh) or webhook (new keyword added to your tracker)
  2. HTTP Request: Call the actor API with operation and the per-op input fields
  3. Process: Diff against yesterday's articles, score sentiment, or expand storyId into full coverage
  4. Action: Push new-mention alerts to Slack, sync rows to Google Sheets, or update your media-monitoring database

📈 Performance & Pricing

Transparent pay-per-event — you're charged only for successful rows, plus a small one-time start fee per run. Failed lookups land as status:"error" rows and cost $0. Higher Apify plans get automatic volume discounts on every event. No monthly rental, no subscription — you pay only for the rows you pull.

EventIndicative PriceApplies to
apify-actor-start$0.005One-time per run
🔍 news-search-result$0.0015 / rowNews Search
📰 top-headlines-result$0.0015 / rowTop Headlines
🗂️ topic-headlines-result$0.0015 / rowTopic / Publisher Headlines
📍 local-headlines-result$0.0015 / rowLocal Headlines
🧵 full-story-result$0.0015 / rowFull-Story Coverage
🌐 language-list-result$0.0005 / rowLanguage List (helper)

Cost examples:

  • 1,000 news search articles → $1.50 + $0.005 start = ~$1.51
  • A 50-headline top feed → $0.075 + $0.005 = ~$0.08
  • A full story's coverage (e.g. 53 articles) → ~$0.08 + $0.005 = ~$0.085

💰 Bulk article rows are priced at a fraction of a cent each — cheaper than maintaining your own RSS parsers and proxies, with no news API approval to wait on.

🔗 View current pricing

❓ Frequently Asked Questions

Q: Does Google News have an API? A: Google retired its public Google News API years ago, and the RSS feeds are limited, brittle, and don't expose topic feeds, publisher feeds, local headlines, or full-story coverage. This actor is the practical Google News API alternative — it returns clean JSON for all of those, with no developer account.

Q: Do I need a Google News API key? A: No. This actor requires no Google News API key, no RSS setup, and no developer registration — just an Apify token. Paste your input, click Run, get structured data back.

Q: How is this different from parsing the Google News RSS feed? A: RSS gives you a thin headline list with no structured source metadata, no story clustering, no topic/publisher feeds, no local news, and no full-story coverage. This actor returns rich rows — source name, logo, favicon, storyId, sourcePublicationId, sub-articles, and (on Full-Story Coverage) X posts — all HTTPS-normalized and ready to export.

Q: What does Full-Story Coverage return that other scrapers don't? A: The entire coverage cloud for one story in a single call — top news, every sub-article, and X (Twitter) posts when Google News surfaces them. Each row is tagged _rowType: article or tweet and section: top_news | all_articles | twitter_posts. No other Google News actor on the Store exposes this.

Q: Can I monitor my brand with this? A: Yes — that's a core use case. Schedule newsSearch with your brand query and timePublished: "1d" on a cron, then diff the dataset run-to-run to catch every new mention. Pair it with our Trustpilot and Glassdoor scrapers for a full reputation-monitoring stack.

Q: How do I get a story ID or publisher ID? A: Every headline row carries a storyId (paste into the story field for Full-Story Coverage) and a sourcePublicationId (paste into the topic field to pull that publisher's feed). Run Top Headlines or Topic Headlines first, then chain.

Q: Which countries and languages are supported? A: Any two-letter country and language codes (e.g. us/en, gb/en, de/de, fr/fr). Run the Language List operation with a country code to discover the valid languages for that country.

Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset console, or pull via API.

Q: How am I billed, and what about failed lookups? A: Pay-per-event — only successful rows are charged, plus a one-time start fee. There is no monthly rental. Failed lookups land as status:"error" rows at $0.

🐛 Troubleshooting

A run returns status:"error" with "temporarily unavailable"

  • The data source hit a transient hiccup. The actor retries automatically with backoff. Re-run after a moment — error rows are never charged.

Full-Story Coverage returns articles but no X posts

  • X (Twitter) posts are surfaced by Google News on a per-story basis — busy, breaking stories tend to include them; quieter stories return articles only. This is expected, not a bug. Filter rows by _rowType: tweet to isolate them when present.

Topic Headlines returns "not found" or empty

  • Confirm the topic value. Use an uppercase topic keyword (TECHNOLOGY, BUSINESS, SPORTS…) or a valid sourcePublicationId copied from a headline row. A free-text phrase will not work — use News Search for that.

News Search returns fewer rows than limit

  • Thin coverage for a narrow query or a short time window returns fewer rows. Broaden the query, widen timePublished, or remove the source domain filter.

Local Headlines returns unexpected results

  • Use a recognizable place name (New York, London) as the query and set a matching country. Very small localities may have limited coverage.

🧰 More by SIÁN Agency

⚠️ Trademark Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC. "Google News", "Google", and related marks are trademarks of Google LLC, and "X" and "Twitter" are trademarks of their respective owners; all are used here only to describe the publicly available data this tool helps you collect. Use this actor responsibly and in compliance with applicable laws, the relevant platforms' terms of service, and data-protection regulations (including GDPR and CCPA where applicable). You are responsible for how you use the data you extract.

Our actors are ethical and do not extract any private user data. They only collect content that publishers and users have chosen to share publicly on Google News. We therefore believe that this actor, when used for ethical purposes by Apify users, is safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read Apify's blog post on the legality of web scraping.

🤝 Support

Telegram Support

Join our active support community

  • For issues or feature requests, open an issue in the actor's repository or use the Issues tab on the actor page
  • Check SIÁN Agency Store for more automation tools
  • 📧 apify@sian-agency.online
  • ⭐ If this saves you time, a 5-star review helps us ship more features.

Built by SIÁN Agency | More Tools