Google Trends Scraper: Compare Unlimited Keywords, Never Hangs
Pricing
from $1.00 / 1,000 results
Google Trends Scraper: Compare Unlimited Keywords, Never Hangs
Google Trends data that always finishes: any number of keywords on one scale, related queries, regions, trending now. Pay only for results.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Jerry
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Security
Limited permissionsShare
Google Trends data from a simple API call, with no Google account and no browser:
- Interest over time for any number of keywords, on one shared 0-100 scale.
- Related queries (top and rising, with "Breakout" flags) and interest by region (countries, sub-regions, cities or US metros).
- Trending now: today's trending searches for any country.
Why this one
- It always finishes. You set a hard time limit (
maxRunSeconds). The run stops before it and keeps everything it got. No 20-minute runs that return nothing. - You only pay for results. Each dataset row costs $0.002 or less. Keywords that Google has no data for are listed in the run summary and cost nothing. An empty run costs nothing.
- Any number of keywords on one scale. Google compares at most 5 terms at a time and rescales every request to its own 0-100. This Actor stitches the batches together, so 500 keywords come back directly comparable.
It is a working pytrends alternative: pytrends was archived in 2025 and now fails with 429 errors. This Actor handles sessions, retries and rate limits for you.
One shared scale, explained
Google Trends only compares 5 keywords at once, and each request scales its own top value to 100. If you split 12 keywords into batches of 5 (what most Google Trends scrapers and pytrends scripts do), the numbers from different batches cannot be compared.
Real data, US, last 12 months, average interest:
| Keyword | Separate batches of 5 | This Actor (shared scale) |
|---|---|---|
| ebay | 62 | 42.29 |
| wine | 62 | 42.78 |
| hoodie | 38 | 25.96 |
| wikipedia | 27 | 18.62 |
| podcast | 26 | 18.06 |
| matcha | 79 | 8.64 |
| violin | 32 | 3.56 |
| figma | 22 | 2.42 |
| badminton | 12 | 1.27 |
| uber app | 7 | 0.82 |
| costco jobs | 54 | 0.79 |
| bagel near me | 47 | 0.68 |
In separate batches, "costco jobs" (54) looks twice as popular as "wikipedia" (27). On the shared scale it is about 24 times smaller. The Actor finds this by putting overlapping keywords in each batch and chaining the ratios, with a confidence flag on each result.
Input examples
SEO keyword research: rank a keyword list by interest
{"keywords": ["running shoes", "trail running shoes", "barefoot shoes", "hiking boots", "walking shoes", "sneakers", "cross training shoes"],"geo": "US","timeRange": "today 12-m","reports": ["interestOverTime", "relatedQueries"]}
Brand comparison across regions
{"keywords": ["Nike", "Adidas", "Puma", "New Balance"],"geo": "GB","timeRange": "today 5-y","reports": ["interestOverTime", "interestByRegion"],"regionResolution": "city"}
Trending now in 3 countries (no keywords needed)
{ "trendingNow": ["US", "GB", "DE"] }
Other inputs: property (web, images, news, YouTube, shopping), category, language, anchorKeyword, maxResults (a spending cap), and resolveTopics, which looks each keyword up as a Google topic. With resolveTopics, "tennis" becomes the topic Tennis, which counts every spelling and language. You can also pass topic IDs such as /m/07bs0 directly.
Output
One dataset row per keyword per report, plus one row per trending search. Every keyword row has report, keyword, geo, timeRange, category, property, trendsUrl (opens the same view on Google Trends) and fetchedAt.
interestOverTime
{"report": "interestOverTime","keyword": "violin","geo": "US","timeRange": "today 12-m","scale": "shared","points": [{"date": "2025-11-02", "timestamp": 1762041600, "value": 3.82, "isPartial": false}],"peakValue": 5.09,"averageValue": 3.56,"stitch": {"anchor": "ebay", "hops": 2, "factor": 0.1157, "confidence": "medium"}}
scale is shared (stitched across batches), google (5 or fewer keywords, one direct Google comparison) or single (sameScale off). stitch.confidence is high when the keyword was measured next to the anchor, medium or low as the chain of batches gets longer.
relatedQueries
{"report": "relatedQueries","keyword": "pickleball","top": [{"query": "pickleball paddle", "value": 100}, {"query": "pickleball courts", "value": 87}],"rising": [{"query": "charles barkley pickleball comments", "value": 7300, "formattedValue": "Breakout"}]}
interestByRegion
{"report": "interestByRegion","keyword": "padel","resolution": "region","regions": [{"geoCode": "US-FL", "geoName": "Florida", "value": 100}, {"geoCode": "US-NY", "geoName": "New York", "value": 75}]}
Region values are relative within each keyword (the top region is 100).
trendingNow
{"report": "trendingNow","geo": "US","rank": 1,"title": "conference league","approxTraffic": "2000+","startedAt": "2026-11-05T18:20:00Z","news": [{"title": "Conference League line-ups: Atalanta vs. Kairat Almaty", "url": "https://sports.yahoo.com/articles/conference-league-line-ups-atalanta-164000981.html", "source": "Yahoo Sports"}]}
Cost
You pay per dataset row, plus a fraction of a cent per run start. Platform usage is included. Higher Apify plans pay less:
| Apify plan | Per 1,000 results |
|---|---|
| Free | $2.00 |
| Bronze | $1.50 |
| Silver | $1.20 |
| Gold and above | $1.00 |
Examples on the Free plan:
| Run | Results | Cost |
|---|---|---|
| 500 keywords, interest over time | 500 | $1.00 |
| 10 keywords, all 3 reports, plus trending now for 1 country | about 40 | about $0.08 |
| Trending now in 3 countries | about 30 | about $0.06 |
Set maxResults to cap what a run can cost.
The SUMMARY record
Every run writes a SUMMARY record to its key-value store (Storage tab, then Key-value store). It is free and tells you what happened to every keyword:
{"status": "completed","keywordsRequested": 3,"resultsPushed": 9,"noData": [{"keyword": "xyzzy", "report": "relatedQueries", "reason": "google_returned_none"}],"failed": [],"notReached": [],"requests": 14,"retries": 2,"elapsedSeconds": 32}
status:completed,stopped_at_time_limitorstopped_at_spending_cap.noData: Google has nothing for that keyword and report. Not billed.too_low_relative_to_setmeans the keyword is too small next to the others to show on the shared scale. Run it with smaller keywords to see it.failed: Google kept refusing after retries. Not billed. Run these again.notReached: the time limit or spending cap came first. Give them a new run or a highermaxRunSeconds.
Use from AI agents (MCP)
AI agents can call this Actor through Apify's MCP server. The inputs have short, clear descriptions and small defaults, so agents can use it without extra prompting. Example config for Claude Desktop, Cursor or any MCP client:
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server", "--actors", "granola2/google-trends-scraper"],"env": { "APIFY_TOKEN": "<your Apify API token>" }}}}
FAQ
What does 0-100 mean? Relative interest, not search counts. 100 is the highest point in the set of keywords and time range you asked for. 50 means half as many searches as that peak. Google does not publish absolute search volumes.
Why do values shift slightly between runs? Google computes Trends from a sample of searches and refreshes the sample. Two runs a day apart can differ by a few points, more for small keywords. That is Google's data, not a stitching error.
Where are related topics? Since 2026 Google returns empty related topics to every automated tool, including this one, so the Actor does not offer that report and does not charge for empty rows. Related queries still work. To get topic-level data, turn on resolveTopics or pass topic IDs as keywords.
How is this different from Google's official Trends API? Google's Trends API is in alpha, for approved testers only, and has its own quotas. This Actor works today for anyone, adds the shared scale for any number of keywords, trending now and region detail, and charges only for results.
Does it need my Google account? No. It uses the public Google Trends website endpoints, the same data you see on trends.google.com.
If it worked for you, a rating helps others find it.