Google Trends Scraper — Queries, Regions & Trending Now
Pricing
from $1.25 / 1,000 results
Google Trends Scraper — Queries, Regions & Trending Now
Scrape Google Trends: interest over time, interest by region, related and rising queries, and real-time Trending Now searches. Batch up to 100 keywords, any country, any timeframe. Charged per row of real data — a keyword that returns nothing costs nothing.
Pricing
from $1.25 / 1,000 results
Rating
0.0
(0)
Developer
Daniel Meshulam
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Extract Google Trends data at scale: search interest over time, interest by country and region, related queries (top + rising), and real-time Trending Now searches — up to 100 keywords per run, any country, any timeframe.
If it returns nothing, you pay nothing
The usual way a Google Trends scraper wastes your money is that it runs for twenty minutes, hits Google's rate limits, and hands you an empty dataset — after billing you the whole time.
This one is built so that can't happen:
- You are charged per row of real data. Billing on dataset writes is switched off entirely, so a failed keyword produces an
errorrow that costs $0.00. No data, no charge. - Memory is capped at 512 MB (most Actors default to 4 GB). Compute is billed as memory × time, so a slow run here costs a fraction of what the same run costs elsewhere.
- No headless browser. Plain HTTP against Google's own endpoints — runs finish in about a minute, not twenty.
- One bad keyword never kills the run. Each keyword is isolated; the other 99 still return.
- Your run charge limit is honored. Set a maximum charge and the Actor stops cleanly at it instead of burning compute for revenue it can't collect.
Rotating proxies and staged backoff handle Google's rate limiting, which is what causes most empty results in the first place.
What you get
| Data type | What it returns |
|---|---|
| Keyword comparison | Up to 5 keywords on one shared 0–100 scale, with each one's average, peak, and rank |
| Interest over time | 0–100 search-interest score per week/day/hour for your timeframe |
| Interest by region | Score per country, state, or US metro area |
| Related queries | Top related searches + rising searches (with growth %, including "Breakout") |
| Trending Now | Real-time trending searches for any country, with approximate traffic and linked news |
What this Actor deliberately does not return
Two Google Trends data types are widely advertised by scrapers and do not actually work, because Google itself stopped returning them:
| Not included | Why |
|---|---|
| Related topics | Google's endpoint returns an empty ranked list on both of its backends. Every result would be blank. |
| City-level interest | Google returns 200 cities with hasData: false on every one. Region (51) and US metro (210) do return real data, and both are supported. |
Shipping an option that silently returns nothing is the fastest way to waste your money, so these were removed rather than left in the input schema to look impressive. Everything the schema offers returns data.
Use cases
- SEO & content research — find rising queries before they peak; catch "Breakout" terms early
- E-commerce & dropshipping — validate product demand by country before you spend on ads
- Market research — compare seasonality and regional demand across markets
- Trading & finance signals — track search interest for tickers, brands, and events
- AI agents & LLM pipelines — clean JSON via API, ready for automated workflows
- News & social monitoring — Trending Now with attached news stories, refreshed in real time
Compare keywords head-to-head
Set compareKeywords: true and every keyword is scored against the same ceiling, so the numbers are directly comparable — the question Google Trends is most often asked:
{ "keywords": ["nike", "adidas", "new balance", "hoka"], "compareKeywords": true, "geo": "US" }
#1 nike avg 53.6 peak 100#2 adidas avg 23.0 peak 52#3 new balance avg 16.3 peak 34#4 hoka avg 6.6 peak 14
Each row carries the full timeline plus averageInterest, peakInterest, and rank, so you can chart it or sort it without post-processing.
Input example
{"keywords": ["matcha", "protein powder", "creatine gummies"],"dataTypes": ["interestOverTime", "relatedQueries", "interestByRegion"],"geo": "US","timeframe": "today 12-m","trendingNowGeo": "US"}
Output example (one row per keyword × data type)
{"keyword": "matcha","dataType": "relatedQueries","geo": "US","timeframe": "today 12-m","top": [{ "query": "matcha latte", "value": 100 }],"rising": [{ "query": "matcha shortage", "formattedValue": "Breakout" }]}
Export as JSON, CSV, Excel, or feed it straight into Google Sheets, Make, Zapier, LangChain, or your own code via the Apify API.
Pricing
Pay per result: you are charged a small fee per successfully returned data row (keyword × data type). Failed lookups cost nothing. A run with 10 keywords × 2 data types = 20 results.
Notes & fair use
- Google Trends values are relative (0–100 within your query), not absolute search volumes.
- By default each keyword is normalized independently. Set
compareKeywords: trueto put up to 5 on one shared 0–100 scale (see above). - Regions with no search data are omitted rather than returned as zeros, so every row you get is a real signal.
- This Actor collects publicly available, aggregated, anonymous data only — no personal data is touched.
FAQ
Why do I sometimes see a keyword with an error field?
Google aggressively rate-limits. The Actor retries with rotating proxies and exponential backoff; in the rare case a keyword still fails, it's reported transparently — and not charged.
Does it support any country?
Yes — worldwide by default, or any ISO country/region code (US, GB, DE, IL, US-CA…).
Can I schedule it? Yes — use Apify Schedules to run it hourly/daily and deliver fresh trend data to your stack automatically.