Google Trends Scraper avatar

Google Trends Scraper

Under maintenance

Pricing

Pay per usage

Go to Apify Store
Google Trends Scraper

Google Trends Scraper

Under maintenance

Reliable Google Trends data — interest over time and related queries — for any keywords, geo and timeframe. Proxy-rotating with backoff so it does not 429 like the rest.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Scrape Harbor

Scrape Harbor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Reliable Google Trends data — interest over time and related queries — for any keywords, geo, and timeframe. Returns clean JSON.

The public store's incumbent Trends actors are unreliable (the official one sits at ~3.1★ with ~1-in-5 runs failing) because Google rate-limits the Trends endpoints hard. This actor is built around that: the real widget-token dance, correct headers, exponential backoff, and per-request proxy rotation, so runs don't 429 out.

Input

FieldTypeDefaultNotes
keywordsstring[]— (required)Terms to pull. One result row per term.
geostringUSCountry code (US, GB, …), sub-region (US-CA), or "" for Worldwide.
timeframestringtoday 12-mTrends window token (now 7-d, today 3-m, today 5-y, all, …).
dataTypesstring[]bothAny of timeseries, related_queries.
proxyConfigurationobjectApify Proxy onStrongly recommended — single-IP runs get throttled fast.

Output (one dataset item per keyword)

{
"keyword": "bitcoin",
"geo": "US",
"timeframe": "today 12-m",
"interest_over_time": [{ "time": "Jul 20 - 26, 2025", "value": 20 }, ...],
"related_queries": [{ "query": "bitcoin price", "value": 100, "link": "..." }, ...]
}

A keyword that fails after retries yields { "keyword": ..., "error": ... } instead of aborting the whole run.

Local development

python3 tests/test_parsers.py # network-independent parser tests
python3 -c 'import sys; sys.path.insert(0,"src"); from trends_core import TrendsClient; \
print(TrendsClient().fetch("bitcoin", timeframe="today 3-m", want=("timeseries",)))'

Note: a single residential IP gets throttled on the relatedsearches endpoint after a handful of calls. That's the exact problem the actor solves in production via Apify Proxy rotation; expect local bare-IP testing to 429.

Publishing

npm i -g apify-cli && apify login # free account
apify push # builds on Apify, lands in your store profile