Search & SEO · Live on Apify

Google News Scraper

Search Google News by keyword, topic or Top stories. Each row has the title, publisher, date and the real article link. You need no Google account.

About $3.60 for 1,000 results$0.0036 per result + $0.0025 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

feedTypetopic
topicBUSINESS
position1

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: apify in Search queries. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Google News Scraper searches Google News by keyword, topic or Top stories and returns one row per article: title, publisher, publish date and the real article URL on the publisher's site, not the Google News redirect. It reads the public Google News RSS feeds, so you need no Google login and no API key. A run with the default input (apify, 20 articles) usually takes 5–20 seconds and costs about $0.075.

  • You add keywords, topics or both, and choose a language and a country (a Google News "edition").
  • The Actor reads the matching Google News RSS feeds: search, topic sections or the Top stories front page.
  • For each article it decodes the Google News link (news.google.com/rss/articles/…) into the original publisher URL.
  • It saves one Dataset row per article. Topic and Top stories rows also list other outlets that cover the same story (relatedArticles).
  • Google returns at most 100 articles per feed. When you ask for more, the Actor searches one day at a time (Google's after: and before: operators) and removes duplicates.

Good for

  • Daily or hourly news monitoring for brands, people, companies or topics.
  • Media lists for PR: who wrote about a subject, when, and the link to the story.
  • News in many languages: de for Germany, pt-BR for Brazil, ja for Japan, zh-TW for Taiwan.
  • A clean news list for an AI agent, a spreadsheet or a BI tool.

Not a good fit

  • No full article text, images or summaries. Google News RSS gives only the title and publisher. For article text, send articleUrl to an article extractor.
  • Up to 1,000 articles per query, and up to 20 queries and topics per run. Our largest test run saved 5,000 articles (5 queries × 1,000) in about 34 minutes. A run stops after about 50 minutes and keeps what it saved (RUN_SUMMARY.status: "CAPPED"), so split bigger jobs into several runs. Topics and Top stories read one feed each, so they return only what Google shows in that section (at most about 100 articles).
  • Google decides which articles it shows. Two runs a few minutes apart can return a slightly different set or order.
  • Google News RSS is for personal, non-commercial use under Google's terms. You are responsible for how you use the data.

Who uses it

PR teams

Build media lists: who wrote about a topic and when.

Brand managers

Watch news about your brand or competitors every day.

AI builders

Give an AI agent fresh news links for a topic.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.0025Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.
News article$0.0036 (from $0.0009 on paid Apify plans)One complete or partial article row saved in the Dataset, with the decoded publisher URL included. Not-found and error rows are free.

Examples

  • One result: about $0.0061.
  • 1,000 results: about $3.60.
  • Every day 100 results, for 30 days: about $10.88 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 1,300 results.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Is there an official Google News API?

No. Google has no public Google News API. This tool reads the public RSS feeds.

Do I get the article text?

No. Google News RSS has no snippet. Send the article link to an article text tool.

Can I get more than 100 articles for a keyword?

Yes, up to 1,000. The tool searches one day at a time and removes duplicates.

Why are the links not news.google.com links?

The tool decodes Google's redirect links into the publisher's own URL.

Do I need a Google account or API key?

No. The Actor reads public Google News RSS feeds without login, cookies or keys.

Why are the titles shorter than in Google News?

Google adds " - Publisher" to each title in the feed. The Actor removes it and puts the publisher into sourceName.

Why is the order or set of articles different between runs?

Google decides which articles each feed shows, and this changes during the day. Rows keep Google's order in position. Use articleId to compare runs.

Details

Step by step on Apify
  1. Open the Input tab.
  2. In Search queries (queries), keep apify or add your own keyword, for example electric cars.
  3. Keep Language en, Country US and Max articles per query or topic 20, or change them.
  4. Click Start.
  5. Open the Output tab. The Articles table shows title, sourceName, publishedAt and articleUrl.
Use cases
TaskInputYou getKey fieldsNext step
Brand and competitor monitoringqueries + since: "24h" on a scheduleArticlequery, title, sourceName, articleUrl, publishedAtSlack, email or Google Sheets through Apify integrations
PR media listqueries like "your company" + since: "30d"ArticlesourceName, sourceUrl, articleUrlCSV or Excel export
Country news overviewtopics: ["BUSINESS"], country: "DE", language: "de"Article with related coveragetitle, sourceName, relatedArticlesDashboard or newsletter
News context for an AI agentqueries + small maxArticlesArticletitle, articleUrl, publishedAtApify MCP server
Tips for better results
  • Use the published-since filter for daily or hourly checks.
  • Pick a country and language to get local news editions.
  • Use the article ID to compare results between runs.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "status": "complete",
  "statusReason": null,
  "errorCode": null,
  "feedType": "topic",
  "query": null,
  "topic": "BUSINESS",
  "position": 1,
  "title": "Waren bei Galeria in Regensburg plötzlich hinter Absperrband – Ein Hersteller spricht Klartext",
  "sourceName": "Mittelbayerische Zeitung",
  "sourceUrl": "https://www.mittelbayerische.de/",
  "articleUrl": "https://www.mittelbayerische.de/lokales/stadt-regensburg/waren-bei-galeria-in-regensburg-ploetzlich-hinter-absperrband-ein-hersteller-spricht-klartext-22206179",
  "googleNewsUrl": "https://news.google.com/rss/articles/CBMi8AFBVV95cUxPWnVHaWd…?oc=5",
  "articleId": "CBMi8AFBVV95cUxPWnVHaWd…",
  "publishedAt": "2026-10-14T17:01:36.000Z",
  "relatedArticles": [
    {
      "title": "Flatterband im Kaufhaus: Was hinter den gesperrten Galeria-Regalen steckt",
      "sourceName": "WDR",
      "googleNewsUrl": "https://news.google.com/rss/articles/CBMifkFVX3lx…?oc=5"
    }
  ],
  "language": "de",
  "country": "DE",
  "feedUrl": "https://news.google.com/rss/headlines/section/topic/BUSINESS?hl=de&gl=DE&ceid=DE%3Ade",
  "fetchedAt": "2026-10-15T04:22:36.577Z"
}

Use it from code

Actor ID: cliqtomedia/google-news-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/google-news-scraper").call(run_input={
    "queries": [
        "apify"
    ],
    "country": "US"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-news-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["apify"], "country": "US"}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/google-news-scraper")
result = tool.invoke({"run_input": {"queries": ["apify"], "country": "US"}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (19)
FieldTypeMeaning
statusstringRow result: complete, partial (article found but the publisher URL could not be decoded), not_found (no articles for this query or topic) or error. Only complete and partial rows are charged.
statusReasonstringPlain-English reason for partial, not_found or error rows; null when complete.
errorCodestringMachine code for error rows, e.g. SOURCE_BLOCKED, RATE_LIMITED, DEADLINE_REACHED; null otherwise.
feedTypestringWhere the row came from: a search query, a topic section or Top stories.
querystringYour search query as given; null for topic rows.
topicstringTopic section (BUSINESS, TECHNOLOGY…); null for search rows.
positioninteger1-based order of the article within its query or topic (newest first for deep search).
titlestringArticle headline, without the publisher suffix Google adds.
sourceNamestringPublisher name, e.g. Reuters.
sourceUrlstringPublisher home page as Google News lists it, e.g. https://www.reuters.com.
articleUrlstringOriginal article URL on the publisher's site, decoded from the Google News link. null when resolveSourceUrl is off (the row stays complete) or decoding failed (the row is partial).
googleNewsUrlstringGoogle News link to the article (news.google.com/rss/articles/…).
articleIdstringGoogle News article ID.
publishedAtstringPublish time, ISO 8601 UTC, as Google News reports it.
relatedArticlesarrayOther outlets covering the same story (topic and Top stories rows): title, sourceName, googleNewsUrl. Empty for most search rows.
languagestringEdition language code used for this run, e.g. en.
countrystringEdition country code used for this run, e.g. US.
feedUrlstringThe Google News RSS feed this row came from (provenance).
fetchedAtstringWhen the Actor fetched this row, ISO 8601 UTC.
Input settings (8)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Search queriesqueriesarray["apify"]
Topicstopicsarray
Countrycountrystring"US"
Languagelanguagestring"en"
Max articles per query or topicmaxArticlesinteger20
Published sincesincestring
Decode real article URLsresolveSourceUrlbooleantrue
ProxyproxyConfigurationobject{"useApifyProxy": true}

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure