Google News Scraper API: Articles, Sources & Dates avatar

Google News Scraper API: Articles, Sources & Dates

Pricing

from $0.90 / 1,000 articles

Go to Apify Store
Google News Scraper API: Articles, Sources & Dates

Google News Scraper API: Articles, Sources & Dates

Monitor brands and topics in Google News: title, URL, publisher, snippet, publication time and position for every article, in 20 countries. Time filter, sort by date, only-new-articles mode for scheduled alerts (no duplicates). Pay per article found.

Pricing

from $0.90 / 1,000 articles

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

Scrape Google News for any keyword, brand or topic and get one clean row per article: title, URL, publisher, snippet, publication time and position, in 20 countries and their languages. Filter by past hour, day, week, month or year and sort by date: a simple news monitoring API for brand tracking, PR and market watch.

It calls a commercial search data API instead of driving a browser: results in seconds, no proxies, no blocked runs, no captcha. You only pay for articles returned (from October 23, 2026, plus a small check fee with Only new articles): queries with no result, duplicates and input mistakes are free.

Typical uses

  • Brand and competitor monitoring: turn on Only new articles, schedule a daily run on your brand names and get (and pay for) each new article mentioning them once.
  • PR and media relations: see which outlets cover a topic, how high they rank and when they published.
  • Market and investment watch: follow companies, tickers, products or regulations in several countries at once.
  • Content and SEO teams: find what is trending in Google News for your keywords, with the publishers that rank.
  • Automations and AI agents: feed n8n, Make, Zapier, Slack, Google Sheets or an MCP client with structured JSON.

What you get for each article

FieldDescription
title, urlHeadline and article URL on the publisher's site
sourceDomainPublisher domain without www, e.g. reuters.com (always filled)
sourceNamePublisher name as Google shows it, e.g. Reuters. Google displays it in Top stories; in the main list it is filled only when the same publisher also appears in Top stories, otherwise null
snippetShort excerpt shown by Google (main news list; null for Top stories)
publishedAtPublication time in UTC (ISO 8601), computed from Google's relative time: "7 hours ago" gives the hour, "4 days ago" gives the day
publishedTimeTextPublication time exactly as Google displays it, in the search language (7 hours ago, Il y a 4 jours)
position, sectionPosition in the results (1 = first) and where it was shown: top_stories (carousel) or news (main list)
topStoryHeadlineHeadline of the Top stories group the article belongs to
searchQuery, timeRange, sortBy, searchCountry, languageCodeYour search settings, echoed on every row
observedAtWhen the data was fetched (UTC)

Missing values are always null, never guessed. Each URL appears once per query.

Input

{
"queries": ["Tesla", "\"electric vehicles\" Europe"],
"country": "US",
"maxArticlesPerQuery": 50,
"timeRange": "day",
"sortBy": "date",
"includeTopStories": true
}
  • queries: up to 1,000 per run. "exact phrase", -excluded words and OR work at the normal price.
  • country: US, GB, CA, AU, IE, IN, DE, AT, CH, FR, BE, ES, MX, IT, NL, PT, BR, PL, SE, JP. languageCode (optional, e.g. fr for Switzerland) defaults to the country's main language.
  • maxArticlesPerQuery: 1 to 200 (default 50). Google loads about 10 results per page; large values take longer (about 6 seconds per page).
  • timeRange: any, hour, day, week, month, year (Google's own "Recent" filter).
  • sortBy: relevance (Google's default) or date (most recent first).
  • includeTopStories: also return the articles of Google's Top stories carousels (default true).
  • onlyNewArticles (optional, monitoring): return only articles never delivered to you before for the same query, country and language. See below.
  • monitorName (optional): name of the key-value store in your account that remembers delivered articles (default plainrows-news-monitor).
  • Search operators such as site: or intitle: are not supported: in our tests the data source returned no article for them, so such queries are skipped for free and listed in the run summary. Use plain keywords instead.

Scheduled monitoring: only new articles

Turn on Only new articles ("onlyNewArticles": true) and add an Apify schedule (hourly or daily). The first run returns every article it finds and remembers their URLs in a key-value store of your own Apify account; each later run returns and bills only articles it has never delivered. A query with nothing new gets a free row with notFoundReason: "no-new-articles".

Check fee in this mode (from October 23, 2026): each page of up to 10 Google News results checked costs one small page-checked event (about what the data source charges us), even when nothing new is found. It is never charged for a search the data source answered in an unexpected format (no results list): the run warns about it in the log and in its summary. Keep maxArticlesPerQuery close to the number of new articles you expect per run (10 or 20 for a daily brand watch). Runs without Only new articles never pay it.

  • Use sortBy: "date" and a time range a bit longer than the schedule (timeRange: "day" for a daily run) so the newest articles are always in the window; maxArticlesPerQuery caps the articles checked per run.
  • History is kept per query, country, language and Top stories setting (time range and sort order are ignored). Use a different monitorName per monitoring task to keep separate histories, or a new name to start over.
  • The same article can match several of your queries: each query returns its own row (with searchQuery), so you know which brand it mentions.
  • Without this option, a scheduled run returns everything in the time window again: remove duplicates by url where the data lands.

Output example

Real rows from runs on 2026-10-07: a Top stories article (query Tesla, default settings) and a main-list article (query Tesla, timeRange: "day", sortBy: "date"), both US/English:

[
{
"searchQuery": "Tesla",
"found": true,
"position": 1,
"section": "top_stories",
"title": "Tesla is browbeating the EU to approve its ‘Full Self-Driving’ tech. The pressure is working.",
"url": "https://www.reuters.com/investigations/tesla-is-browbeating-eu-approve-its-full-self-driving-tech-pressure-is-working-2026-10-07/",
"sourceName": "Reuters",
"sourceDomain": "reuters.com",
"snippet": null,
"publishedAt": "2026-10-07T06:24:04.000Z",
"publishedTimeText": "7 hours ago",
"topStoryHeadline": "News about Tesla",
"timeRange": "any",
"sortBy": "relevance",
"searchCountry": "US",
"languageCode": "en",
"observedAt": "2026-10-07T13:23:21.192Z",
"schemaVersion": "1.0"
},
{
"searchQuery": "Tesla",
"found": true,
"position": 1,
"section": "news",
"title": "Tesla’s Third-Quarter Deliveries Beat Expectations. Time to Buy the Stock?",
"url": "https://www.fool.com/investing/2026/10/07/tesla-s-third-quarter-deliveries-beat-expectations-time-to-buy-the-stock/",
"sourceName": null,
"sourceDomain": "fool.com",
"snippet": "It's been a pretty challenging year for Tesla (TSLA +0.52%). The company's shares are down 16% as of writing, partly due to a mixed performance in its...",
"publishedAt": "2026-10-07T13:07:32.000Z",
"publishedTimeText": "14 minutes ago",
"topStoryHeadline": null,
"timeRange": "day",
"sortBy": "date",
"searchCountry": "US",
"languageCode": "en",
"observedAt": "2026-10-07T13:20:59.682Z",
"schemaVersion": "1.0"
}
]

Pricing

Pay per article returned, no subscription, no fee per run, no proxy costs. See the Pricing tab for current prices: one event per article found, cheaper on higher Apify plans. With Only new articles, each page of up to 10 results checked also costs a small page-checked event (from October 23, 2026). Title, publisher, snippet and date are all included in that price.

Price change on October 23, 2026: new page-checked event, $0.0025 (FREE) / $0.002 (BRONZE+) per page of up to 10 results checked, only with Only new articles. The article price does not change.

Queries with no result, duplicate URLs, skipped queries (search operators) and input mistakes cost nothing. The run never spends more than the maximum cost you set. If many searches in a row return nothing billable (about $0.01 of data-provider calls), the run stops early and says so in its status; the searches not run are not charged.

Free Apify plan: each run returns up to 20 articles for up to 2 queries, so you can check the output. A paid Apify plan removes these limits.

Use it from code, automations or AI agents

API (one call, results returned directly):

curl -X POST "https://api.apify.com/v2/acts/plainrows~google-news-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["Tesla"], "timeRange": "day", "sortBy": "date", "maxArticlesPerQuery": 30}'

n8n, Make, Zapier: use the Apify integration, pick plainrows/google-news-scraper, schedule it, and send new articles to Slack, e-mail, Google Sheets, Airtable or your database.

AI agents (MCP): add https://mcp.apify.com?tools=plainrows/google-news-scraper to Claude, Cursor or any MCP client. The agent gets a typed news search tool and pays per result.

What this is not

  • No full article text. You get what Google News shows (title, snippet, publisher, time) and the link to the article.
  • Not the news.google.com "For you" or topic feeds: it is the Google search News tab for your keywords.
  • publishedAt is as precise as Google's relative time ("1 day ago" is a day, not a minute).
  • Not affiliated with Google.

Run summary

Each run stores a summary in the key-value store (OUTPUT): queries run, queries with no result, articles billed, articles skipped as already delivered (articlesAlreadySeen, monitoring only), duplicates, invalid or skipped queries (with the reason), and anything skipped because of the free-plan or budget limit.

FAQ

How do I monitor news about my brand? Enter your brand as a query (use "exact phrase" and -word to refine), set timeRange to day, sortBy to date, turn on Only new articles and schedule the run daily in Apify or n8n: you get and pay for each new article once.

How many articles per query? 1 to 200 (maxArticlesPerQuery, default 50).

Which countries and languages? US, GB, CA, AU, IE, IN, DE, AT, CH, FR, BE, ES, MX, IT, NL, PT, BR, PL, SE, JP, in the country's main language or the one you set.

Does it return the full article text? No: title, snippet, publisher, publication time and the link to the article.

Can I use site: or intitle:? No: such queries returned nothing in our tests, so they are skipped for free and listed in the run summary.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Compared with other APIs: Brand news monitoring as JSON · NewsAPI alternative for production

Support

Missing a field or found a bug? Open an issue on this page. Issues are read and answered.