Google News API - News Scraper by Keyword, Country & Language
Pricing
from $4.00 / 1,000 results
Google News API - News Scraper by Keyword, Country & Language
Use the Google News API to search news by keyword, country and language and receive every article as a row: headline, Google News link, publisher, publication date and snippet. Pick an edition and a time window such as 24h or 7d. For brand monitoring, press clipping and news alerts.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
SR
Maintained by CommunityActor stats
0
Bookmarked
65
Total users
21
Monthly active users
3 days ago
Last modified
Categories
Share
Google News Scraper — News API by Keyword, Country and Language
This Google News scraper returns articles matching a query, with the title, Google News link, publisher, publication date and the text shown in the search feed. Use it for news monitoring, topic alerts, press clipping and collecting article links across country and language editions. Each returned article is a separate dataset row, so you can export the results or read them through the Apify API.
It works as a simple Google News API: send a query with a country and language, get structured JSON back. There is no Google account, no browser extension and no setup beyond your Apify account. Runs usually finish in a few seconds.
What the Google News scraper returns
The Actor reads the current Google News search feed for one query per run. You can request between one and one hundred articles. The feed has no pagination, so the maximum is a limit on the available feed rather than a promise that every query has one hundred matches. A specific topic, a narrow time window or a less active language edition can return fewer articles.
The article link is the link supplied by Google News. It can redirect to the original publisher. The Actor does not visit each publisher, extract full article text or resolve every article link. The title usually includes the publisher name, and the snippet is the search-feed description. It is useful for identifying a match but is not a generated summary of the article. Images are not supplied by this search feed, so the existing thumbnail field remains null.
Input
The only required field is q. A real input used for the example below is:
{"q": "openai"}
| Field | Default | Meaning |
|---|---|---|
q | Required | Search query. Surrounding whitespace is removed. |
hl | en | Two-letter language code, used for the feed and request language. |
gl | US | Two-letter country code, reported in uppercase. |
ceid | Derived | Edition override such as country:language; a value without a colon is ignored. |
sort | newest | Feed order, or oldest to reverse the selected articles. |
when | No filter | Recency window in hours, days, months or years. |
limit | 10 | Maximum selected articles, from 1 to 100. |
Country, language and edition are separate settings. If you supply an edition override, the country and language parameters still travel with the query. When no valid override is supplied, the edition is derived from the uppercase country and lowercase language. The original input field names and defaults remain available to existing API integrations.
Use a window such as 24h, 7d, 2m or 1y. Google News supports hours, days and years in this operator. The Actor therefore translates each requested month into thirty days: 2m becomes 60d. The when output keeps your original value and when_effective shows the value actually sent. Without a window, both fields are null.
newest preserves the order supplied by Google News. oldest reverses the articles already selected under your limit and numbers them again from one. It does not request the oldest articles about the topic, and neither option promises strict chronological sorting. The selection is made before this reversal.
Output
The following row is actual output from a run on 1 October 2026. The article selection changes as Google News updates its feed.
{"rank": 1,"title": "Exclusive | OpenAI Parts Ways With Researchers Who Allegedly Shared Confidential Information - WSJ","url": "https://news.google.com/rss/articles/CBMiuAFBVV95cUxQQWJYd0owc0RKM3JUWFRMZHA5dVk4REotM1NxS2Z4NktpQ0RRZzh5NHVUaDdoOVMwWFBSRnkyNEtrUXlNQy1ZNTN5MnVxdHR5VFlQaG5GZDZKWDIwXzlyQWpNQXpTaWlFdnlzTUNxSlRQdzh4SDBBei1RR29seS1vTURiT1hWZHlxSDN4NlkzNWRlWFNwM0VWSHJrYmtWV1FzaXJyUWtPSkFNTEhkQ2N2OEYycUFRd0VB?oc=5","source": "WSJ","published": "Thu, 01 Oct 2026 16:20:00 GMT","snippet": "Exclusive | OpenAI Parts Ways With Researchers Who Allegedly Shared Confidential Information WSJ","thumbnail": null,"query": "openai","hl": "en","gl": "US","ceid": "US:en","sort": "newest","when": null,"when_effective": null,"fetched_in_seconds": 3.17,"fetched_at": "2026-10-01T17:06:34.115Z","published_at": "2026-10-01T16:20:00.000Z","engine": "google_news","position": 1,"publisher": "WSJ","country": "US","language": "en"}
The original fields remain: rank, title, url, source, published, snippet, thumbnail, query, hl, gl, ceid, sort, when, when_effective and fetched_in_seconds. Their JSON types are preserved, including null values for absent windows and thumbnails. The original source field continues to mean the article publisher.
Additional fields make the records easier to join with other news results. engine identifies Google News, position repeats the result rank, publisher repeats the publisher name, and country and language repeat the selected edition settings. fetched_at records the retrieval time in UTC. When the original publication date can be read, published_at adds the same date in ISO 8601 UTC; published remains the original date text.
Results are written to the default dataset. The key-value store contains summary with itemCount and errorCount. On a free run, the summary retains the count collected before the delivery cap, while OUTPUT.freeTierDelivered tells you how many rows were actually delivered. OUTPUT also reports the run status and cap information. If a search returns no matches or a recoverable source error occurs, the run completes with no rows and the errors record explains the result. Existing error codes such as empty_feed remain available.
Use cases for a Google News scraper
- Brand and reputation monitoring. Search your company, product or executive names every few hours and keep a log of new article links and publishers.
- Competitor tracking. Run the same query for each competitor with a
7dwindow and compare which publishers cover them. - Press clipping for PR teams. Collect coverage per country edition, for example
glNLwithhlnlfor Dutch coverage, and export it as CSV for a weekly report. - Topic and market alerts. Combine the Actor with an Apify schedule and a webhook to send new headlines about a topic to Slack, email or your own service.
- Research datasets. Build a list of headlines, publishers and publication dates for a set of topics as input for classification, sentiment analysis or an LLM pipeline.
A real example with a non-English edition: the input {"q": "kabinet", "hl": "nl", "gl": "NL", "when": "1y", "limit": 20} returned Dutch articles such as "Kabinet haalt Nederland van het stikstofslot - Rijksoverheid.nl", with ceid NL:nl, country NL and language nl on every row.
Google News API compared with other options
There are several ways to get Google News results into your own tools.
| Option | What you get | What to keep in mind |
|---|---|---|
| This Actor | Search feed results per query, country and language as JSON rows, pay per article | Feed text and Google News links, not full article bodies |
| Reading the Google News page yourself | The same headlines in a browser | Manual work, no export, no schedule |
| Writing your own scraper | Full control | You maintain parsing, edition handling and error handling yourself |
| Full-text news scrapers | Article bodies from publisher sites | Slower and usually more expensive per article |
Choose this Actor when you need fast, cheap and structured headline monitoring across country editions. Choose a full-text tool when you need the complete article body for every result.
Pricing
The existing pay-per-event prices are unchanged: $0.01 for the Actor start and $0.004 for each delivered article. The start event depends on Actor memory, with a minimum of one event; the default configuration stays within one GB. A run with ten delivered articles therefore has one start event and ten result events. An empty result has no article events and retains the start event.
Users without a paid Apify plan receive at most ten dataset rows per run. Paying users can receive the requested limit up to the feed maximum. The cap is applied after the selected feed order, so reversing a larger selection still returns the same first ten rows that the original Actor would deliver. No discarded rows are charged as article results.
Using the results
Download your dataset as JSON, CSV or another format offered by Apify, or retrieve it through the dataset API. For monitoring, keep the query, country, language and article URL with each row. Comparing article URLs across runs helps identify entries you have already seen. Publication dates can help with your own filtering, but the search feed can change both its order and its coverage between requests.
FAQ
Is this Google News scraper free?
Users without a paid Apify plan can try it and receive up to ten articles per run. Beyond that the Actor uses pay-per-event pricing: $0.01 per run start and $0.004 per delivered article, with no monthly subscription.
Which countries and languages are supported?
Any Google News edition that exists for a country and language pair. Set gl to the two-letter country code and hl to the two-letter language code, or pass an edition such as DE:de in ceid.
Can I get full article text or publisher URLs directly?
The Actor returns the Google News article link and feed text. It does not extract full articles from publisher websites. Follow the supplied link in your own workflow if you need to open the original article.
Why did a successful run return no articles?
The query and time window may have no matching feed entries. Look at errors for the explanation and try a broader query or a wider time window. Empty searches keep the start event but have no article charges.
Why does oldest not show the oldest coverage of a topic?
It reverses the selected feed entries. It does not change the source search into a historical archive. Set your query and recency window according to the coverage you need.
Can I schedule this search?
You can use Apify tasks and schedules to repeat the same Actor input. Keep the edition and window consistent if you plan to compare results across runs. Each scheduled run retrieves the feed as it exists at that time.