Google Trends Now Scraper — Trending Searches by Country
Pricing
from $0.50 / 1,000 trending searches
Google Trends Now Scraper — Trending Searches by Country
Google's trending searches for any country: rank, the traffic floor Google publishes, when each trend started, and the news stories behind it. From $0.50 per 1,000 trending searches, no start fee — poll it every hour. Never charged for an empty pull.
Pricing
from $0.50 / 1,000 trending searches
Rating
0.0
(0)
Developer
Steadyfetch Team
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
No start fee, and never charged for an empty pull. Google's trending searches for any country — rank, the traffic floor Google publishes, when each trend started, and the news stories behind it.
Just want to see it work? Click Start with nothing set and the run pulls the top 5 trending searches for the US, charged like any run at your plan's per-row price. Set a limit or two but no country and the same sample runs under your settings — a limit larger than the sample's own is capped at it, and one uncharged note row names the settings it used. Set your own country codes for your own run.

Built for a schedule. Most actors in this category charge a fee every time a run starts, so an hourly cron pays that fee 720 times a month before it collects a single row. This one has nothing charged for starting a run at all: you pay per trending search delivered, and nothing else.
Unofficial. This actor is not affiliated with, endorsed by, or sponsored by Google. "Google" and "Google Trends" are trademarks of Google LLC, used here only to describe what this tool reads.
From $0.50/1,000 trending searches — all-inclusive pay per event, nothing charged for starting a run, charged only on delivery.
Every row carries charged and missReason, so you can reconcile the invoice from the
dataset itself without opening the console. Only rows with charged: true were billed.
Output
One row per trending search, one shape for every country, so polls stack into a single table:

charged | geo | rank | query | approxTraffic | approxTrafficMin | startedAt | newsCount |
|---|---|---|---|---|---|---|---|
| true | US | 1 | james talarico | 200+ | 200 | 2026-08-27T03:00:00.000Z | 3 |
| true | US | 2 | martha stewart | 2000+ | 2000 | 2026-08-27T02:50:00.000Z | 3 |
| true | GB | 1 | conmebol sudamericana | 500+ | 500 | 2026-08-27T02:40:00.000Z | 2 |
(Real rows from a US/GB run.)
Every row also carries pubDate (Google's own timestamp text), picture, exploreUrl (opens
the trend in Google Trends), news (an array of {title, source, url}), fetchedAt,
status, retryable, statusReason and schemaVersion. The last row of every run is a
summary row with delivered, geosDelivered, stoppedBy, resumeCursor and
chargedEvents.
Two fields worth understanding
approxTraffic is a floor, not a count. Google publishes "500+", never an exact number.
The text you see is exactly what Google published, and approxTrafficMin is its lower bound
as an integer. Nothing here is estimated, rounded or invented.
startedAt is when the trend started, not when you fetched it. It comes from Google's own
timestamp, converted to ISO-8601 UTC, with the original string kept beside it in pubDate so
you never have to trust our parse.
Agent / API paste-block
Actor: steadyfetch/google-trends-now-scraperRequired: geo (string, two-letter country code — leave it empty and therun is a 5-row US sample, charged like any run; setlimits but no country and the sample runs under them)Optional: geos (array of country codes, polled in one run)maxTrendsPerGeo (integer, default 10 — Google publishes 10 per country)minTraffic (integer, default 0 — skip trends below this floor)includeNews (boolean, default true)maxItems (integer, default 100 — hard cap for the whole run)maxRunSeconds (integer, default 120 — clean stop, never a timeout kill)Charges: trending-search once per delivered trending searchNote: omit an optional field or send it as null to take its default — both meanthe same thing (geo is required and must carry a real value)Build spec: https://apify.com/steadyfetch/google-trends-now-scraper/apiToken: https://console.apify.com/settings/integrations
curl -X POST "https://api.apify.com/v2/acts/steadyfetch~google-trends-now-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"geo":"US","geos":["GB","IN"],"includeNews":true}'
What you actually get per country
Google publishes 10 trending searches per country, refreshed continuously — that is the
whole feed, so 10 is both the default and the ceiling for maxTrendsPerGeo. This actor does
not pretend to offer a top 20.
How fast does it turn over? Measured over scheduled hourly polls: the US and India lists turned over by 10 of 10 and 8–10 of 10 trends per hour, Great Britain by 2–5 of 10. An hourly schedule sees genuinely new trends every time; a daily one will miss most of them.
Countries
Any two-letter country code Google covers — US, GB, IN, DE, BR, SA, AU, CA and
so on. Pass one in geo, or several in geos to poll them in a single run. Each country is
fetched independently, so one being unavailable never blocks the others.
A code Google does not publish trends for comes back as an uncharged invalid_geo row naming
the fix — it is never retried and never charged.
What you are never charged for
| situation | status | run status |
|---|---|---|
| Google does not cover the country you asked for | invalid_geo | SUCCEEDED — the row names the fix, and it is not retried |
| Google did not serve the trending feed for that country on this run — the row names a rate limit or a dropped connection only where one was actually seen | upstream_unavailable | SUCCEEDED — re-runnable, and the row says so |
| Google did not serve its trending searches for that country on this run | endpoint_unavailable | SUCCEEDED — re-runnable, and the row says so |
| Google answered normally and published nothing | empty_upstream | SUCCEEDED |
Your minTraffic filtered every trend out | filtered_out | SUCCEEDED — the row names the setting |
| A country code we could not read | input_error | SUCCEEDED — the row names the fix, no request is made |
| The note naming the settings a limits-only Start ran the sample under | sample_note | SUCCEEDED — the sample rows themselves are charged |
Your own maxItems / maxRunSeconds / cost cap | stopped_at_limit | SUCCEEDED — summary row + resumeCursor |
A refusal is reported as a refusal, never dressed up as "this country has no trends", and a country code Google rejects is never retried — retrying a typo just asks the same wrong question again on your budget.
This actor may fail when the platform changes things — failed items are never charged.
Limits are hard limits
maxTrendsPerGeo, maxItems and maxRunSeconds stop the run exactly where you set them. The
run still finishes successfully, the summary row names which limit bound, and
resumeCursor lists the countries that were not reached.
FAQ
Does {} cost anything?
Under a cent. With no country set it runs the default sample — the top 5 trending searches for the
US — charged like any run, so the first thing you see is real data in the exact row shape. The
status line says it was the sample and how to run your own countries.
I changed a limit but did not pick a country. What happens? The same sample runs, under the settings you did change: what you set is kept, what you did not set takes the sample's own value, and a limit larger than the sample's own is capped at it so a sample can never grow into a bill you did not ask for. One uncharged note row names the settings it used. A field name this actor does not recognise, or a country field you set but left empty, still gets a single uncharged row asking for the country instead.
Can I run this on an hourly schedule?
That is what it is for. There is nothing charged for starting a run, so a schedule pays exactly the same per trend
as a one-off run. Point an Apify schedule at it with geo set and append the results.
How do I tell which trends are new since my last poll?
Compare query against your previous run for the same geo. Google does not publish a stable
id for a trend, and it sometimes re-words one (américa - columbus crew became
américa vs columbus nine minutes later), so an exact-string comparison will slightly
over-count new trends. Normalising the text before comparing gets you closer.
Why is there no category on a trend? Because Google's trending feed does not publish one. Adding a column we would have to guess at would be worse than leaving it out.
Is this the same as the Google Trends Scraper? No. That one answers "how has interest in my keyword moved over time". This one answers "what is the whole country searching right now". If you want both, run both — they share the same extraction engine.
Steadyfetch trends & keyword suite
One actor per surface, one job each, the same contract everywhere: all-inclusive pay per event, nothing charged for starting a run, charged only on delivery — so a workflow built for one of them ports to the next. Keyword volume is the one exception: from 16 September 2026 a run that buys fresh volume data adds one fresh-lookup fee of $0.19; runs answered from the 30-day cache pay none.
| What you want | Actor |
|---|---|
| Interest over time, related queries, regions, compare | Google Trends Scraper — Interest Over Time, Related Queries |
| What is trending right now, by country | this actor |
| Rising and Breakout queries, with the real growth number | Rising Keywords Scraper — Google Trends Breakout Queries |
| Autocomplete suggestions across 5 engines | Google Autocomplete & Keyword Suggest Scraper — 5 Engines |
| Monthly search volume and CPC for a keyword list | Keyword Search Volume Scraper — Google Ads CPC & Competition |
| What is trending on social platforms | Social Trends Scraper — X, TikTok, Pinterest, YouTube & Google |
The rest of the steadyfetch shelf — same contract everywhere: all-inclusive pay per event, nothing charged for starting a run, charged only on delivery (three actors add a small delivery-conditional fee from 16 September 2026: keyword volume's fresh lookup, profile posts' profile lookup, Google Jobs' search fee — each README states it).
| Family | Actors |
|---|---|
| Ad creative intelligence | Facebook · Google Ads video · TikTok · LinkedIn · Google Ads text & OCR |
| Trends & keywords | Google Trends · Trends Now · Breakout keywords · Autocomplete keywords · Keyword volume & CPC · Social trends |
| YouTube transcripts | YouTube videos · YouTube channels |
| Reel transcripts · Profile posts | |
| Jobs | Indeed · Career sites by domain · Glassdoor · Multi-board · Google Jobs |
| Amazon | Products · Search · Bestsellers · Sellers |
| Any media file | Speech to Text · any link or file |
Free templates
Free n8n workflow templates for this actor are listed on our profile website (link on our Apify profile).
Feedback & support
Found an issue? Open it on the Issues tab — we usually reply within a couple of hours, always within a day.
Using an AI agent? Pin this actor in Apify's MCP server with one link: https://mcp.apify.com?tools=steadyfetch/google-trends-now-scraper.
If it earned its keep, a rating helps other buyers find it, and saving the actor keeps it one click away.