Google Trends Scraper - Compare Unlimited Keywords + Trending
Pricing
$2.00 / 1,000 results
Google Trends Scraper - Compare Unlimited Keywords + Trending
Google Trends API and pytrends alternative: any number of keywords on one scale with small keywords kept accurate, daily data up to 5 years, growth % and rising/falling verdict, seasonality, regions, rising queries and Trending Now. $2 per 1,000 results, no start fee.
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
anass kabil
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Share
Google Trends Scraper: compare unlimited keywords on one scale
Get Google Trends data as clean JSON, CSV or Excel. Put any number of keywords on one shared 0–100 scale, not just 5, and keep small keywords accurate next to giant ones. Each keyword also gets a growth % and a rising/falling verdict, interest by region, and the top and rising related searches. You can add Trending Now for any country in the same run.
$2 per 1,000 results. No start fee. One result is one keyword in one country, with its full timeline, regions and related queries included. A 10-keyword run costs $0.02.
Why this one
- More than 5 keywords at once. Google Trends compares at most 5 terms. This actor chains comparisons through an anchor keyword and rescales them, so 50 keywords come back directly comparable. You can rank a whole keyword list by real search interest.
- Small keywords stay accurate. Google rounds to whole numbers relative to the biggest term, so next to
iphonea niche keyword shows 0 or 1 and its comparison is mostly noise. This actor measures every keyword next to neighbours of similar size and chains those measurements, so a keyword 1,000× smaller than the top one still gets an exact decimal value (for example0.0492). In our live tests the chained ratios matched direct head-to-head measurements within about 1% for most pairs, and within about 7% for a keyword 400× smaller than its neighbour. - Daily data for up to 5 years. Google only gives daily points for ranges under about 9 months, and anything longer is weekly. Turn on
dailyDatato also get adailyTimeline: daily windows stitched together, with each window calibrated to the weekly curve of the whole range so they can't drift. That is useful for forecasting, finance and measuring a campaign day by day. It costs the same price. - Seasonality built in. With 2+ years of data, every keyword gets
seasonality: its peak month, its low month, and how strong the swing is. - Answers, not only numbers. Every keyword comes with
growthPercent,trend(rising/stable/falling),peak,peakDate,averageandlatest. Sort by growth and the breakout terms are at the top. - Built for Google's rate limits. Google answers bursts of Trends requests with HTTP 429. When that happens, the actor drops the IP and cookie and retries from a fresh session with backoff, instead of failing the run. It uses no browser, so runs are fast and cheap.
- You only pay for results. There is no actor-start fee, and keywords that fail are not charged.
Replacing pytrends? Change one import
pytrends was archived in April 2025 and mostly returns 429 Too Many Requests. The pytrends-ng package keeps the same calls and runs them on this actor:
# pip install pytrends-ng and set APIFY_TOKENfrom pytrends_ng import TrendReq # was: from pytrends.request import TrendReqpytrends = TrendReq()pytrends.build_payload(["chatgpt", "claude", "gemini"], timeframe="today 3-m", geo="US")pytrends.interest_over_time() # same DataFrame shape as pytrendspytrends.related_queries()
interest_over_time, interest_by_region, related_queries and trending_searches are supported, with no 5-keyword limit.
What you get per keyword
| Field | Meaning |
|---|---|
keyword, geo, timeframe | What was measured |
timeline | [{date, value}] on the shared 0–100 scale across all your keywords |
average, peak, latest | Size on the shared scale: how big this keyword is next to the others |
timelineOwnScale | The same keyword measured alone at full 0–100 resolution, so even a tiny keyword next to a giant shows its real shape |
growthPercent, trend, peakDate | Momentum from the full-resolution curve: last quarter of the period vs the first quarter; ±20% decides rising/falling. growthPercent is null when the keyword started from zero (it is then rising) |
interestByRegion | Countries, states/provinces or US metro areas (DMA), 0–100 |
relatedQueriesTop, relatedQueriesRising | What people also search; rising values such as +350% or Breakout |
dailyTimeline | With dailyData on: daily points on the shared scale for ranges of 9 months to 5 years |
seasonality | {peakMonth, lowMonth, strengthPercent} for 2+ years of data |
trendsUrl | Opens the same view on trends.google.com |
lowPrecision | true only when a keyword is over ~100× smaller than every other keyword in your list, so no similar-sized neighbour could be used to measure it |
The Trending Now rows contain title, approxTraffic (for example 200+), startedAt, picture, and news (title, URL and source).
Example input
{"keywords": ["chatgpt", "claude", "gemini", "perplexity", "copilot", "deepseek", "grok"],"geos": ["US"],"timeframe": "today 3-m","includeRelatedQueries": true,"trendingNowGeos": ["GB"]}
Example output (real run, 2026-10-10)
One keyword from a 12-keyword comparison:
{"type": "keyword","keyword": "gemini","geo": "US","timeframe": "today 3-m","comparedKeywords": 12,"average": 26.4,"peak": 37,"latest": 26,"growthPercent": 35.8,"trend": "rising","peakDate": "2026-10-01T00:00:00Z","timeline": [{"date": "2026-07-10T00:00:00Z","value": 23},{"date": "2026-07-11T00:00:00Z","value": 20},"..."],"timelineOwnScale": [63,54,55,64,62,60,"..."],"lowPrecision": false,"interestByRegion": [{"geoCode": "US-CA","geoName": "California","value": 100},{"geoCode": "US-TX","geoName": "Texas","value": 88},"..."],"relatedQueriesTop": [{"query": "gemini google","value": "100"},{"query": "gemini ai","value": "81"},"..."],"relatedQueriesRising": [{"query": "gemini 4 argon","value": "+3,800%"},{"query": "gemini argon","value": "+1,650%"},"..."],"trendsUrl": "https://trends.google.com/trends/explore?q=gemini&date=today+3-m&geo=US"}
One Trending Now row:
{"type": "trendingNow","geo": "US","title": "utah football","approxTraffic": "1000+","startedAt": "2026-10-09T20:20:00-07:00","picture": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTDIndspCaL9QC20d5cVJFHcohTUskJH3vDbPGkJ_o2gZmjra55sEllAgQaHI0","news": [{"title": "Forecast pushes Utah-Kansas game to earlier kickoff","url": "https://kutv.com/news/local/forecast-pushes-utah-kansas-game-to-earlier-kickoff","source": "KUTV"}]}
Use cases
- SEO and content planning. Paste 100 keyword ideas, sort by
averagefor size andgrowthPercentfor momentum, and write about the rising ones first. - Product and niche research. Test product ideas for Etsy, Amazon or Shopify before you build them. Set Search type to Google Shopping to measure shopping intent.
- Brand and competitor tracking. Compare your brand against every competitor at once. Schedule a weekly run and watch the
trendcolumn. - Seasonality. Use
today 5-yand readpeakDateto see when demand peaks each year, then plan launches and ad budgets around it. - Local demand. Set Interest by region to Metro area (DMA) to find where demand is concentrated before you spend on local ads.
- Newsjacking. Add
trendingNowGeosto get what is spiking right now, with the news stories behind it.
Settings
- Time range:
now 1-H,now 4-H,now 1-d,now 7-d,today 1-m,today 3-m,today 12-m,today 5-y,all, or2024-01-01 2024-12-31. - Countries:
US,GB,DE, a region code such asUS-CA, or empty for worldwide. You get one result per keyword per country. - Category ID: use Google's category IDs (0 is all). Examples: 71 is Food & Drink, 18 is Shopping, 958 is Jobs.
- Proxy: residential is the default and the most reliable for Google.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/githubanassk~google-trends-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["air fryer", "slow cooker", "instant pot"], "geos": ["US"], "timeframe": "today 5-y"}'
It also works from Python and JavaScript with the Apify client, and from Make, Zapier, n8n and Google Sheets through Apify integrations.
FAQ
How can more than 5 keywords share one scale? First, a quick pass orders your keywords by size. Then every keyword is compared in a batch of up to 5 together with neighbours of similar size, and consecutive batches share one keyword. The shared keyword links each batch to the previous one through the ratio of its total interest, which cancels Google's per-point rounding. Finally, everything is normalized so the overall peak is 100. A tool that uses one fixed anchor term instead reduces every small keyword to 0–1.
Why do small keywords have long decimals? They are exact values on a scale where the biggest keyword peaks at 100. 0.0492 means about 1/2000th of the top keyword's peak. timelineOwnScale shows the same keyword alone at full 0–100 resolution, and trend and growthPercent are computed from it.
How accurate is the daily data? Each daily window is scaled to match the weekly curve of the whole range, so the level stays consistent across years. In our tests the 30-day blocks stayed within 1.5% of the true level, and on live 5-year runs the daily average matched the weekly average within about 4%. Single days carry Google's whole-number rounding.
Related topics or city-level data? Google currently returns both as empty through its data endpoints, so this actor returns related queries (top and rising) and country, state and metro-area breakdowns, which Google still serves.
Is it legal? The actor reads publicly available, aggregated Google Trends data and no personal data. Check your own use against Google's terms.
Questions or a missing field? Open an issue on the Issues tab. It is usually fixed within a day.