Google Trends Scraper avatar

Google Trends Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Google Trends Scraper

Google Trends Scraper

FAST & CHEAP — $1 / 1,000 results. Scrape Google Trends by keyword or URL: trends over time, subregions, related queries/topics, locations, time ranges and categories. Export data, run via API, schedule and monitor runs.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Alexandre Manguis

Alexandre Manguis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract Google Trends data for any search term — interest over time, interest by region, and related queries. Supports single terms, comparison groups, Google Trends URLs, and public Google Sheets.

No API key required.


What you get

For each term or URL, the actor returns one item in the dataset:

FieldDescription
interestOverTime_timelineDataWeekly or daily interest scores (0–100) over the selected period
interestOverTime_averagesAverage interest score per compared term
interestByInterest by country (when geo = Worldwide)
interestBySubregionInterest by region within a country
interestByCityInterest by city
interestByMetroInterest by metro area
relatedQueries_topTop related search queries
relatedQueries_risingBreakout related search queries
relatedTopics_topTop related topics
relatedTopics_risingRising related topics
widgetErrorsList of widgets that returned no data (empty = everything worked)

Input

Single term

{
"searchTerms": ["web scraping"]
}

Compare terms

Separate terms with a comma inside the same item and enable isMultiple. Google Trends compares up to 5 terms.

{
"searchTerms": ["ChatGPT, Claude, Gemini"],
"isMultiple": true
}

Specific country + time range

{
"searchTerms": ["intelligence artificielle"],
"geo": "FR",
"timeRange": "today 12-m",
"viewedFrom": "fr"
}

Paste any Google Trends explore URL directly. All parameters (term, geo, date, category) are read from the URL.

{
"startUrls": [
{ "url": "https://trends.google.com/trends/explore?date=today%2012-m&geo=US&q=web+scraping" }
]
}

From a public Google Sheet

Provide the spreadsheet ID. The actor reads the first column, skipping the first row (treated as a header).

{
"spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms"
}

All input parameters

ParameterTypeDefaultDescription
searchTermsstring[]Search terms to scrape
isMultiplebooleanfalseTreat commas as comparison groups
startUrlsobject[]Google Trends explore URLs
spreadsheetIdstringPublic Google Sheet ID (one term per row)
timeRangestring""See options below
customTimeRangestringCustom date range, e.g. 2024-01-01 2024-12-31
geostring""Country code (US, FR, DE…). Empty = Worldwide
viewedFromstringProxy country for geo-accurate results (us, fr…)
categorystring""Google Trends category ID. Empty = All categories
maxItemsnumber0Max tasks to process. 0 = unlimited
maxConcurrencynumber10Number of parallel requests
maxRequestRetriesnumber7Retries per failed request
pageLoadTimeoutSecsnumber180Timeout in seconds per task

Time range options

ValuePeriod
""Past 12 months (default)
now 1-HPast hour
now 4-HPast 4 hours
now 1-dPast day
now 7-dPast 7 days
today 1-mPast 30 days
today 3-mPast 90 days
today 5-yPast 5 years
all2004–present

Output example

{
"searchTerm": "web scraping",
"searchTerms": ["web scraping"],
"geo": "",
"timeRange": "today 12-m",
"exploreUrl": "https://trends.google.com/trends/explore?date=today+12-m&q=web+scraping&hl=en-US",
"interestOverTime_timelineData": [
{
"time": "1747526400",
"formattedTime": "May 18 – 24, 2025",
"value": [33],
"formattedValue": ["33"],
"hasData": [true]
}
],
"interestOverTime_averages": [72],
"interestBy": [
{
"geoCode": "US",
"geoName": "United States",
"value": [100],
"formattedValue": ["100"],
"hasData": [true]
},
{
"geoCode": "IN",
"geoName": "India",
"value": [87],
"formattedValue": ["87"],
"hasData": [true]
}
],
"interestBySubregion": [],
"interestByCity": [],
"interestByMetro": [],
"relatedQueries_top": [
{
"query": "web data scraping",
"value": 100,
"formattedValue": "100",
"hasData": true,
"link": "/trends/explore?q=web+data+scraping&date=today+12-m"
},
{
"query": "python web scraping",
"value": 78,
"formattedValue": "78",
"hasData": true,
"link": "/trends/explore?q=python+web+scraping&date=today+12-m"
}
],
"relatedQueries_rising": [
{
"query": "ai web scraping",
"value": 5000,
"formattedValue": "Breakout",
"hasData": true,
"link": "/trends/explore?q=ai+web+scraping&date=today+12-m"
}
],
"relatedTopics_top": [],
"relatedTopics_rising": [],
"widgetErrors": [],
"scrapedAt": "2026-05-20T07:44:57.000Z"
}

interestBySubregion, interestByCity, and interestByMetro are only populated when a specific geo country is set. interestBy (countries) is returned for Worldwide searches. Some fields may be empty for low-volume terms or short time ranges.


Tips

  • For country-specific results, set both geo (e.g. "US") and viewedFrom (e.g. "us"). viewedFrom routes requests through a residential proxy in that country, which gives the most accurate local data.
  • For comparisons, enable isMultiple and separate terms with a comma: "ChatGPT, Claude". Each result item will include a searchTerm field identifying which term the data belongs to.
  • For large lists, use spreadsheetId with a public Google Sheet and set maxConcurrency between 3 and 5 to stay within rate limits.
  • Empty widgetErrors means all data was retrieved successfully.

Keywords

google trends, search trends, keyword trends, trending topics, interest over time, related queries, related topics, geographic interest, search volume, trend analysis, keyword research, SEO trends, topic popularity, google search data, search interest, trend scraper, google data, market research, trend monitoring, google trends api, trending keywords, search popularity, breakout queries, rising queries, trend data export, google trends csv, competitor comparison, brand tracking, search demand