⚡ Fast Google Trends Scraper — 5-Term Compare, No-Charge Fails avatar

⚡ Fast Google Trends Scraper — 5-Term Compare, No-Charge Fails

Pricing

$5.00 / 1,000 term with data extracteds

Go to Apify Store
⚡ Fast Google Trends Scraper — 5-Term Compare, No-Charge Fails

⚡ 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

swift scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

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 actorTypical alternatives
Speed (2 terms)< 10 sseveral minutes
Failed term$0.00 — never chargedcompute billed anyway
5-term comparisonnative, one normalized sessionbroken or N separate runs
AI agents (MCP)flat, documented input schemamulti-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

FieldTypeDefaultNotes
termsarray of strings1 to 5 terms, compared in one Google Trends session (same normalization as the Trends UI)
timeRangeenumtoday 12-mnow 1-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y
geostring"" (worldwide)ISO country code, e.g. FR, US — leave empty for worldwide
includeRelatedbooleantruealso 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):

  1. Add an HTTP Request node.
  2. Method: POST
  3. URL: https://api.apify.com/v2/acts/YOUR_USERNAME~google-trends-fast-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN
  4. Body content type: JSON
  5. Body:
    {
    "terms": ["chatgpt", "gemini"],
    "timeRange": "today 12-m",
    "geo": "FR",
    "includeRelated": true
    }
  6. 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):

  1. Add an HTTP > Make a request module.
  2. URL: https://api.apify.com/v2/acts/YOUR_USERNAME~google-trends-fast-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN
  3. Method: POST
  4. Body type: Raw / JSON (application/json)
  5. Request content: same JSON body as above.
  6. 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.