Google Trends Scraper: Compare Unlimited Keywords, Daily Data
Pricing
from $2.00 / 1,000 keywords
Google Trends Scraper: Compare Unlimited Keywords, Daily Data
Google Trends without a browser. Compare more than 5 keywords on one scale, get daily data over multi-year ranges, plus regions, related queries and Trending Now. Charged per keyword that succeeds.
Pricing
from $2.00 / 1,000 keywords
Rating
0.0
(0)
Developer
Muhammed Roshan Palayamkot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get Google Trends data without a browser. It's fast, cheap, and you pay only for keywords that succeed.
A pytrends alternative that doesn't hit 429 Too Many Requests. pytrends was archived in 2025, and Google's official Trends API is still invite-only. This Actor uses rotating proxy sessions and automatic retries. In our 30-keyword, 5-year daily test, it returned 54,810 data points with zero errors.
What makes it different
- Compare more than 5 keywords on one scale. Google Trends only compares 5 terms at a time, and scores from separate searches can't be compared. This Actor sorts your keywords by popularity and chains overlapping batches. That puts 10, 50 or 200 keywords on one 0-100 scale. In our tests, the results match Google's direct comparisons within about 3%.
- Daily data for long ranges. For ranges over about 9 months, Google only returns weekly or monthly points. Turn on Daily data to get one point per day for years, stitched from overlapping daily windows. Over 3 years of bitcoin data, the stitched daily series correlates 0.997 with Google's own weekly curve.
- No browser. The Actor calls Google Trends directly, with automatic retries and fresh proxy sessions. Five keywords with regions and related queries finish in about a minute.
What you get
| Data | Description |
|---|---|
| Interest over time | A 0-100 score per date for every keyword, all on one scale |
| Interest by region | Countries, sub-regions, cities or US metros, scored 0-100 |
| Related queries | Top and rising searches for each keyword, including "Breakout" terms |
| Trending Now | Today's trending searches for a country, with news links |
Filter by country or region, time range (past hour to 2004), category, and search type (web, images, news, Shopping, YouTube).
Example input
{"keywords": ["coffee", "tea", "matcha", "espresso", "latte", "chai", "kombucha"],"geo": "US","timeRange": "today 5-y","dailyData": true,"includeRelatedQueries": true}
Example output
{"type": "interest_over_time", "keyword": "matcha", "geo": "US", "timeRange": "today 5-y", "date": "2026-03-14", "value": 7.42, "isPartial": false}{"type": "related_query", "keyword": "matcha", "list": "rising", "query": "matcha latte recipe", "value": 350, "formattedValue": "+350%"}{"type": "region", "keyword": "matcha", "geoCode": "US-HI", "geoName": "Hawaii", "value": 100}
Every row has a type field, so you can filter the dataset or export one type at a time to CSV or Excel.
Pricing
$0.002 per keyword ($2 per 1,000), however many dates, regions or related queries it returns. A Trending Now list costs the same $0.002. There's no start fee and no extra platform usage charge. Keywords that fail are free.
Use it from Python instead of pytrends
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("rishupishu/google-trends-scraper").call(run_input={"keywords": ["coffee", "tea", "matcha", "espresso", "latte", "chai"],"timeRange": "today 5-y","dailyData": True,})rows = client.dataset(run.default_dataset_id).list_items().items
For a pandas DataFrame, run pd.DataFrame(rows).query("type == 'interest_over_time'").
Notes
- Values are relative (0-100), not absolute search counts. That's how Google Trends works.
- When you compare more than 5 keywords, rounding means very small keywords next to very large ones still lose a little precision. The Actor groups similar keywords together to keep this small.
- Related topics are not included. Google only serves them to real browsers.
- If you set a maximum charge for a run, the Actor stops cleanly when it reaches it.