Google Trends Scraper avatar

Google Trends Scraper

Pricing

from $0.09 / 1,000 results

Go to Apify Store
Google Trends Scraper

Google Trends Scraper

Google Trends scraper and API, no browser. Interest over time, interest by region and city, related queries and topics. Compare unlimited keywords on one scale (Google caps at 5). Same fields as the official scraper, faster and cheaper. $1.49 per 1,000.

Pricing

from $0.09 / 1,000 results

Rating

0.0

(0)

Developer

Quiet Harvest

Quiet Harvest

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get Google Trends data without a browser: interest over time, interest by country, region or US metro area, and top and rising related searches, for any keyword, region, time range, category and search type (web, news, images, YouTube, Shopping). It also does something Google Trends itself can't: compare any number of keywords on one scale.

$1.49 per 1,000 results. Paid plans pay less, down to $0.09 per 1,000 (see Pricing).


Why this one

It doesn't time out. There is no browser. Each keyword takes a few HTTP requests, so 60 keywords finish in about a minute on 256 MB of memory.

It gets past Google's rate limit. Google Trends answers 429 to anyone without a Google cookie, and it blocks an IP after about a hundred requests. Each keyword here gets its own IP and a fresh cookie. If Google pushes back, the Actor switches both and tries again.

Unlimited keywords on one scale (no other scraper does this). Google compares at most 5 terms per chart and rescales every chart so its own peak is 100, so a "40" in one chart and a "40" in another mean different things. Turn on Compare ALL terms on one scale and give it 12, 50 or 200 keywords. The Actor chains the charts through a shared anchor term and returns every keyword on one 0–100 scale, ranked by average interest. Use it for brand share of search, product research or picking content topics.

Drop-in field names. Output uses the same field names as the official Apify Google Trends Scraper (interestOverTime_timelineData, relatedQueries_top, relatedQueries_rising...). There are also simpler fields: interestOverTime as a list of {date, value} points, plus averageInterest, peakInterest, peakDate and latestInterest.


Quick start

{
"searchTerms": ["bitcoin", "ethereum"],
"geo": "US",
"timeRange": "today 12-m"
}

Several terms on the same chart (up to 5, like on the website):

{ "searchTerms": ["nike, adidas, puma"], "isMultiple": true }

Rank 12 brands on one scale:

{
"searchTerms": ["nike", "adidas", "puma", "new balance", "asics", "reebok", "under armour", "skechers", "vans", "converse", "fila", "hoka"],
"compareAllTerms": true,
"anchorTerm": "puma"
}

Or paste links from the website:

{ "startUrls": ["https://trends.google.com/trends/explore?date=now%207-d&geo=US&q=earthquake"] }

Output

One item per keyword:

FieldNotes
searchTerm, inputUrlOrTerm
geo, timeRange, category, searchTypeWhat was searched
interestOverTime[{date, formattedTime, value, isPartial}]. date is ISO 8601 UTC. isPartial marks the period still in progress
averageInterest, peakInterest, peakDate, latestInterestCalculated from complete periods only
hasDatafalse when Google has too little search volume to show anything
interestOverTime_timelineData, interestOverTime_averagesGoogle's raw format, same as the official scraper
interestBy[{geoCode, geoName, value}], highest first. Countries for worldwide searches, regions or states for a country, metro areas with DMA
relatedQueries_top, relatedQueries_rising[{query, value, formattedValue, link}]. Rising values like +4,750% or Breakout
comparedWithThe other terms on the same chart
trendsUrlOpen the same view on Google Trends

With Compare ALL terms on one scale, you also get rank, anchorTerm, normalizedAcrossAllTerms: true, and lowPrecision. lowPrecision is true when a term is so much smaller than the anchor that most of its points round to 0; if you see it, pick a smaller anchor.

Example (shortened):

{
"searchTerm": "bitcoin",
"geo": "Worldwide",
"timeRange": "today 12-m",
"averageInterest": 44.92,
"peakInterest": 100,
"peakDate": "2026-02-01T00:00:00Z",
"interestOverTime": [{"date": "2025-09-21T00:00:00Z", "value": 43, "isPartial": false}],
"interestBy": [{"geoCode": "CH", "geoName": "Switzerland", "value": 100}, {"geoCode": "AT", "geoName": "Austria", "value": 88}],
"relatedQueries_rising": [{"query": "how to buy bitcoin safely", "formattedValue": "Breakout"}]
}

Input

FieldDefault
searchTermsOne keyword per line
isMultiplefalseSplit a line on commas and compare those terms on one chart (5 max per chart)
compareAllTermsfalsePut every keyword on one scale, no limit
anchorTermfirst termShared term for Compare ALL. Pick one of medium popularity
startUrlsGoogle Trends explore links
timeRangePast 12 monthsPast hour, 4 hours, day, 7 days, 30 days, 90 days, 12 months, 5 years, or since 2004
customTimeRange2024-01-01 2024-06-30; overrides Time range
geoworldwideUS, GB, JP, TW, or a region such as US-CA
category0The number from cat= in a Trends URL
searchTypewebweb, images, news, youtube, shopping
includeInterestByRegion, includeRelatedQueriestrueTurn these off for a faster run
regionResolutionAutomaticCountry, Region / state, or Metro (US DMA)
languageen-USLanguage of dates and region names

Pricing

Pay per result (one keyword = one result):

PlanFreeBronzeSilverGoldPlatinumDiamond
Per 1,000 results$1.49$0.79$0.39$0.09$0.09$0.09

That's less than the official Google Trends Scraper on every plan.

Good to know

  • Related topics and city-level data are not included. Google now serves these only to its own website, behind a bot check. Related queries and country, region and metro data work normally.
  • Google Trends numbers are sampled. The same search run twice can differ by a few points, on the website too. Peaks and rankings stay the same.
  • Values are relative (0–100), not search counts. 100 is the peak within the chart, or within all terms when you use Compare ALL.

Questions

Found a bug or want a field added? Open an issue on the Issues tab.