Google Trends Keyword Interest Scraper
Pricing
from $3.50 / 1,000 keyword reports
Google Trends Keyword Interest Scraper
Google Trends interest over time for any keywords: weekly/hourly series, average and peak interest, interest by region and related queries. Uses only Google endpoints verified live, with cookie warm-up and proxy rotation so runs don't silently fail.
Pricing
from $3.50 / 1,000 keyword reports
Rating
0.0
(0)
Developer
Salman Bareesh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
Pull Google Trends interest over time for any list of keywords, plus interest by region and related queries - as clean, flat data you can sort, filter and export.
One result row per keyword. No Google account, no API key, no browser.
Why another Google Trends Actor
Google quietly retired the endpoints most Trends scrapers were built on. Checked live on 2026-09-18 from a datacenter IP:
| Endpoint | Status |
|---|---|
/trends/api/dailytrends | HTTP 404 (gone) |
/trends/api/realtimetrends | HTTP 404 (gone) |
/trends/api/explore + /trends/api/widgetdata/* | HTTP 200 - but only with a warmed-up NID cookie |
This Actor fetches the Trends homepage first to obtain that cookie, uses only the endpoints verified working, and rotates Apify Proxy sessions when Google throttles one. If Google gives us nothing, the run fails loudly with zero items charged rather than quietly returning an empty dataset.
Who uses it
- SEO and content teams sizing demand for a keyword set before committing to a content calendar
- Brand and market analysts tracking a brand against its competitors over 12 months or 5 years
- Ecommerce sellers checking seasonality before buying stock
- Investors and researchers turning search interest into a time series for a model
Input
{"keywords": ["apify", "web scraping"],"timeRange": "today 3-m","geo": "US","includeRegions": true,"includeRelatedQueries": true,"maxRegions": 5,"maxRelatedQueries": 5}
| Field | What it does |
|---|---|
keywords | The search terms. One result row each. |
timeRange | now 1-H … today 12-m, today 5-y, all. Google picks the bucket size: hourly for short ranges, weekly for 12 months, monthly for 5 years. |
geo | US, GB, IN, a sub-region like US-CA, or empty for worldwide. |
compareKeywords | Off: each keyword gets its own 0-100 scale. On: keywords are scored against each other in groups of 5. See Scales below - this changes what the numbers mean. |
searchType | Web, Images, News, YouTube or Shopping. |
category | Google category id to narrow the topic, 0 for all. |
includeRegions / includeRelatedQueries | Optional extras, no extra charge. |
maxKeywords | Safety cap so an oversized list can't run up a bill. |
Output
One item per keyword:
{"keyword": "apify","geo": "US","timeRange": "today 3-m","category": 0,"searchType": "web","comparedWith": [],"averageInterest": 61.4,"peakInterest": 100,"peakDate": "Aug 14","latestInterest": 58,"dataPoints": 93,"interestOverTime": [{ "date": "Jun 18", "timestamp": 1781740800, "value": 69, "isPartial": false }],"topRegions": [{ "regionCode": "US-CA", "regionName": "California", "value": 100 }],"relatedQueriesTop": [{ "query": "apify pricing", "value": 100, "formattedValue": "100" }],"relatedQueriesRising": [{ "query": "apify mcp", "value": 5000, "formattedValue": "Breakout" }],"scrapedAt": "2026-09-18T07:19:10+00:00"}
averageInterest, peakInterest, peakDate and latestInterest are computed from the series so you can sort the table without opening the nested array. Every item has the same keys; anything Google didn't publish is null.
Scales: the one thing to get right
Google Trends numbers are relative, never absolute search volume. 100 is the peak of whatever is being compared.
compareKeywords: false(default) - each keyword is scraped alone and scaled 0-100 against its own peak. Use this when the keywords are unrelated. You can compare each keyword's shape over time, but not its size against another keyword.compareKeywords: true- up to 5 keywords share one scale, so you can see which is genuinely bigger. The catch is Google's, not ours: a niche term next to a huge one reads as near-zero.
Pricing
Pay per result - one result = one keyword's complete report (time series + regions + related queries).
| Plan | Price per keyword |
|---|---|
| Free | $0.005 |
| Bronze | $0.0045 |
| Silver | $0.004 |
| Gold | $0.0035 |
| Platinum | $0.003 |
| Diamond | $0.003 |
A 25-keyword run on the Free tier costs $0.125. Failed keywords are never charged.
FAQ
Can I get real search volume? No - Google Trends does not publish it, and no scraper can produce it honestly. You get relative interest, 0-100.
Why do two runs of the same keyword differ slightly? Google samples its search logs; small run-to-run variation is normal and comes from Google, not from this Actor.
What is isPartial? The final bucket is often still being collected. Google flags it; we pass the flag through so you can drop it.
A keyword returned no related queries. Google publishes related queries only when a term has enough volume. The lists come back empty, the interest data is unaffected.
Can it scrape trending/daily searches? Not yet - this Actor covers keyword interest. Google's old daily/realtime trends endpoints are 404 and the replacement has a different shape.
Limits
- Relative data only (see Scales). No absolute search volume exists in this source.
- 5 keywords per comparison is Google's own limit; larger lists are split into groups of 5 in compare mode, or run one-by-one otherwise.
- Hourly ranges cover short windows only -
now 1-Hthroughnow 7-d. Long ranges get weekly or monthly buckets from Google. - Rate limits are real, so big runs are slow. Google throttles bursts; the Actor pauses between keyword groups and rotates proxy sessions rather than hammering. Budget roughly 25 keywords in 3 minutes and 100 keywords in 20 minutes on their own scales (
compareKeywords: false); compare mode is ~5x faster because it batches 5 keywords per request. Raise the run's timeout before raisingmaxKeywords, or split the list across runs. - Public Google Trends data only - no login-walled data, no personal data.
Our Actors are ethical and do not extract any private user data. They only extract what the target site has chosen to publish publicly. You should be aware that your results could contain personal data if a search term itself contains one. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
Found an issue or have a feature request? Use the Issues tab. Need programmatic access? See the API tab for this Actor's REST/client endpoints.