Google Trends Scraper
Pricing
from $3.00 / 1,000 queries
Google Trends Scraper
Bulk Google Trends data: interest over time, interest by region, related queries and topics. Multi-keyword comparison, any country, any timeframe. Proxy-backed to beat rate limits.
Pricing
from $3.00 / 1,000 queries
Rating
0.0
(0)
Developer
Vince Gonzalez
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Share
Pull Google Trends data at scale: interest over time, interest by region, related queries, and related topics — for any keyword, any country, any timeframe, with multi-keyword comparison. Proxy-backed so it keeps working where lighter scrapers get rate-limited.
Built for market researchers, SEO teams, trend analysts, and anyone tracking demand signals without clicking through the Trends UI one query at a time.
What it does
- Four data types, pick any combination per run: interest over time, interest by region, related queries, related topics.
- Multi-keyword comparison. Put up to five comma-separated keywords in one entry and get them on the same 0–100 scale, exactly like the Trends comparison view.
- Any geography and timeframe. Worldwide or down to a sub-region; last hour to the full history.
- Built for Google's rate limits. Google Trends returns
429 Too Many Requeststo datacenter IPs almost immediately — the single biggest reason bulk Trends scraping fails. This actor retries with backoff, rotates to a fresh proxy session on each attempt, and is tuned to run at safe concurrency by default. Use residential proxies for the most reliable results.
Input
| Field | Type | Description |
|---|---|---|
searchTerms | array (required) | One entry per query. "coffee" is a single query; "python, javascript, rust" is one comparison group (max 5). |
geo | string | Country/region code (US, GB, DE, US-CA). Empty = worldwide. |
timeRange | string | now 7-d, today 3-m, today 12-m, today 5-y, all, or 2024-01-01 2024-12-31. |
dataTypes | array | Any of interestOverTime, interestByRegion, relatedQueries, relatedTopics. |
category | integer | Google category ID (0 = all). |
tz | integer | Timezone offset in minutes (default 360). |
concurrency | integer | Parallel terms, 1–8. Keep low (2–3) unless using strong residential proxies. |
maxRetries | integer | Retries per term; 429s back off and rotate proxy session. |
proxyConfiguration | object | Apify Proxy recommended; residential is best for Trends. |
Example input
{"searchTerms": ["coffee", "python, javascript, rust"],"geo": "US","timeRange": "today 12-m","dataTypes": ["interestOverTime", "relatedQueries"],"proxyConfiguration": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }}
Output
One dataset row per search term.
{"searchTerm": "coffee","keywords": ["coffee"],"geo": "US","time": "today 12-m","status": "ok","interestOverTime": [{ "date": "Aug 23 – 29, 2026", "timestamp": 1787443200, "coffee": 71, "isPartial": true }],"relatedQueries": {"top": [{ "query": "coffee near me", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/..." }],"rising": [{ "query": "...", "value": 250, "formattedValue": "+250%", "link": "..." }]}}
For a comparison group, each keyword becomes its own column in every interestOverTime / interestByRegion row.
status is ok or error (with an error field — usually a persistent 429 when proxies are exhausted, or an invalid geo/time).
Pricing
Pay-per-event: charged only per search term that returns successfully (status = "ok"). Failed terms cost nothing.
Notes & limits
- Google Trends values are relative (0–100), not absolute search counts — that's how Trends itself works, not a limit of the actor.
- The most recent bucket is often marked
isPartialbecause the period hasn't closed yet. - Residential proxies dramatically improve success rates versus datacenter IPs.
- This actor reads publicly available Google Trends data. Use the output in accordance with Google's Terms of Service and applicable law in your jurisdiction.
Running locally (developers)
npm installnpm test
src/test-local.js calls the live endpoints with no proxy, so it may report 429 from a datacenter IP — that is expected and is exactly what proxies solve in production. The extraction logic lives in src/trends.js with no dependency on the Apify SDK.
www.f-keys.com | © 2026 F-Keys Creative LLC