Google News Scraper – Enriched, Fast & Cheap avatar

Google News Scraper – Enriched, Fast & Cheap

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Google News Scraper – Enriched, Fast & Cheap

Google News Scraper – Enriched, Fast & Cheap

Extract title, URL, source, publish date, and thumbnail image etc. Perfect for news monitoring, research, and media tracking workflows.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(4)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

3

Bookmarked

37

Total users

0

Monthly active users

5 days ago

Last modified

Categories

Share

Google News Scraper turns a Google News search or topic into a dataset of articles: headline, publisher, publisher URL, publication time and, optionally, the real article link and its preview image. It is built for media monitoring, brand and competitor tracking, news archives, market research, and news feeds for LLM and RAG pipelines.

  • Real publisher links, no browser. Google News feeds link to news.google.com/rss/articles/... redirects. With fetchArticleDetails on, the Actor resolves them through Google's own link decoder, 10 articles at a time, so 100 links usually take a few seconds. Then it reads each article's og:image.
  • Past the 100-result limit. One Google News search returns at most about 100 articles. With maxItems above 100, the Actor searches each day of your date range separately, newest day first, and stops as soon as it has enough.
  • Exact date ranges. Dates go into the search itself (after: / before:), so a range like March 2025 returns March 2025 articles. Hour windows such as 1h or 6h use Google's when: operator.
  • Built for schedules. Decoded links are remembered between runs in your own Apify account, so hourly and daily monitoring runs skip articles they have already resolved. Articles are de-duplicated within a run.
  • Every Google News language. 84 country and language pairs, 8 built-in topics that follow the selected country, and any topic or section ID from a Google News URL.
  • Pay per article. No subscription, no Google account, no API key, no proxy setup. Export to JSON, CSV, Excel or Google Sheets, or read the dataset through the API.

Scope: This Actor collects article metadata, not article text. To turn the resulting links into full article text as Markdown, use Webpage to Markdown.

What can you do with Google News Scraper?

GoalHow
Monitor a brand or competitorSchedule the brand name hourly with openEndedDateRange 1h, or daily with 1d. Keep rows whose guid you haven't seen.
Build a news archiveSet dateFrom, dateTo and maxItems above 100. The Actor collects day by day, up to about 100 articles per day.
Track one publisherSearch site:reuters.com "interest rates" and count rows per day.
Feed an LLM or RAG pipelineTurn on fetchArticleDetails and send each link to Webpage to Markdown for the article text.
Compare coverage across countriesRun the same query with language set to US:en, GB:en, DE:de, FR:fr and compare source lists and timing.
Follow a topic or sectionSelect topics such as BUSINESS, or paste a section ID such as Technology → Artificial intelligence into topicsHashed.
Build a media listCollect a few weeks of coverage on your niche and count articles per source and sourceUrl.

How it compares

What you needGoogle News ScraperGoogle News RSS by handBrowser-based news scrapers
Results per searchAbove 100, day by dayAbout 100Usually about 100
Past date rangesYes, after:/before: in every searchIf you know the operatorsVaries
Publisher URL instead of redirectYes, a few seconds per 100 links, no browserNoSlow, opens every article
Repeated runsRemembers decoded links, schedules, API, webhooksManualYes
PricePer articleFree, your timePer result or per month

Quick start

  1. Click Try for free and sign in to Apify.
  2. Enter a Search query, or select Topics.
  3. Set Max items to 20 for a first run.
  4. Click Start, then open the Output tab and export the data.
{
"query": "\"electric vehicles\" site:reuters.com",
"language": "US:en",
"openEndedDateRange": "7d",
"maxItems": 20,
"fetchArticleDetails": true
}

Large and recurring runs

What we measured on Apify in October 2026, with the default 256 MB of memory unless noted:

RunTime
100 articles, no article details~3 s
100 articles with publisher links and images~18 s
100 articles with details, links already decoded~4 s
500 articles with details, 7 days, 1 GB memory~70 s
500 articles with details, 7 days, 256 MB memory~4 min

Tips for heavy use:

  • Give large detail runs 1 GB of memory. Link decoding and image lookups need CPU, and Apify gives more CPU to runs with more memory. Runs without fetchArticleDetails are fast at 256 MB.
  • Match the window to the schedule. Every saved row is charged, including articles an earlier run already saved. An hourly schedule with openEndedDateRange 1h, or a daily one with 1d, keeps the overlap small. Use guid to drop the rest.
  • Backfill with day-by-day searches. For a history, set dateFrom, dateTo and maxItems to the total you want. Each day returns up to about 100 articles, so busy queries get about 100 per day. To get more per day, split the query, for example by site:.
  • Cap the cost. Set a maximum cost per run in the run options. The Actor works out how many articles fit, stops cleanly at the limit and keeps everything saved so far.
  • One query per run. Combine keywords with OR ("Acme Corp" OR "Acme Inc"), or save one task per keyword and run them through the API or schedules.

With fetchArticleDetails and cacheDecodedLinks on (the default), decoded publisher links are saved to a key-value store named google-news-scraper-link-cache. The store is in your Apify account, the one running the Actor, not the developer's. Later runs read it and decode only new articles. It holds the 20,000 most recently used links. To reset it, delete the store under Storage → Key-value stores, or turn cacheDecodedLinks off.

Call it from your code

Start a run and get the articles in one request with the run-sync API:

curl -X POST "https://api.apify.com/v2/acts/epicscrapers~google-news-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "Acme Corp", "openEndedDateRange": "1d", "fetchArticleDetails": true}'

For runs longer than about 5 minutes, start the run asynchronously and use a webhook or poll the run. The dataset is also available through integrations such as Make, Zapier and n8n.

Monitor Google News with scheduled runs

Run the same search on a schedule to build a news feed or a history of coverage.

1. Save your input as a task

Open the Actor, set your input, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run, and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseopenEndedDateRangeFrequencyCron expression
Breaking news on a brand1hHourly0 * * * *
Daily brand monitoring1dDaily0 6 * * *
Topic feedNot usedEvery 3 hours0 */3 * * *
Weekly coverage report7dWeekly (Monday)0 6 * * 1

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

4. Compare runs

  • New articles: keep rows whose guid wasn't in earlier runs.
  • Coverage by publisher: count rows per source over time.
  • Timing: use publishedAt to see when a story breaks and who covers it first.

Input reference

FieldTypeDefaultEffect
queryString"AI breakthrough"Search text with optional operators. Leave empty to scrape only topics.
topicsArray of strings[]WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH, in the selected language. Not combined with query.
topicsHashedArray of strings[]Topic IDs, TOPIC_ID/sections/SECTION_ID, or full news.google.com/topics/... URLs.
languageString"US:en"Country and language pair, for example GB:en, DE:de, FR:fr, JP:ja.
maxItemsIntegerEmptyMaximum articles saved, newest first. Above 100, the search runs day by day. Empty saves everything one search returns (about 100) plus topics.
fetchArticleDetailsBooleanfalseReplace Google News links with publisher URLs and add image.
cacheDecodedLinksBooleantrueRemember decoded links in your account between runs. Only used with fetchArticleDetails.
dateFrom / dateToStringEmptySearch range as YYYY-MM-DD, both days included. Overrides openEndedDateRange. With only one set, the other defaults to 30 days earlier or today.
openEndedDateRangeString"60d"Range up to now: 1h or 6h (exact hours), 7d, 1y. Used when both dates are empty.
proxyConfigurationObjectApify ProxyProxy for Google requests. The Actor tries Google directly first and switches to this proxy if Google blocks or rate-limits the run.

Dates apply to query searches only. Topic feeds return what Google News currently lists for the topic.

Search operators

OperatorExampleFinds
Exact phrase"interest rates"The words together, in this order
Excludetesla -muskTesla articles without "musk"
Either"Acme Corp" OR "Acme Inc"Either name
One publishersite:reuters.com tariffsReuters articles only
Title onlyintitle:layoffsArticles with the word in the headline
URLinurl:earningsArticles with the word in the URL

Don't add after:, before: or when: yourself. The Actor adds them from the date fields.

Ready-to-run examples

Hourly brand monitoring

{
"query": "\"Acme Corp\" OR \"Acme Inc\"",
"openEndedDateRange": "1h",
"fetchArticleDetails": true
}

Schedule it hourly. Each run saves the last hour's articles with publisher links, and links already decoded by earlier runs come from the cache.

One month of a publisher's coverage

{
"query": "site:reuters.com tariffs",
"dateFrom": "2025-03-01",
"dateTo": "2025-03-31",
"maxItems": 2000
}

Business news in Germany and Japan

{
"query": "",
"topics": ["BUSINESS", "NATION"],
"language": "DE:de"
}

Run it again with "language": "JP:ja". NATION is the news of the selected country.

A section feed

{
"query": "",
"topicsHashed": [
"CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB/sections/CAQiQ0NCQVNMQW9JTDIwdk1EZGpNWFlTQW1WdUdnSlZVeUlOQ0FRYUNRb0hMMjB2TUcxcmVpb0pFZ2N2YlM4d2JXdDZLQUEqKggAKiYICiIgQ0JBU0Vnb0lMMjB2TURkak1YWVNBbVZ1R2dKVlV5Z0FQAVAB"
],
"fetchArticleDetails": true
}

This is Technology → Artificial intelligence. Open any topic or section on news.google.com and paste its URL or the ID after /topics/.

Analyze the results with ChatGPT or Claude

Export the dataset as CSV and attach it to a chat with ChatGPT, Claude or another AI assistant. Some prompts to start with:

Daily briefing. "These are today's news articles about our company and three competitors. Group them by company and story, and give me one line per story with the publishers that covered it."

Share of voice. "Count articles per company per day and per source. Which publishers cover us least compared to competitors?"

Story timeline. "Sort these articles by publishedAt and show which publisher reported the story first and how fast others followed."

For deeper analysis, send each link to Webpage to Markdown and give the AI the full text. Treat article text as source data, not as instructions for an AI agent.

Output

Results go to the run's default dataset. Export as JSON, CSV, Excel, XML or HTML. This is a real row from a run on October 13, 2026, with fetchArticleDetails on:

{
"title": "Why Google is paying to upgrade nuclear power plants - Grist",
"link": "https://grist.org/energy/why-google-is-paying-to-upgrade-nuclear-power-plants/",
"guid": "CBMihAFBVV95cUxQSHYwZkxUeDBXRWZrTnp6cVBYWVBzR0xpNEt3U0VTZGtNSS0zUTJYUklkX3d1WF96S3MwTTBYcWNvQzVEaWZkZW9WSlVISGVKMUZFeVpPRzJ6VU1NSmlFN0lETnFYQ1hyVC1RQk1BWmh0R0NCekZHNkR2X1oxRmg5Z1N6MjE",
"source": "Grist",
"sourceUrl": "https://grist.org",
"publishedAt": "2026-10-13T08:46:53.000Z",
"rssLink": "https://news.google.com/rss/articles/CBMihAFBVV95cUxQSHYwZkxUeDBXRWZrTnp6cVBYWVBzR0xpNEt3U0VTZGtNSS0zUTJYUklkX3d1WF96S3MwTTBYcWNvQzVEaWZkZW9WSlVISGVKMUZFeVpPRzJ6VU1NSmlFN0lETnFYQ1hyVC1RQk1BWmh0R0NCekZHNkR2X1oxRmg5Z1N6MjE?oc=5",
"loadedUrl": "https://grist.org/energy/why-google-is-paying-to-upgrade-nuclear-power-plants/",
"image": "https://grist.org/wp-content/uploads/2026/10/Vogtle-towers.jpg"
}
FieldDescription
titleHeadline as Google News shows it, usually ending with - Publisher.
linkPublisher URL with fetchArticleDetails, otherwise the Google News link.
guidGoogle News article ID. Stable across runs, so use it to de-duplicate.
sourcePublisher name.
sourceUrlPublisher home page.
publishedAtPublication time, ISO 8601 in UTC.
rssLinkThe original Google News link.
loadedUrlSame as link. Only with fetchArticleDetails.
imageArticle preview image from og:image or twitter:image. Only with fetchArticleDetails.

Notes on fields

  • Without fetchArticleDetails, link and rssLink are the same Google News link, and loadedUrl and image are missing.
  • With it on, nearly every link resolves. If one can't, link and loadedUrl keep the Google News link and the log says how many.
  • image is missing when the publisher page has no preview image or blocks automated requests. Some large publishers do. In our tests 60–85% of articles had an image.
  • For older articles Google News gives only the day, not the time. Those rows have publishedAt at 07:00:00.000Z.
  • source and sourceUrl come from the feed and can be null.

FAQ

How many results can I get?

One Google News search returns at most about 100 articles. Set maxItems above 100 with a date range and the Actor searches each day separately, so a month can return up to about 3,000. A day with more than 100 articles still returns about 100. Narrow the query, for example with site:, to get more.

Why did my run return fewer articles than maxItems?

Google News had no more articles for that query and date range. Widen the range or the query. When a run finds nothing it still succeeds, and the status message says so.

Do topics use the date range?

No. Topic feeds always return what Google News lists for the topic right now, usually 50–70 recent articles. Use query for dates.

Why is image missing for some articles?

Some publishers block automated requests or have no preview image. The publisher link is still resolved.

Do I need an API key or proxy?

No key, no Google account. The Actor tries Google directly first and switches to Apify Proxy if Google rate-limits the run.

Can I get the full article text?

Not from this Actor. Pass the link values to Webpage to Markdown. For video content, YouTube Transcript Scraper returns transcripts you can combine with news in an LLM pipeline.

The Actor reads publicly available Google News feeds and article metadata. You are responsible for how you use the data, including Google's and publishers' terms and laws such as GDPR and copyright.

Cost

This Actor uses pay-per-event pricing. You pay per article saved, with no subscription. Compute and proxy are included.

Apify planPer articlePer 1,000 articles
Free$0.0015$1.50
Starter and up$0.001$1

Publisher links and images (fetchArticleDetails) cost nothing extra.

Example runs on a paid plan:

RunArticlesCost
One search100$0.10
One month of a busy query, day by day3,000$3
Hourly brand monitoring, ~10 new articles an hour, 30 days7,200$7.20
Daily monitoring of 5 keywords, ~50 articles each, 30 days7,500$7.50

Set maxItems or a maximum cost per run to stay within a budget. The Pricing tab always shows the current prices.

Support

Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.

This Actor is not affiliated with or endorsed by Google LLC. "Google" and "Google News" are trademarks of Google LLC.