⚡ Fast Google Trends Scraper — 5-Term Compare, No-Charge Fails
Pricing
$5.00 / 1,000 term with data extracteds
⚡ Fast Google Trends Scraper — 5-Term Compare, No-Charge Fails
Fast Google Trends scraper & API: extract interest over time, related queries and rising searches for up to 5 compared keywords in seconds. Built for SEO, market research and AI agents. Pay only for terms that return data — failed, blocked or empty terms are never charged.
Pricing
$5.00 / 1,000 term with data extracteds
Rating
0.0
(0)
Developer
swift scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Share
Extract Google Trends data in seconds, not minutes: interest over time and related queries for up to 5 compared terms (related topics for single-term lookups — see the note below).
Why this scraper
| This actor | Typical alternatives | |
|---|---|---|
| Speed (2 terms) | < 10 s | several minutes |
| Failed term | $0.00 — never charged | compute billed anyway |
| 5-term comparison | native, one normalized session | broken or N separate runs |
| AI agents (MCP) | flat, documented input schema | multi-param bugs |
Pricing: $0.005 per term that returns data. Blocked, empty or timed-out terms cost you nothing — the incentive to stay reliable is on us.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
terms | array of strings | — | 1 to 5 terms, compared in one Google Trends session (same normalization as the Trends UI) |
timeRange | enum | today 12-m | now 1-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y |
geo | string | "" (worldwide) | ISO country code, e.g. FR, US — leave empty for worldwide |
includeRelated | boolean | true | also fetch related queries and related topics per term |
Minimal input:
{ "terms": ["chatgpt", "gemini"] }
Output example
One item per term is pushed to the dataset. This is a genuine output item
from a local run with {"terms":["chatgpt","gemini"],"geo":"FR"}
(interestOverTime trimmed to a few points here for readability — a real
today 12-m run returns ~52-53 weekly points; relatedQueries trimmed to
a handful of entries out of the full list):
{"term": "chatgpt","geo": "FR","timeRange": "today 12-m","interestOverTime": [{ "date": "2025-07-13", "value": 58 },{ "date": "2025-07-20", "value": 63 },{ "date": "2025-07-27", "value": 54 },{ "date": "2025-08-03", "value": 54 },{ "date": "2026-06-21", "value": 70 },{ "date": "2026-06-28", "value": 69 },{ "date": "2026-07-05", "value": 66 },{ "date": "2026-07-12", "value": 57 }],"relatedQueries": {"top": [{ "query": "chatgpt gratuit", "value": 100, "formattedValue": "100" },{ "query": "chatgpt gpt", "value": 48, "formattedValue": "48" },{ "query": "chatgpt openai", "value": 35, "formattedValue": "35" },{ "query": "ia chatgpt", "value": 28, "formattedValue": "28" },{ "query": "chatgpt image", "value": 22, "formattedValue": "22" },{ "query": "chatgpt logo transparent", "value": 1, "formattedValue": "1" }],"rising": [{ "query": "how to use chatgpt effectively", "value": 2850, "formattedValue": "+2,850%" },{ "query": "chatgpt atlas", "value": 700, "formattedValue": "+700%" },{ "query": "chatgpt logo transparent", "value": 190, "formattedValue": "+190%" }]},"relatedTopics": { "top": [], "rising": [] },"normalizedWith": ["gemini"],"error": null}
Note on relatedTopics: Google only returns a "related topics" widget when
a single term is explored. As soon as 2+ terms are compared in the same
session (this actor's normal mode), Google's own API stops returning that
widget at all — so relatedTopics comes back as an empty group
({"top":[],"rising":[]}) in every multi-term comparison. relatedQueries
is unaffected and is always populated per term (when includeRelated is
true and the term has data). This is a real, observed characteristic of
the Google Trends API, not a bug in this actor.
If a term is blocked, returns no data, or times out, its item looks like this instead — and is never charged:
{"term": "some-term","geo": "worldwide","timeRange": "today 12-m","interestOverTime": [],"relatedQueries": null,"relatedTopics": null,"normalizedWith": ["other-term"],"error": "no-data"}
Use with AI agents (MCP)
This actor works out of the box with the Apify MCP server. Ask your agent:
"Compare Google Trends interest for chatgpt and gemini over the past 12
months in France." The flat input schema (terms, timeRange, geo,
includeRelated) maps directly to natural language — no nested flags.
Use with n8n / Make
No visual builder needed — call the actor's run-sync endpoint directly from an HTTP module.
n8n (HTTP Request node):
- Add an HTTP Request node.
- Method:
POST - URL:
https://api.apify.com/v2/acts/YOUR_USERNAME~google-trends-fast-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN - Body content type:
JSON - Body:
{"terms": ["chatgpt", "gemini"],"timeRange": "today 12-m","geo": "FR","includeRelated": true}
- Run the node — the output is the array of term items, ready to feed into the next node (Set, Filter, Google Sheets, etc.).
Make (HTTP module):
- Add an HTTP > Make a request module.
- URL:
https://api.apify.com/v2/acts/YOUR_USERNAME~google-trends-fast-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN - Method:
POST - Body type:
Raw/JSON (application/json) - Request content: same JSON body as above.
- Map the returned array items in a following Iterator module if you need one bundle per term.
Swap YOUR_USERNAME, the actor name, and YOUR_APIFY_TOKEN for your own
values (find your token under Apify Console → Settings → Integrations).
FAQ
Is scraping Google Trends legal? This actor only accesses publicly available, aggregated, anonymized data — the same data visible to anyone on trends.google.com. Review Google's ToS and your local regulations for your specific use case.
How fresh is the data? Fetched live at run time, no cache.
What does a 5-term comparison cost? 5 × $0.005 = $0.025 when all five return data; less if some fail (you only pay for delivered terms).
Why is relatedTopics empty when I compare 2+ terms? See the note in
the Output example section above — it's how Google's
own API behaves in comparison mode, not something this actor can add back.
What happens if a term is invalid or blocked? It's returned with
error set to "blocked", "no-data", or "timeout", empty results, and
is not charged — see the second example above.