Google News Scraper — News by Query, Exact Limit, No Start Fee avatar

Google News Scraper — News by Query, Exact Limit, No Start Fee

Pricing

from $0.80 / 1,000 articles

Go to Apify Store
Google News Scraper — News by Query, Exact Limit, No Start Fee

Google News Scraper — News by Query, Exact Limit, No Start Fee

Type a search query and get Google News as rows — the headline, the Google News link, Google's own article id, the publication time as a real ISO timestamp, the publisher and their site, and how many outlets carried the story. From $0.80/1,000 articles, exact limit, no start fee.

Pricing

from $0.80 / 1,000 articles

Rating

0.0

(0)

Developer

Steadyfetch Team

Steadyfetch Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Click Start with nothing set and the run returns a small built-in sample — one query, ten articles — so you see the output shape before you spend anything, at no result fee. A box you did set and then left blank is a different thing and is answered as one: that entry is refused before anything is fetched, on one row naming the field, and nothing is charged for it.

Using an AI agent? Pin this actor in Apify's MCP server with one link: https://mcp.apify.com?tools=steadyfetch/google-news-rss-scraper

  • Actor id: steadyfetch/google-news-rss-scraper
  • Input: { "queries": ["electric vehicles"] } — the one field you have to set. Or { "topics": ["TECHNOLOGY"] } for a whole Google News section, with no query at all.
  • Cap the bill: set maxTotalChargeUsd on the run (a run option, not Actor input), e.g. 0.50 — the run stops when it reaches it.
  • Your cap is the cap. maxItems is exact and covers the whole run. Ask for 10 and you get 10 rows, not 100 and a bill for the other 90. There is one number in this actor and it is the one you set. The run page reconciles against that number and nothing else — articles your account already had are counted beside it ("10 more you already had were skipped, not charged"), never added to what you asked for.

Priced from $0.80 per 1,000 articles on the cheapest paid tier, $3.20 per 1,000 on the Apify free plan, platform usage included, nothing charged for starting a run. You are charged only when a row lands in your dataset: a query that matched nothing, a feed Google would not serve, and every article a limit or the run clock stopped us from collecting all cost $0.

What one row looks like

A real delivered row, built by this actor's own parser from a harvested Google News feed:

{
"target": "openai",
"targetKind": "query",
"title": "AI agents being tested by OpenAI involved in cyber-attack on another service, say researchers",
"titleWithSource": "AI agents being tested by OpenAI involved in cyber-attack on another service, say researchers - The Guardian",
"googleNewsUrl": "https://news.google.com/rss/articles/CBMilwFBVV95cUxPUHZKUnc5TTdXbm1ZSmFOMkFkVTln…?oc=5",
"guid": "CBMilwFBVV95cUxPUHZKUnc5TTdXbm1ZSmFOMkFkVTln…",
"publishedAt": "2026-09-11T23:56:00.000Z",
"publishedAtRaw": "Fri, 11 Sep 2026 23:56:00 GMT",
"publisherName": "The Guardian",
"publisherHomeUrl": "https://www.theguardian.com",
"relatedArticleCount": 2,
"language": "en",
"country": "US",
"timeWindow": null,
"status": "delivered",
"charged": true
}

The two long Google identifiers are trimmed with for this page; a real row carries them in full. Every column is explained in the table below, and a row that could not be delivered carries the same columns with null in them, plus a status saying why — and no result fee.

What you get

One row per article, one column set whichever door it came through — a search query, a Google News topic section, a place, or the top stories. (Each query or section also gets one row of its own; see One extra row per query, below.)

columnwhat it is
target · targetKindthe query, topic or place that produced this row, and which kind it was
titlethe headline, with the publisher suffix Google appends removed
titleWithSourcethe headline exactly as Google publishes it, publisher suffix and all
googleNewsUrlthe article's link on Google News — see About the link, below
guidGoogle's stable identifier for the article. It is what your account's memory keys on, so the same article is never delivered twice — unless the run's API token cannot open key-value stores, which the run page and the first row both say
publishedAtwhen it was published, ISO-8601 UTC — a real timestamp, parsed, never a relative phrase like "2 hours ago" and never in the publisher's own language
publishedAtRawthe same date exactly as Google published it, so you can check our parse
publisherName · publisherHomeUrlwho published it, and their site's home address — both come from Google's own <source> field and are present on every article we have measured
relatedArticleCounthow many other outlets Google grouped under this story
language · country · timeWindowthe settings this row was fetched under, on the row, so a dataset from several runs is still readable
charged · chargedEventswhether this row was billed, and by which event. No row bills two.
status · statusReasonwhat happened, in a sentence, on every row including the ones that cost nothing

One extra row per query, and it is where the Query check lives

Alongside the article rows, every query and every topic section you ask for gets one row of its own — so a run of three queries returns your articles plus three of these, and a buyer counting rows should expect them.

That row says how many articles Google News is carrying for the query, how many were delivered, how many your account already had, and whether the Query check was charged for it. It is the only row that ever carries a Query check, and no row bills two events.

It exists for a plain reason: the check is charged per query, not per article, so it needs a row of its own. An all-repeat query has no article row for it to ride on, and a charge with no row behind it is a charge that cannot be reconciled from your dataset — which is the one thing every actor on this shelf promises you can do.

googleNewsUrl is the article's Google News link, not the publisher's own URL, and this actor does not pretend otherwise.

Google News publishes every article behind an opaque redirect of its own. Turning one of those into a publisher URL is not a lookup — it is a second request per article against an undocumented endpoint that Google changes, and on the day this actor was built that endpoint refused every documented form of the call. An actor that promises you real publisher URLs is promising you something that breaks without warning, and a broken link is worse than an honest one.

So this row gives you what is solid: the Google News link, which always resolves in a browser, plus publisherName and publisherHomeUrl from Google's own data. If your pipeline needs the publisher's article URL, open googleNewsUrl — the redirect works for a reader. If that ever becomes cheap and reliable to do at scale, it arrives as a column, not as a surcharge.

What it costs

Two charged events. Nothing is charged for starting a run, and nothing is charged for a row that did not land.

eventwhat one unit isApify free planpaid plans, from
Articleone article row, from a query, a topic section, a place or the top stories$0.0032$0.0008
Query checkone query, topic or place whose feed came back with articles in it — including a run where you already held every one of them, and the answer is "nothing new since your last run"$0.002$0.002

100 articles from one query is 100 Articles plus 1 Query check: $0.322 on the Apify free plan, $0.082 from the cheapest paid tier.

Ten articles — the shape an agent asks for — is $0.034 and $0.010. There is no fee to start a run, so a small ask is a small bill.

The Query check is what makes a schedule honest in both directions. Your account's memory means a query you already ran costs you nothing in Article rows the second time — as long as the run's API token can open key-value stores in your account — and the check is the flat, disclosed price of us going and looking. A query we could not fetch, one you set to a value we do not recognise, and one that matched nothing at all are never charged it.

How often the data changes

feedhow fast it moves
a search query with no time windowthe top of it turns over through the day; the tail is stable for days
a search query with Time window set to 1h or 1da stream — run it as often as your window is wide and you will see new rows each time
a topic section or the top storiesrebuilt continuously; the leading stories change within the hour
an article's own publishedAt and publisherNamefixed the moment it is published, and never revised

A note on freshness, because it is the thing most often mis-sold. Google News indexes a publisher on Google's schedule, not the publisher's. On measured feeds the newest article sat between four and fourteen hours behind the moment of the run. A one-hour window is a real filter, not a promise that the last hour of the world's news is already in the index.

The schedule that stays cheap. Set Time window to the gap between your runs and leave Skip articles you already have on. Every article this actor has already delivered to your account is skipped on the next run — no row and no charge — so a daily schedule pays for what is new and the one Query check, and nothing else. Switch the setting off to get them anyway, marked as repeats and still uncharged. The memory is a key-value store in your own Apify account, so a run started with a scoped API token in restricted-access mode needs key-value store Read, Write and Create permission, or Actor runs set to Full access (Write is what lets the run remember what it delivered; without it every run pays again); without it the run says so on its status line and on its first row, and cannot skip what you already have.

Every run ends with a receipt

The last row of every run is a receipt: articles delivered by target, what was asked for, what your account already had, what your time window dropped, what stopped the run, and the charged totals for both events — so an invoice reconciles from the dataset itself. A cost cap or a time limit ends the collecting, never the delivering — rows already in hand are always written out.

  • What the whole internet is searching for right now: steadyfetch/google-trends-now-scraper. A keyword's full interest curve: steadyfetch/google-trends-scraper.
  • What is trending on the social platforms instead: steadyfetch/social-trends-scraper.
  • The discussion under a story rather than the story: steadyfetch/reddit-scraper.

Something not right?

Open the Issues tab on this actor with your run ID and the input you used, and it gets looked at. If it earned its keep, a rating helps other buyers find it, and saving the actor keeps it one click away.