Google Trends Scraper & API - Bulk Keywords, Daily Data avatar

Google Trends Scraper & API - Bulk Keywords, Daily Data

Pricing

from $1.80 / 1,000 keyword series

Go to Apify Store
Google Trends Scraper & API - Bulk Keywords, Daily Data

Google Trends Scraper & API - Bulk Keywords, Daily Data

Google Trends API and pytrends alternative: interest over time for hundreds of keywords on one comparable scale, daily historical data for multi-year ranges, interest by region, related queries and Trending Now searches.

Pricing

from $1.80 / 1,000 keyword series

Rating

0.0

(0)

Developer

Mayowa Ogedengbe

Mayowa Ogedengbe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Google Trends Scraper

Scrape Google Trends for as many keywords as you like and get every number on one comparable scale. Google only compares five keywords at a time and rescales each comparison, so numbers from different comparisons can't be put side by side. This Actor links comparisons through shared keywords, so 500 keywords come back as if Google had compared them all at once. It also returns daily data over any range (even 2004 to today), interest by region, related and rising queries, and Trending Now with search volumes. No login, no API key, no five-keyword limit.

It is a practical Google Trends API alternative: Google's official Trends API is still an invite-only alpha, and the popular open-source libraries break on rate limits.

Sample output (real run: 10 drinks, US, past 12 months, one shared scale)

KeywordAverage interestPeakPeak week
coffee76.51002026-04-12
tea36.6452026-04-05
espresso9.614.82026-04-12
matcha6.28.62026-04-12
energy drink3.77.92026-04-12
chai3.04.22026-08-23
cold brew2.03.42026-06-21
kombucha1.11.62026-06-21

Google Trends only compares 5 terms at a time and rescales every request to 0-100. This Actor chains overlapping batches so every keyword sits on the same scale (validated within 0-1.7% of Google's own numbers), and the full time series comes with each row.

Why this one

This Actorpytrends / DIYTypical Store alternative
Keywords compared on one scaleHundreds55
Daily data for multi-year rangesYes, stitched and calibratedWeekly or monthly onlyRarely
Rate limits (429)Handled with session rotationBreaksSome fail 1 run in 4
Price$3 / 1,000 keyword seriesFree, your time$2 to $25 / 1,000, often plus start fees

What it costs: 100 keywords with their time series = about $0.50.

What this Actor does

  • Returns interest over time for any number of keywords or topics, for one or many locations.
  • Normalizes across batches. Keywords beyond five are chained through shared "pivot" keywords, chosen so no keyword is lost to Google's rounding. Every value is on one scale where 100 is the single highest point in the run.
  • Builds daily history over long ranges. Google switches to weekly data after about nine months and to monthly after five years. This Actor fetches daily windows and calibrates each one against the full-range series, so levels stay consistent across years.
  • Adds interest by region at country, state, metro (US) or city level, and related queries, both top and rising, including Breakouts.
  • Scrapes Trending Now: everything on trends.google.com/trending, with approximate search volume, growth, start and end time, category and related searches.
  • Supports web, image, news, YouTube and Google Shopping search, category filters, topic IDs such as /m/07bsy, and hourly ranges (past hour to past 7 days).
  • Rotates to a fresh IP and session the moment Google throttles, and always finishes before the run timeout with everything collected so far.

How accurate is the normalization?

We checked it against Google itself. Eighteen keywords were normalized together. Then pairs that had landed in different Google requests were compared directly on Google Trends. The ratio between the two keywords matched within:

PairGoogle, compared directlyThis ActorDifference
chatgpt / yoga5.275.270.0%
netflix / pilates7.827.810.1%
iphone / netflix2.522.520.1%
coffee / sourdough9.239.260.4%
airbnb / padel21.6721.760.4%
spotify / ozempic5.645.660.4%
bitcoin / kombucha14.7014.521.2%
tesla / notion11.6611.861.7%

For daily stitching, the change in level across every window seam matched Google's own daily data within 0 to 3%. (Tested 25 September 2026, US, past 12 months and past 5 years.)

The usual shortcut is one fixed "anchor" keyword in every request. It loses small keywords to rounding: in simulation it was off by up to 74%, or returned zero, for keywords a few hundred times smaller than the anchor. This Actor stayed under 1% on the same data.

GroupFields
Keywordkeyword, keywordTitle (the name of a topic ID), isTopic, geo, timeframe, startDate, endDate, resolution, searchProperty, category
Summaryaverage, peak, peakDate, latest, changePct (last quarter of the range vs the first), comparedWith
Time seriestimeline: date and value per point, isPartial for the still-filling last point
RegionsinterestByRegion: geoName, geoCode, value (0-100)
RelatedrelatedQueries.top and relatedQueries.rising (value, formattedValue, isBreakout)
Scalescale.method, scale.stitchedDaily, scale.precision (high, medium or low), exploreUrl
Trending Nowrank, query, geo, searchVolume, increasePct, startedAt, endedAt, isActive, relatedSearches, categories, newsArticleCount
  1. Choose Interest over time or Trending now.
  2. Add your keywords, one per line. There's no limit of five.
  3. Add locations such as US, GB, US-CA or US-NY-501, or leave empty for worldwide.
  4. Pick a time range. Turn on Daily data for long ranges if you want one point per day over years.
  5. Optionally add interest by region and related queries, then run and export to JSON, CSV or Excel.

Example input

{
"keywords": ["coffee", "tea", "matcha", "kombucha", "yerba mate", "cold brew", "chai"],
"geos": ["US", "GB"],
"timeframe": "today 5-y",
"dailyResolution": true,
"includeRelatedQueries": true
}

Example output (one keyword, trimmed)

{
"type": "interestOverTime",
"keyword": "coffee",
"geo": "US",
"timeframe": "today 12-m",
"startDate": "2025-09-25",
"endDate": "2026-09-25",
"resolution": "WEEK",
"average": 76.23,
"peak": 100.0,
"peakDate": "2026-04-12",
"latest": 71.0,
"changePct": 13.4,
"comparedWith": ["tea", "matcha"],
"scale": {"method": "single-request", "stitchedDaily": false, "precision": "high"},
"timeline": [{"date": "2025-09-21", "value": 65.0}, {"date": "2025-09-28", "value": 70.0}],
"relatedQueries": {
"top": [{"query": "coffee near me", "value": 100}],
"rising": [{"query": "how to remove coffee stain from carpet", "value": 5050, "isBreakout": true, "formattedValue": "Breakout"}]
},
"exploreUrl": "https://trends.google.com/trends/explore?q=coffee&date=today+12-m&geo=US"
}

Pay per result. You only pay for what you turn on.

EventWhat it is
Keyword seriesOne keyword in one location: summary and time series
Normalized keywordAdded when a run has more than five keywords and they are put on one scale
Daily history, per yearAdded per keyword per year of stitched daily data
Region breakdownInterest by region for one keyword
Related queriesTop and rising queries for one keyword
Trending searchOne trending search in Trending Now mode

Current prices are shown on the Actor's pricing tab. A typical run of 100 keywords over the past 12 months takes under a minute.

Tips

  • Compare like with like for the finest detail. Google rounds every value to a whole number, so a keyword more than about 100 times smaller than the biggest in the same run carries less detail. The scale.precision field flags it.
  • Topics vs search terms. A topic ID (from the Google Trends URL, for example /m/0dr90d for Tesla the company) counts every language and spelling. A plain keyword counts that exact search.
  • The last point is often partial. It's marked isPartial: true and left out of latest and changePct.
  • Locations: country codes (DE), regions (US-TX, GB-SCT) and US metro areas (US-CA-807).

FAQ

Is there an official Google Trends API? Google announced one in July 2025. It is still an application-only alpha, returns only consistently scaled interest over time, and has no regions, related queries or Trending Now.

Why are my numbers different from the Google Trends website? Values are relative to the highest point among all keywords in the run, not just the five on screen. Ratios between keywords are the same as on Google; the absolute 0 to 100 level moves with the set you compare.

Can I track keywords every day? Yes. Schedule the Actor and store runs, or pick the past 7 days for hourly data.

Is scraping Google Trends legal? Google Trends shows aggregated, anonymized search interest. It contains no personal data. As with any data source, check that your use fits your own legal requirements.

Support

Found a bug or need a field? Open an issue on the Actor's Issues tab and it will be looked at quickly.

Use it as an API

Run it from your own code and get the results back in one call. Replace YOUR_TOKEN with your Apify API token.

curl -X POST "https://api.apify.com/v2/acts/headply~google-trends-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["coffee", "tea", "matcha"], "geos": ["US"], "timeframe": "today 12-m"}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run_input = {'keywords': ['coffee', 'tea', 'matcha'], 'geos': ['US'], 'timeframe': 'today 12-m'}
run = client.actor("headply/google-trends-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

It also works from Make, Zapier, n8n, Google Sheets and as a tool for AI agents through the Apify MCP server.

More data tools from the same developer