Google Trends Scraper avatar

Google Trends Scraper

Pricing

from $0.25 / 1,000 results

Go to Apify Store
Google Trends Scraper

Google Trends Scraper

Extract Google Trends data — interest over time, interest by region, related queries, and Trending Now — via Google's internal JSON API. No login, no API key, no browser.

Pricing

from $0.25 / 1,000 results

Rating

0.0

(0)

Developer

Aurenic

Aurenic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract Google Trends data — interest over time, interest by region, related queries, and Trending Now — via Google's internal JSON API. No login, no API key, no browser, no personal data.

Scrape every public Google Trends dataset in three modes:

  • Keyword analysis (Explore) — compare up to 5 keywords in one query, across any country and any time window. Returns interest over time (0–100 timeline), interest by region (sub-national breakdown), and related queries (top + rising).
  • Trending Now — the current trending searches for any country, with approximate traffic, publish time, and related news coverage. Uses Google's public RSS feed.
  • Both — run keyword analysis and Trending Now in a single run.

Google Trends has no official public API. The announced one is a waitlisted alpha. The actor speaks to the same internal JSON endpoints the Trends website itself uses — /trends/api/explore → /trends/api/widgetdata/* — with the exact session handshake Google expects.

Rising queries are the most useful output in the whole API — they show what people are starting to search around a niche before it peaks.

Output fields

FieldDescription
keywordsThe keyword set compared in this query
geoCountry/region code
timeRangeTime window
categoryGoogle Trends category ID
interestOverTimeArray of { timestamp, formattedTime, values, isPartial } — one entry per timeline point, values maps each keyword to its 0–100 score
interestByRegionArray of { geoCode, geoName, value, hasData } — sub-national breakdown
relatedQueriesObject with top[] and rising[] arrays — each entry has query, value, formattedValue, link
userConfigGoogle's session classification (e.g. USER_TYPE_SCRAPER)
FieldDescription
geoCountry code
rankPosition in the trending list
keywordTrending search term
approxTrafficApproximate search volume (e.g. 20000+)
pubDateWhen the trend was published
pictureUrl / pictureSourceAssociated image
newsItemsArray of { title, url, source, snippet } — related news coverage

Who is it for?

  • SEO and content teams finding keyword trends before they peak, and planning content around rising queries
  • E-commerce and DTC brands reading seasonality over 5 years to plan inventory and ad budget
  • Market researchers comparing the same product across countries to decide launch order
  • Journalists and content creators pulling today's trending searches with approximate volume
  • Brand teams tracking share of search against competitors on a normalised 0–100 scale
  • Data scientists and quant analysts feeding search-interest signals into forecasting models

Pricing

$0.40 per 1,000 results. No subscription.

ResultsCost
100$0.04
1,000$0.40
10,000$4.00

How to use it

  1. Pick a Mode.
  2. Enter Keywords (Explore), pick Trending Now Countries, or both.
  3. Choose Geography and Time Range.
  4. Toggle which datasets to include: interest over time, interest by region, related queries.
  5. Click Start.

Output example

{
"recordType": "trends-query",
"keywords": ["bitcoin", "ethereum"],
"geo": "US",
"timeRange": "today 12-m",
"category": 0,
"interestOverTime": [
{ "timestamp": "1705276800", "formattedTime": "Jan 14 – 20, 2024", "values": { "bitcoin": 47, "ethereum": 38 }, "isPartial": false },
{ "timestamp": "1705881600", "formattedTime": "Jan 21 – 27, 2024", "values": { "bitcoin": 51, "ethereum": 41 }, "isPartial": false }
],
"interestByRegion": [
{ "geoCode": "US-CA", "geoName": "California", "value": 100, "hasData": true },
{ "geoCode": "US-NY", "geoName": "New York", "value": 87, "hasData": true }
],
"relatedQueries": {
"top": [
{ "query": "bitcoin price", "value": 100, "formattedValue": "100", "link": "/trends/explore?q=bitcoin+price" },
{ "query": "ethereum price", "value": 62, "formattedValue": "62", "link": "" }
],
"rising": [
{ "query": "bitcoin halving 2028", "value": 3200, "formattedValue": "+3,200%", "link": "" },
{ "query": "ethereum etf approval", "value": 1500, "formattedValue": "Breakout", "link": "" }
]
},
"userConfig": { "userType": "USER_TYPE_SCRAPER" },
"scrapedAt": "2026-09-21T12:00:00.000Z"
}

Trending Now output:

{
"recordType": "trending-search",
"geo": "US",
"rank": 1,
"keyword": "hurricane watch",
"approxTraffic": "200000+",
"pubDate": "Mon, 21 Sep 2026 09:00:00 GMT",
"newsItems": [
{ "title": "Hurricane watch issued for Gulf Coast", "url": "https://...", "source": "Reuters", "snippet": "..." }
],
"scrapedAt": "2026-09-21T12:00:00.000Z"
}

Technical details

  • No browser, no CAPTCHA, no API key. Uses Google's internal Trends JSON endpoints directly.
  • Cookie-session handshake. The famous Google Trends 429 is not a rate limit — it's a missing NID cookie. The actor warms the session with a request to /trends/explore, captures the cookie even from a 429 response, and retries with it. This is the fix most broken scrapers miss.
  • Anti-XSSI prefix stripping. Google prefix responses with )]}' to break naive JSON.parse calls. The actor strips it before parsing.
  • Self-throttled at a configurable requestDelayMs (default 1500 ms) — Google's limiter cuts sessions at ~800 ms per request.
  • Datacenter IPs work. With a valid cookie session, Google Trends accepts datacenter requests. Proxy support is available but disabled by default.
  • Keyword batching. Google allows up to 5 keywords per Explore query. Larger lists are automatically split.

Known limits

  • Related Topics return empty. Google marks keyless sessions as USER_TYPE_SCRAPER, and the RELATED_TOPICS widget returns [] for such sessions. The token is signed over the request — editing userType yields 401. Related Queries work fine; only Related Topics is affected.
  • Session-scoped data. Google Trends returns normalised 0–100 values, not absolute search volumes. Values are comparable within a query, not across queries. Run keyword sets together to compare them.
  • Google changes endpoints. The internal API is undocumented and can shift. The actor logs the exact failing URL if a call fails, making recovery fast.
  • Trending Now geo coverage varies. Some countries return a rich feed, others return few or no items.
  • No Google account required, and no personal data is collected — Google Trends publishes only aggregated search interest.

FAQ

Do I need an API key? No. Google Trends has no public API. The actor uses the same endpoints the Trends website uses, keyless.

Do I need a proxy? No. With a valid cookie session, Google Trends accepts datacenter IPs. Enable useProxy only if you see repeated 429s.

Why is interestByRegion empty for some keywords? Not every keyword has sub-national data. Low-volume terms are often aggregated to the country level only.

Why is relatedQueries.topics missing? Google marks keyless sessions USER_TYPE_SCRAPER and returns empty for Related Topics. Related Queries (top + rising) work fine. This is a Google-side restriction, not a bug.

How do I compare two keyword sets? Google normalises each query independently. To compare keywords, put them all in one keywords array — the actor batches them 5 at a time, and each query's 0–100 scale is internally consistent.

How do I export data? After a run, go to Storage → Export as JSON, CSV, Excel.

Support

Open an issue on the Actor's page for bugs or feature requests.