Google Trends Scraper – Compare 100+ Keywords
Pricing
from $0.01 / 1,000 results
Google Trends Scraper – Compare 100+ Keywords
Google Trends data for any number of keywords: interest over time, interest by region, related and rising queries, plus Trending Now by country. Compare 100+ keywords on one scale, get spike and breakout alerts on a schedule. Pay only per result.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
JP
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Get Google Trends data for any number of keywords in one run: interest over time, interest by region, related and rising queries, and Trending Now searches by country. Put 100+ keywords on one comparable scale (Google stops at 5), and schedule runs that flag spikes and new breakout queries.
No browser, no login, no Google account. Residential proxies are included in the price, and you pay only for rows that contain data.
What you can do with it
- Keyword research and content planning. Check hundreds of topic ideas at once and sort by average interest, recent change or year-over-year growth. Then mine the rising queries for the next article.
- Market and product research. Compare brands, product names or features on one 0–100 scale, and see where each is most popular.
- Brand and competitor monitoring. Schedule a daily run with a monitor name. Each row tells you whether the keyword is spiking and which rising queries appeared since yesterday.
- News and social teams. Pull what's trending right now in the US, UK, India, Germany and more, with search volume, growth, start time, category and news links.
- Data science and AI agents. Clean JSON with summary numbers (average, peak, latest, change %, trend, spike), so a dashboard or an LLM agent can answer "is this growing?" without reading 260 data points. Agents can call it through the Apify API or MCP server.
Why this one
| This Actor | Typical Google Trends scrapers | |
|---|---|---|
| Keywords per run | Unlimited, in parallel | Often 1 per run, or a slow browser |
| Compare more than 5 keywords on one scale | ✅ up to 300 (fitted across overlapping requests, see below) | ❌ |
| Summary numbers per keyword (trend, change %, spike, YoY) | ✅ | Raw points only |
| Monitoring: only new trends, new breakout queries | ✅ | ❌ |
| Rate limits | Fresh residential sessions, retries only the failed part | Run fails or returns empty |
| Price | $3 per 1,000 keyword reports, all sections included. Trending: $0.50 per 1,000 | Per data point, start fees, or platform usage on top |
Input examples
Several keywords, each on its own scale (the default):
{"searchTerms": ["standing desk", "walking pad", "ergonomic chair"],"geo": "US","timeRange": "today 12-m"}
Compare 30 brands on one scale:
{"searchTerms": ["notion", "obsidian", "evernote", "onenote", "..."],"compareKeywords": true,"timeRange": "today 5-y"}
Paste links from trends.google.com. The link's terms, location, dates, category and search type are used:
{ "startUrls": [{ "url": "https://trends.google.com/trends/explore?date=now%207-d&geo=GB&q=tea,coffee" }] }
What's trending right now in four countries, sports only:
{ "mode": "trending", "trendingGeos": ["US", "GB", "IN", "DE"], "trendingHours": "24", "trendingCategories": ["17"] }
Daily alerts. Add a monitor name and create a Schedule in Apify Console:
{ "searchTerms": ["my brand", "competitor one", "competitor two"], "monitorId": "brand-watch" }
Output
One row per keyword. Example values:
{"type": "keyword","keyword": "standing desk","geo": "US","geoName": "United States","timeRange": "today 12-m","averageInterest": 77.2,"peakInterest": 100,"peakDate": "2026-01-04","latestInterest": 91,"latestDate": "2026-09-27","changePercent": 14.5,"trend": "rising","trendChangePercent": 21.3,"isSpike": false,"yearOverYearChangePercent": null,"topRegion": "Washington","topRisingQuery": "standing desk with treadmill","timelineResolution": "week","interestOverTime": [{ "date": "2025-10-05", "value": 68, "isPartial": false },{ "date": "2025-10-12", "value": 71, "isPartial": false }],"interestByRegion": [{ "geoCode": "US-WA", "geoName": "Washington", "value": 100 },{ "geoCode": "US-CA", "geoName": "California", "value": 93 }],"relatedQueries": {"top": [{ "query": "standing desk converter", "value": 100, "formattedValue": "100", "isBreakout": false }],"rising": [{ "query": "standing desk with treadmill", "value": 5000, "formattedValue": "Breakout", "isBreakout": true }]},"sectionsMissing": [],"trendsUrl": "https://trends.google.com/trends/explore?date=today%2012-m&geo=US&q=standing%20desk&hl=en-US","scrapedAt": "2026-10-05T09:00:00.000Z"}
Compared keywords also carry comparedWith and comparisonMethod. Their values share one scale: 100 is the busiest point of any keyword in the group.
With a monitor name, rows also carry newRisingQueries, alert (a spike or a new rising query) and firstMonitorRun.
Trending Now rows look like this:
{"type": "trending","geo": "US","rank": 1,"keyword": "fed rate decision","searchVolume": 500000,"searchVolumeLabel": "500K+","growthPercent": 1000,"startedAt": "2026-10-05T06:10:00.000Z","endedAt": null,"isActive": true,"hoursTrending": 3.2,"relatedKeywords": ["fed", "interest rates"],"categories": ["Business and Finance", "Politics"],"news": [{ "title": "…", "url": "https://…", "source": "Reuters" }],"isNew": true,"trendsUrl": "https://trends.google.com/trends/explore?date=now%207-d&geo=US&q=fed%20rate%20decision"}
Each run also stores:
- Report: an HTML page with a chart for every keyword, comparison charts and Trending Now tables.
- Timeline CSV: every keyword's points in long format, ready for Excel, Sheets or Looker Studio.
- Comparison: the shared-scale series as JSON.
- Run summary: counts, charges, and any failures with the reason.
Pricing
Pay per event. Platform usage and proxies are included.
| Event | Price |
|---|---|
| Keyword report: one keyword with timeline, regions and related searches | $0.003 ($3 per 1,000) |
| Trending search: one trending search with volume, growth and news | $0.0005 ($0.50 per 1,000) |
You are not charged for:
- keywords Google has no data for (the row is still delivered, with
hasData: false) - keyword rows whose interest over time could not be fetched (delivered with the reason in
sectionsMissingandnote) - keywords that failed after all retries (listed in the run summary)
- Trending Now rows that a monitor already reported
- rows delivered before a platform restart of the same run (they are never delivered or charged twice)
Set a spending limit when you start a run, and the Actor stops cleanly at that limit.
How comparing 100+ keywords works
Google compares at most 5 terms per request and scales each request so its busiest point is 100. Every request still says how big its terms are relative to each other, so the Actor combines many overlapping requests into one scale:
- Every keyword is fetched next to an anchor keyword, 4 per request. Keywords that round to 0, or that are hidden next to a much bigger one, are fetched again next to keywords closer to their size.
- All the ratios from all requests are combined in one weighted fit: precise measurements count more, rough ones less. Each keyword gets a level and an uncertainty, so no single rough request can throw the result off.
- Where uncertainty remains, overlapping groups of similar popularity (at most about 1:10 apart) are fetched, and the fit is repeated.
- Everything is normalized so the single busiest point is 100.
In simulations of Google's integer rounding, 50 keywords spanning 1:1,000 in popularity came out within about 1% of their true averages. Products launched partway through the period, and one keyword 50× more popular than all the others, are handled too.
Some keywords get a note instead:
- Values only estimated roughly (±10% or more): the note says the values are approximate.
- Too small to show next to the top keyword (below about 0.5%, as on Google's own chart): reported as 0 and not charged.
Comparing adds about one to one and a half Google requests per keyword. The price per keyword is the same.
FAQ
What do the numbers mean?
Google Trends values are relative, not search counts. 100 is the peak for the chosen keyword (or group), place and time range; 50 is half as popular. Trending Now volumes (searchVolume) are Google's own estimates of searches.
Why does a keyword show hasData: false?
Google has too little search volume for it in that location and period. Try a wider time range or Worldwide. You are not charged for these rows.
What if one keyword is hugely more popular than the rest?
On one shared scale, a keyword below about 0.5% of the top one shows as 0. Google's own chart shows it the same way. Those rows are free and say so in note. Compare the smaller keywords in a separate run without the giant to see them in detail.
Why are related topics empty? Google often withholds related topics from automated sessions, and never offers them in comparisons. Related queries are not affected. The option is off by default, and leaving it on costs nothing extra.
Will Google block it? Google rate-limits Trends hard per IP, and that is the main reason Trends scrapers fail. This Actor uses fresh residential sessions, warms up cookies, paces requests, and retries only the failed section on a new session. A keyword that still fails is listed in the run summary and costs nothing.
Which countries and languages?
Every location Google Trends supports: country codes (US, GB, DE, IN, …) and regions (US-CA, GB-ENG). Trending Now works per country. language changes the names of regions and categories; search terms are never translated.
Can I use it from code or an AI agent? Yes, through the Apify API, the JavaScript and Python clients, webhooks, and Apify's MCP server. Input and output are plain JSON, and every row carries its own summary numbers.
Is scraping Google Trends allowed? The Actor reads publicly available, aggregated, anonymous data that Google shows on trends.google.com without a login. It collects no personal data. Check that your use complies with Google's terms and your local laws.
Support
Open an issue on the Actor's Issues tab and include the run link. Feature requests are welcome.