Google Trends Scraper | Compare 1,000 Terms, Daily Data avatar

Google Trends Scraper | Compare 1,000 Terms, Daily Data

Pricing

from $1.00 / 1,000 term reports

Go to Apify Store
Google Trends Scraper | Compare 1,000 Terms, Daily Data

Google Trends Scraper | Compare 1,000 Terms, Daily Data

Google Trends data without a browser: interest over time for up to 1,000 terms on one comparable scale, daily points over years, interest by region, top and rising related queries, and Trending now by country with search volumes.

Pricing

from $1.00 / 1,000 term reports

Rating

0.0

(0)

Developer

Alex Morain

Alex Morain

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

This Actor turns Google Trends into structured data. Give it search terms and it returns, for each one, interest over time, peak and average, interest by region (countries, regions, US metro areas or cities) and related queries, top and rising. Add a country and it also returns everything Google lists in Trending now, with search volumes, growth and related searches.

It reads the same JSON endpoints the Google Trends website calls, over plain HTTP. No browser, no page loads, no login. 200 search terms take about two minutes. If you are looking for a Google Trends API, this is the closest thing to one: terms in, JSON out.

Two things it does that most Google Trends scrapers do not:

  1. Values you can compare between terms. Google scales every request on its own 0 to 100, 100 being the peak of that request. Read terms one by one and every term peaks at 100, so their numbers mean nothing next to each other. This Actor compares up to 5 terms per request on one scale, like the Google Trends compare view, and beyond 5 it rescales every group through a shared anchor term. 1,000 terms on one scale in one run.
  2. Daily points over years. Past 269 days, Google only gives weekly or monthly points. Turn on daily points and the range is read in 269-day windows, each calibrated on the series of the whole range, so you get one comparable value per day for up to 10 years.

Because the numbers are right and the runs finish.

Here is what reading terms one at a time does to the data. Worldwide, past 5 years, weekly points, measured on October 17, 2026:

TermRead alone: peakRead alone: averageSame scale: peakSame scale: average
python10067.110067.2
java10071.56143.2
javascript10058.82917.5
rust10059.12715.8
golang10071.053.2

Read alone, golang looks more searched than python (71 against 67). On the same scale it is searched 22 times less. Any dashboard, model or report built on separate requests carries that error silently. With Compare terms on one scale on (the default), you get the right column.

The runs finish because there is no browser to block. The Google Trends web page answers "429 Too Many Requests" to cloud IPs at the first visit; a browser-based scraper then retries, waits for page loads that never come, and runs into its timeout. The JSON endpoints this Actor calls answered 1,500 requests out of 1,500 from Apify datacenter IPs in our tests. When Google does refuse a request, it is retried on a new proxy session, and if refusals keep coming, new sessions switch to residential proxy on their own.

Typical uses:

  • SEO and content planning: seasonality of a topic, rising queries to write about, where a keyword is searched the most.
  • Market and brand research: brands, products or competitors on one comparable scale, over years, by country or by US state.
  • Data science and forecasting: daily series over long ranges, ready for a model, with the partial current period flagged instead of looking like a drop.
  • Newsrooms and social media teams: what is trending right now in each country, with search volumes, schedulable every hour.

On Apify you can schedule runs, call the Actor from the API, and send results to Google Sheets, Make, Zapier, n8n or a webhook.

One row per search term:

FieldWhat it holds
searchTermThe term, as you gave it
timelineInterest over time: date, value, isPartial for the period still in progress
averageInterest, peakInterest, peakDate, latestInterestSummary over complete periods
resolutionMINUTE, HOUR, DAY, WEEK or MONTH
scale, comparedWith, anchorTermWhich terms these values compare with
regionsInterest by region, geoCode, geoName, value
relatedQueriesTopUp to 25 related queries, 100 being the most searched
relatedQueriesRisingUp to 25 rising queries with their growth (+250%, Breakout)
trendsUrlThe same view on Google Trends

One row per trend in Trending now:

FieldWhat it holds
term, geo, rankThe trending search, its country and its rank by volume
searchVolume, searchVolumeLabelApproximate searches since it started (200K+)
growthPercentGrowth of searches, in %
startedAt, endedAt, isActiveWhen it started, and whether it is still trending
categoriesSports, Entertainment, Politics, Technology...
relatedTermsRelated searches Google groups under the trend
  1. Open the Actor's Input tab.
  2. Type your keywords in Search terms, one per line.
  3. Pick a Location (empty for worldwide, US, FR, US-CA...) and a Time range.
  4. Optional: turn on Daily points on long ranges, pick a Category or a Search type (web, YouTube, news, images, Google Shopping).
  5. For what is trending now, add country codes in Trending now > Countries.
  6. Click Start, then open the Output tab or download the dataset.

You pay per result, nothing for compute or proxies:

EventFree planBronzeSilverGold and above
Search term report (per 1,000)$2.50$2.00$1.50$1.00
Trend in Trending now (per 1,000)$1.00$0.80$0.60$0.40
Run start$0.002$0.002$0.002$0.002

A comparison of 5 brands over 5 years costs $0.0145 on the Free plan. The 650 trends of a day in the US cost $0.65. Daily points, regions and related queries are included in the term price. A term Google has no data for is returned free, with hasData: false.

Set a maximum charge per run in the run options and the Actor stops there.

Input

See the Input tab for every option. The ones that need a word:

  • Compare terms on one scale (on by default). Off, each term gets its own 0 to 100 scale: useful only to look at each term's shape, never to compare terms.
  • Anchor term, used with more than 5 terms. Every request group includes it and is rescaled through it, then the whole set is brought back to 100 at the highest point. Pick a term with steady, mid-to-high volume. Google rounds values to whole numbers inside each request, so a term much smaller than the biggest term of its group comes out as 0 or 1: keep terms of a similar size together, or compare small terms in a separate run.
  • Location takes Google Trends codes: a country (DE), a region (US-TX, GB-SCT) or a US metro area (US-NY-501).
  • Category takes the cat= number of a Google Trends link, 0 for all categories.

Example:

{
"searchTerms": ["nike", "adidas", "puma"],
"geo": "US",
"timeRange": "past-5-years",
"dailyResolution": true,
"trendingCountries": ["US"],
"trendingTimeWindow": "24"
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The Output tab has two views: Search terms and Trending now. A search term row, shortened:

{
"searchTerm": "Gemini",
"comparedWith": ["ChatGPT", "Perplexity"],
"scale": "shared",
"geo": "worldwide",
"timeRange": "past-12-months",
"resolution": "WEEK",
"averageInterest": 43.92,
"peakInterest": 55,
"peakDate": "2026-06-07",
"latestInterest": 54,
"timeline": [
{"date": "2026-10-11", "value": 54, "isPartial": false},
{"date": "2026-10-18", "value": 40, "isPartial": true}
],
"regions": [{"geoCode": "MG", "geoName": "Madagascar", "value": 100}],
"relatedQueriesTop": [{"query": "gemini ai", "value": 100}],
"relatedQueriesRising": [{"query": "gemini omni", "growthPercent": 1250, "formattedGrowth": "+1,250%"}],
"trendsUrl": "https://trends.google.com/trends/explore?date=today+12-m&q=ChatGPT%2CGemini%2CPerplexity&hl=en-US"
}

A trend row:

{
"rank": 1,
"term": "wnba finals",
"geo": "US",
"searchVolume": 2000000,
"searchVolumeLabel": "2M+",
"growthPercent": 1000,
"startedAt": "2026-10-17T04:20:00Z",
"isActive": true,
"categories": ["Sports"],
"relatedTerms": ["dream vs valkyries", "wnba finals schedule"]
}

Tips

  • The last point of a rolling range (past 12 months, past 7 days) is the period in progress. It is flagged isPartial: true and left out of averages and peaks. Drop it before charting.
  • Google returns slightly different samples for the same request a few hours apart: expect a point or two of noise on small terms. That is Google's sampling, not the scraper.
  • For hourly monitoring of a few terms, schedule a run with Past 7 days or Past day.
  • Keep Parallel requests at 5. Higher goes faster until Google starts refusing.

FAQ

No. Google returns an empty related topics list to every non-browser client, and the request is signed, so it cannot be worked around without a browser. Related queries, top and rising, are complete.

Can I compare more than 5 terms?

Yes, up to 1,000 per run, through the anchor term (see Input). The values of all terms are on one scale, 100 being the highest point of the whole set.

Check three things: the same location, the same time range, and the same set of compared terms. A value only means something relative to the terms it was compared with.

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. Google Trends data is aggregated and anonymous.

Something is wrong or missing

Open an issue in the Issues tab: it gets answered and fixed. For programmatic access, see the API tab.