Google Trends Scraper avatar

Google Trends Scraper

Pricing

from $3.00 / 1,000 queries

Go to Apify Store
Google Trends Scraper

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

Vince Gonzalez

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

8 days ago

Last modified

Categories

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 Requests to 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

FieldTypeDescription
searchTermsarray (required)One entry per query. "coffee" is a single query; "python, javascript, rust" is one comparison group (max 5).
geostringCountry/region code (US, GB, DE, US-CA). Empty = worldwide.
timeRangestringnow 7-d, today 3-m, today 12-m, today 5-y, all, or 2024-01-01 2024-12-31.
dataTypesarrayAny of interestOverTime, interestByRegion, relatedQueries, relatedTopics.
categoryintegerGoogle category ID (0 = all).
tzintegerTimezone offset in minutes (default 360).
concurrencyintegerParallel terms, 1–8. Keep low (2–3) unless using strong residential proxies.
maxRetriesintegerRetries per term; 429s back off and rotate proxy session.
proxyConfigurationobjectApify 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 isPartial because 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 install
npm 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