Google News Scraper - Real Article Links, Alerts
Pricing
from $1.00 / 1,000 articles
Google News Scraper - Real Article Links, Alerts
Google News articles by keyword, topic or top stories, any country and language incl. Arabic. Real publisher URLs, publish time, source, optional page metadata (author, image, description) and a new-articles-only alert mode. Status row per feed; failed links are free.
Pricing
from $1.00 / 1,000 articles
Rating
0.0
(0)
Developer
Dottti
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Google News Scraper: Real Article Links, Alerts
Get news articles from Google News by keyword, by topic or from the top stories of any country. Each article comes with its headline, publisher, publish time and the real publisher URL, decoded from the news.google.com link. Arabic editions (Saudi Arabia, UAE, Egypt and more) work the same way as English ones.
Turn on page details to also get each article's description, authors, main image, language, section and keywords from the publisher's own page. Turn on alert mode to get only articles you have not received before.
You need no Google account and no API key.
Who uses it
- PR and communications teams who track mentions of a company, a minister or a product.
- Market and investment analysts who follow news on companies, sectors and countries.
- Media monitoring services who need clean, deduplicated article lists in many languages.
- AI and data pipelines that need real article URLs to fetch and summarize.
- Researchers who collect coverage of an event across countries and languages.
What you can do
- Search with any keywords. Google's search operators work:
"exact phrase",OR,-word,site:reuters.com,intitle:word,when:1d,after:2026-10-01,before:2026-10-15. - Read topic feeds: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH, or any topic link from news.google.com.
- Read top stories of each edition, with the cluster of other outlets that cover the same story.
- Pick countries and languages:
US:en,GB:en,SA:ar,AE:ar,AE:en,EG:ar,IN:en,FR:frand any other Google News edition. Every query runs in every edition you list. - Limit by time: past hour, 12 hours, day, week, 30 days or year, or a date range.
- Remove duplicates: an article found by two queries or two editions is delivered and charged once.
- Alert mode: on a schedule, each run returns only articles that earlier runs did not return.
Input examples
The latest news on two companies in the US edition:
{"queries": ["Saudi Aramco", "Nvidia earnings"],"editions": ["US:en"],"timeWindow": "7d","maxArticlesPerQuery": 30}
Arabic news from three Gulf and Egyptian editions, with page details:
{"queries": ["أرامكو", "رؤية 2030"],"editions": ["SA:ar", "AE:ar", "EG:ar"],"timeWindow": "1d","maxArticlesPerQuery": 50,"includeArticleDetails": true}
Business and technology topics plus top stories, as an hourly alert:
{"topics": ["BUSINESS", "TECHNOLOGY"],"includeTopStories": true,"editions": ["SA:ar", "US:en"],"timeWindow": "1d","maxArticlesPerQuery": 100,"onlyNew": true,"stateName": "gulf-business-alert"}
Only one site's coverage of a subject:
{"queries": ["site:reuters.com Saudi Arabia"],"editions": ["US:en"],"maxArticlesPerQuery": 100}
Output
Every row has a type field.
| type | One row is | Charged |
|---|---|---|
article | One news article | Yes, when its real URL was found (or when decoding is off) |
status | One feed (query, topic or top stories, per edition) and what happened to it | No |
Article row (real output, 2026-10-28, link shortened)
{"type": "article","title": "وزارة الداخلية السعودية تعزز توطين الصناعات العسكرية ضمن رؤية 2030","publisherName": "معلومات مباشر","publisherUrl": "https://www.mubasher.info","articleUrl": "https://www.mubasher.info/news/4691667/...","ampUrl": null,"googleNewsUrl": "https://news.google.com/rss/articles/CBMiiwRBVV95cUxQeDlu...?oc=5","googleNewsId": "CBMiiwRBVV95cUxQeDlu...","publishedAt": "2026-10-27T20:22:49.000Z","snippet": null,"feed": "search","query": "رؤية 2030","topic": null,"country": "SA","language": "ar","edition": "SA:ar","position": 1,"urlDecoded": true,"decodeError": null,"relatedArticles": [],"scrapedAt": "2026-10-28T08:49:46.536Z"}
snippet is null for most articles. Google News feeds carry only the headline and the source name. Turn on page details to get the publisher's own description.
Article row with page details (real output, 2026-10-28, links shortened)
{"type": "article","title": "الذكاء الاصطناعي يعزز كفاءة التسويق العقاري في دبي","publisherName": "البيان","publisherUrl": "https://www.albayan.ae","articleUrl": "https://www.albayan.ae/economy/1560908","publishedAt": "2026-10-27T13:10:00.000Z","query": "دبي","edition": "AE:ar","urlDecoded": true,"pageTitle": "الذكاء الاصطناعي يعزز كفاءة التسويق العقاري في دبي","pageDescription": "يشهد القطاع العقاري في دبي توسعاً متسارعاً في حجم المشاريع والعروض الاستثمارية، ما يرفع من أهمية الوصول السريع والدقيق إ","pagePublishedAt": "2026-10-27T13:10:00.000Z","pageModifiedAt": "2026-10-27T13:26:56.000Z","pageAuthors": ["البيان"],"pageImage": "https://www.albayan.ae/assets/images/2026/10/27/5385096.jpeg","pageLanguage": "ar","pageSiteName": "البيان","pageSection": "اقتصاد","pageCanonicalUrl": "https://www.albayan.ae/economy/1560908","detailsStatus": "ok","detailsError": null}
Page fields come from the page's meta tags, Open Graph tags and JSON-LD. A field is null (or an empty list) when the page does not publish it. When a page gives a time with no time zone, pagePublishedAt keeps it as written, without a Z.
Top story with related coverage (real output, 2026-10-28, shortened)
{"type": "article","title": "VCs will make billions on Anthropic’s IPO, but Amazon is set to make much (much) more","publisherName": "TechCrunch","articleUrl": "https://techcrunch.com/2026/10/27/vcs-will-make-billions-on-anthropics-ipo-but-amazon-is-set-to-make-much-much-more/","publishedAt": "2026-10-28T01:15:28.000Z","feed": "topic","topic": "BUSINESS","edition": "US:en","relatedArticles": [{ "title": "Chart: Anthropic's cash pile towers over nearly every U.S. company", "publisherName": "CNBC", "googleNewsUrl": "https://news.google.com/rss/articles/CBMidkFV...", "googleNewsId": "CBMidkFV..." }]}
Related articles carry the Google News link only. Their real URLs are not decoded, so they cost nothing.
Status row (real output, 2026-10-28)
{"type": "status","feed": "search","query": "Saudi Aramco","searchedAs": "Saudi Aramco when:7d","topic": null,"edition": "US:en","country": "US","language": "en","status": "ok","articlesInFeed": 100,"inTimeRange": 100,"duplicates": 0,"alreadySeen": 0,"delivered": 30,"undecoded": 0,"detailsOk": 0,"detailsFailed": 0,"error": null,"charged": false}
Status values: ok, partial (some links not decoded), undecoded, no_results, not_found, blocked, cut_by_cost_limit, skipped_cost_limit.
The run also saves a RUN_SUMMARY record in the key-value store. It lists every feed, decode counts, requests, bytes and the proxy tier used.
Alert mode
- Set
onlyNewtotrueand give the alert astateName, for examplearamco-watch. - Schedule the actor (Apify Console, Schedules, for example every hour).
- The first run returns everything it finds and remembers it. Each later run returns only articles that no earlier run returned.
The actor matches articles by Google News id, by real URL and by headline plus publisher. It saves the list in a key-value store named google-news-state. Entries older than 45 days are dropped. Articles held back by your cost limit are not remembered, so they come back in the next run.
For alerts, set maxArticlesPerQuery to 100. A feed holds at most about 100 articles, so this lets the first run see the whole feed.
How to schedule
In Apify Console open the actor, save your input as a task, then open Schedules and add the task. Use alert mode for scheduled runs, so you pay only for articles you have not seen. You can send results to email, Slack, Google Sheets or a webhook with Apify integrations.
Pricing
You pay per result. Platform usage is included in the price.
| Event | Price |
|---|---|
| Article delivered with its real URL | $1.00 per 1,000 |
| Article page details read (only when the page was read) | $0.50 per 1,000 |
Free of charge:
- Status rows.
- Articles whose real URL Google would not give. They are delivered with
urlDecoded: false. - Duplicates and, in alert mode, articles you already received.
With "Get the real article URL" turned off, every article row is charged and articleUrl is null.
Set a cost limit on the run to cap spending. The actor stops cleanly at the limit and the status rows say which feeds were cut.
Limits
- A Google News feed holds up to about 100 articles. For more, split the work by date range (
after:andbefore:) or bysite:. - Search feeds sort by relevance. Topic and top-story feeds sort by Google's own ranking. Use
timeWindowto keep only recent articles. - Decoding needs two requests per article. A run of 1,000 articles takes about 10 to 15 minutes.
- Some publisher sites block automated page reads. Those articles keep their Google data, get
detailsStatus: "blocked"and are not charged for details. After two refusals from one site, the actor skips the rest of that site's pages in the run. snippetis usuallynull, because Google News feeds carry no article text.- The actor reads public pages only. It does not log in and does not read paywalled text.