Google Trends Scraper: Interest, Regions, Related, Trending Now avatar

Google Trends Scraper: Interest, Regions, Related, Trending Now

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Google Trends Scraper: Interest, Regions, Related, Trending Now

Google Trends Scraper: Interest, Regions, Related, Trending Now

Reliable Google Trends API alternative. Compare up to 5 keywords per comparison and many comparisons per run: interest over time, interest by country, region or city, related queries and Trending now by country. Built-in 429 handling.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Ctrio Lab

Ctrio Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

A reliable Google Trends API alternative. Give it keywords, get clean JSON (or flat spreadsheet rows) with:

DataOutput typeWhat it is
Interest over timeinterest_over_time0-100 timeline per term, with isPartial for the unfinished last period
Interest by regioninterest_by_region0-100 per country, region/state, city or US metro (DMA)
Related queriesrelated_queriesTop and rising queries per term ("Breakout" included)
Related topics (beta)related_topicsTop and rising topics per term (topic name, type and Knowledge Graph ID). Often empty, see Limits
Trending nowtrending_nowWhat is spiking in Google Search right now, per country: search volume, % increase, start time, category, related searches

Built for reliability first:

  • Rate limit (HTTP 429) handling: each request retries up to 10 times. Every retry gets a new session (new proxy IP and new Google cookies) and waits with exponential backoff plus jitter.
  • Cookie bootstrap: every session first visits Google Trends like a browser to get the NID cookie before calling the API.
  • Partial results instead of failed runs: if one comparison fails, the others are still saved, and the run summary tells you exactly what failed.
  • Many comparisons per run: compare up to 5 terms on the same scale, and add as many comparison lines as you need.

Input

Each line of Search terms is one Google Trends comparison. Put up to 5 terms on a line, separated by commas, to compare them on the same 0-100 scale (exactly like the Compare button on trends.google.com).

Example 1: compare three keywords in the US over 12 months (the default)

{
"searchTerms": ["coffee, tea, matcha"],
"geo": "US",
"timeframe": "today 12-m"
}

Example 2: everything for several keywords, worldwide, by country

{
"searchTerms": ["chatgpt", "gemini", "claude ai"],
"geo": "",
"timeframe": "today 5-y",
"includeInterestByRegion": true,
"regionResolution": "COUNTRY",
"includeRelatedQueries": true,
"includeRelatedTopics": true
}

Example 3: YouTube search interest in South Korea, past 7 days, one row per hour for Google Sheets

{
"searchTerms": ["아이폰, 갤럭시"],
"geo": "KR",
"timeframe": "now 7-d",
"gprop": "youtube",
"outputFormat": "row-per-point",
"language": "ko",
"timezoneOffset": -540
}

Example 4: custom date range

{ "searchTerms": ["taylor swift"], "geo": "", "timeframe": "custom", "customTimeRange": "2024-01-01 2024-12-31" }
{ "searchTerms": [], "trendingNowCountries": ["US", "GB", "KR", "JP", "IN"], "trendingNowHours": "24", "maxTrendingPerCountry": 50 }

All input fields

FieldDefaultNotes
searchTerms["coffee, tea"]One comparison per line, up to 5 comma-separated terms per line.
geoUSCountry (US, GB, KR, JP, DE ...) or subregion (US-CA, GB-ENG). Empty = worldwide.
timeframetoday 12-mnow 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all (2004 to now), custom.
customTimeRangeWith custom: YYYY-MM-DD YYYY-MM-DD or hourly YYYY-MM-DDTHH YYYY-MM-DDTHH.
category0Google Trends category ID (0 = all).
gpropwebweb, images, news, youtube, froogle (Google Shopping).
includeInterestOverTimetrue
includeInterestByRegionfalse
regionResolutionautoCOUNTRY, REGION, CITY, DMA. Auto: worldwide gives countries, a country gives regions, a region gives cities.
includeLowVolumeRegionsfalse
includeRelatedQueries / includeRelatedTopicsfalseTop and rising lists per term.
trendingNowCountries[]Country codes for Trending now.
trendingNowHours"24""4", "24", "48" or "168".
maxTrendingPerCountry00 = all.
outputFormatitem-per-termSee below.
languageen-USLanguage for dates, topic names and Trending now.
timezoneOffset0Minutes behind UTC (Google's tz). 0 = UTC, 300 = New York, -540 = Seoul.
maxRetries10Retries per request on 429 or network errors.
proxyConfigurationApify Proxy (datacenter)Residential proxy also works but is rarely needed.

Output

Every item repeats the input it came from (comparison, terms, geo, timeframe, category, gprop), so you can mix many comparisons in one dataset and still filter easily.

outputFormat: "item-per-term" (default, compact)

One item per term and data type. Timelines and region lists are arrays.

{
"type": "interest_over_time",
"term": "coffee",
"comparison": "coffee vs tea vs matcha",
"terms": ["coffee", "tea", "matcha"],
"geo": "US",
"timeframe": "today 12-m",
"category": 0,
"gprop": "web",
"resolvedTimeRange": "2025-10-02 2026-10-02",
"resolution": "WEEK",
"average": 76,
"peakValue": 100,
"latestValue": 70,
"timeline": [
{ "date": "2026-09-20", "timestamp": 1789862400, "formattedTime": "Sep 20 – 26, 2026", "value": 76, "isPartial": false },
{ "date": "2026-09-27", "timestamp": 1790467200, "formattedTime": "Sep 27 – Oct 3, 2026", "value": 70, "isPartial": true }
],
"scrapedAt": "2026-10-02T11:58:23.507Z"
}
{
"type": "related_queries",
"term": "coffee",
"comparison": "coffee vs tea vs matcha",
"geo": "US",
"timeframe": "today 12-m",
"top": [ { "rank": 1, "query": "coffee near me", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=coffee+near+me&date=today+12-m&geo=US" } ],
"rising": [ { "rank": 1, "query": "sports scores today", "value": 5350, "formattedValue": "Breakout", "link": "..." } ]
}
{
"type": "interest_by_region",
"term": "coffee",
"geo": "US",
"resolution": "REGION",
"regions": [ { "geoCode": "US-WY", "geoName": "Wyoming", "value": 100, "hasData": true } ]
}
{
"type": "trending_now",
"geo": "KR",
"hours": 24,
"rank": 1,
"title": "한국 대 베네수엘라",
"searchVolume": 200000,
"increasePercentage": 1000,
"startedAt": "2026-10-02T10:00:00.000Z",
"endedAt": null,
"active": true,
"categories": ["Sports"],
"relatedQueries": ["한국 대 베네수엘라", "베네수엘라 축구 국가대표팀", "..."],
"exploreUrl": "https://trends.google.com/trends/explore?q=...&geo=KR&date=now%201-d",
"source": "trending-now"
}

outputFormat: "row-per-point" (flat, for Google Sheets and Excel)

  • Interest over time: one row per date per comparison, with one column per term in values (values.coffee, values.tea in CSV).
  • Interest by region: one row per region per comparison, with one column per term.
  • Related queries and topics: one row per query or topic, with list = top or rising and rank.
{ "type": "interest_over_time", "comparison": "coffee vs tea", "geo": "US", "timeframe": "today 12-m", "date": "2026-09-20", "isPartial": false, "values": { "coffee": 73, "tea": 32 } }

Row-per-point produces many more results (for example 52 weekly rows instead of 2 items for a 2-term, 12-month comparison), so it costs more. Use it when you want the data straight in a spreadsheet.

A run summary (items, errors and HTTP statistics per comparison) is saved to the key-value store as RUN_SUMMARY.

Pricing

Pay per result: you pay only for items saved to the dataset. No monthly fee, and Apify platform usage and proxy are included.

Typical costs with the default item-per-term format:

JobResults
1 comparison of 2 terms, interest over time2
Same + interest by region + related queries6
Trending now, 1 country, all trends (24 h)50 to 500

Limits and notes

  • Values are relative (0-100) within each comparison, exactly as on Google Trends. Terms on different lines are not on the same scale.
  • Google Trends allows at most 5 terms per comparison. All terms in a comparison use the same location and time range.
  • Google rate-limits automated traffic. The actor handles this with session rotation and backoff, so runs with many comparisons take longer (about 1 to 3 seconds per request, plus waiting time when Google slows us down).
  • Related topics (beta): Google currently hides related topics from most automated clients (the API answers with an empty list). The actor retries once with a fresh session; if Google still returns nothing, no item is saved, so you are not charged, and the run summary notes it. Related queries are not affected.
  • Very small search volumes return all zeros (Google's own behaviour).
  • Trending now uses the same data as trends.google.com/trending. If that endpoint is unavailable the actor falls back to the public Trending now RSS feed (fewer fields, about 10 to 25 trends).
  • The data is aggregated and anonymous. No personal data is collected.

Use cases

  • SEO and content planning: find rising queries and seasonal peaks before you write.
  • Market and product research: compare brands, products or features over time and by country.
  • E-commerce: spot seasonality and trending products (use gprop: froogle for Google Shopping).
  • AI agents and MCP clients: one call returns structured trend data with the input echoed in every item.
  • Newsrooms and social media teams: schedule Trending now every hour for the countries you cover.

Support

Missing a field or a Google Trends feature? Open an issue on the Issues tab.