Google Trends Scraper (Reliable)
Pricing
from $2.00 / 1,000 results
Google Trends Scraper (Reliable)
Interest over time, interest by region, related queries & topics, and daily trending searches from Google Trends. Session rotation keeps runs from dying on 429s, and you're never charged for terms that fail.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Nick Fisher
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get interest over time, interest by region (country, state, city or US metro/DMA), related queries (top and rising, including Breakout), and today's trending searches with traffic estimates and news links, for any keyword, country and time range.
Built to keep going when Google pushes back: every worker runs its own session
(own proxy IP plus its own Google cookie), sessions rotate automatically on 429/captcha,
and a term that still fails gets one more try at the end of the run.
You are never charged for terms that fail. They're listed in the RUN_SUMMARY record instead.
What you can extract
| Data | Notes |
|---|---|
| Interest over time | 0–100 index, hourly to monthly points depending on range; isPartial flags the latest incomplete bucket |
| Interest by region | Auto, COUNTRY, REGION, CITY (with coordinates) or DMA (US metros) |
| Related queries | Top (0–100) and rising (+250% or Breakout), with Trends links |
| Related topics | Included when Google returns them. Google currently serves empty topic lists to API traffic |
| Trending now | Per country: rank, search, approx. traffic (5000+), start time, image, news articles |
| Search types | Web, Images, News, Google Shopping, YouTube |
| Comparisons | Up to 5 terms on the same 0–100 scale (compareTerms: true; more terms are batched in 5s) |
Example input
{"searchTerms": ["iphone", "pixel", "galaxy"],"compareTerms": true,"geo": "US","timeRange": "today 12-m","regionResolution": "DMA","trendingNowGeos": ["US", "GB"],"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
timeRange accepts 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, or a custom YYYY-MM-DD YYYY-MM-DD.
Example output (one item per term or comparison group)
{"searchTerms": ["iphone", "pixel", "galaxy"],"geo": "US","timeRange": "today 12-m","property": "web","trendsUrl": "https://trends.google.com/trends/explore?date=today+12-m&q=iphone%2Cpixel%2Cgalaxy&geo=US","interestOverTime": [{ "date": "2025-10-19T00:00:00.000Z", "values": { "iphone": 54, "pixel": 6, "galaxy": 19 }, "isPartial": false }],"interestByRegion": [{ "geoCode": "US-LA", "geoName": "Louisiana", "values": { "iphone": 83, "pixel": 3, "galaxy": 14 } }],"regionResolution": "REGION","relatedQueries": {"iphone": { "top": [{ "query": "iphone 17", "value": 100, "formattedValue": "100", "isBreakout": false, "link": "..." }], "rising": [] }},"scrapedAt": "2026-10-18T22:10:00.000Z"}
Trending-now rows have type: "trendingNow" and appear in the Trending now dataset view.
Tips
- Proxies: Google throttles per IP. Small runs work on default Apify Proxy. For hundreds of terms, use
RESIDENTIAL. - Concurrency: 2–3 is the sweet spot. Higher gets you rate-limited faster, not results faster.
- Values are relative (0–100), not absolute search volumes. Comparisons only share a scale inside one group of up to 5 terms.
Development
npm installnpm test # parser tests against saved Google responsesnode src/main.js # local run; input in storage/key_value_stores/default/INPUT.jsonapify push # deploy (needs `npm i -g apify-cli` and `apify login`)