Google Trends Scraper & API - Keyword Trends, Related Queries avatar

Google Trends Scraper & API - Keyword Trends, Related Queries

Pricing

from $0.29 / 1,000 results

Go to Apify Store
Google Trends Scraper & API - Keyword Trends, Related Queries

Google Trends Scraper & API - Keyword Trends, Related Queries

Google Trends scraper and API: keywords (compare up to 5), country and time range in; interest over time (0-100), by region, top and rising related queries and topics, plus trending searches out. No API key or browser. $0.29 per 1,000 keyword reports; the most-used rival charges $6.00 (8 Nov 2026).

Pricing

from $0.29 / 1,000 results

Rating

0.0

(0)

Developer

Giovanni Rich

Giovanni Rich

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Google Trends scraper and unofficial Google Trends API: scrape Google Trends for any keyword and get interest over time, interest by region, related queries, related topics and today's trending searches as clean JSON, CSV or Excel. Track keyword trends, compare up to 5 terms on one scale, and spot rising and breakout searches with no API key and no headless browser; rate limits (HTTP 429) are handled by rotating sessions and proxy IPs with backoff.

What you get

For every keyword, or group of up to 5 keywords compared against each other, one result with:

  • Interest over time: the 0-100 timeline Google shows, with dates, plus the average, peak value and date, latest value and % change for each keyword
  • Interest by region: 0-100 by country, state/province, US metro (DMA) or city
  • Related queries: top and rising, including "Breakout" terms, with explore links
  • Related topics: top and rising, with Knowledge Graph IDs, when Google has them
  • Trending now (optional): Google's current trending searches for any country, with approximate search volume, picture and news links (one result per trending search)

Sample output

Real keywordStats from the 24 Sep 2026 local test run (sample-output.json): US, past 12 months (the comparison row shows the first keyword).

searchTermkeywordaveragepeakValuepeakDatelatestValuechangePercent
bitcoinbitcoin35.11002026-02-0119-36.9
taylor swifttaylor swift25.21002025-09-2820-27.8
iphone, samsung galaxyiphone61.41002026-01-18754.3

Use cases

  • SEO and content planning: find rising and breakout queries before your competitors do
  • Product and e-commerce research: seasonality, demand by state, comparing brands (e.g. iphone, samsung galaxy)
  • Market and investment research: attention indicators for tickers, crypto and brands
  • Newsrooms and social media teams: daily trending searches with the news stories behind them
  • Dashboards and AI agents: schedule the actor and feed the output into Sheets, Looker Studio, your database or an agent

Pricing

$0.29 per 1,000 results (pay per result; failed requests are never charged; platform usage and proxies are included). One result = one search line (a comparison of up to 5 keywords counts as one, with timeline, regions, related queries and topics included) or one trending search. That is about a twentieth of the most-used Google Trends scraper ($6.00 per 1,000 on Apify's free plan since 6 Nov 2026, falling to $1.50 on the top plan), with the whole keyword report in one charge (live Apify Store search on 8 Nov 2026).

Actor (30-day users)What one charge buysPrice per 1,000
This actorone full keyword report, or one trending search$0.29 + $0.00005 per run
apify/google-trends-scraper (3,272)one result per search term$6.00 (free plan; $3.00 Gold, $1.50 Diamond)
data_xplorer/google-trends-fast-scraper (895)one result$2.00 + $0.025 per run
agenscrape/google-trends-scraper (366)one result$25.00 + $0.025 per run
khadinakbar/google-trends-scraper (301)one result$5.00
vnx0 / leadsbrary (72 / 47)one result$1.20
rastriq/google-trends-scraper (6)one result$0.30 + $0.002 per run
scrape.badger/google-trends-scraper (1)one Trends call (a full report takes several)$0.25 per call + $0.01 per row
grokbob/google-trends-batch-ppe (1)one interest-over-time timeline only$0.20
automation-lab/google-trends-scraper (53)one trend row + one analysed keyword$1.15 + $138.00 per 1,000 keywords + $0.005 per run
scrapesage/google-trends-scraper (90)one keyword / comparison / trending search$4.00 / $5.00 / $1.50
steadyfetch/google-trends-scraper (24)one trend report$9.00
automationnation/google-trends-scraper (13)one keyword report / one trending search$1.00 / $0.50
peerless_columbine/google-trends-scraper-api (1)one trend report$0.50
kwerix/google-trends-api (4)one keyword / one trending search$1.50 / $0.50
hridayrungta/google-trends-scraper (3)one search-term row with the sections you pick / one trending search$0.20 / $0.10 + $0.0015 per run
euroscrape/google-trends-free (1), utils/google-trends-actor (1), emreceylan/google-trends-scraper (2)not chargedfree today
memo23 (9), unitbytes (47), tallyrake (27), scrapersdelight (35)one data point (one week, one region or one query)$0.75, $0.45, $0.25, $0.05

Per-data-point scrapers look cheaper per row, but a 12-month keyword report is about 150 data points (53 weeks, about 50 regions, about 50 related queries), so the same report costs about $0.12 (memo23), $0.07 (unitbytes), $0.04 (tallyrake) or $0.005 (scrapersdelight, timeline and regions only), against $0.0003 here. This actor is not the cheapest per report in every case: hridayrungta's search-term row costs less ($0.20 against $0.29), so with its $0.0015 start fee it is cheaper from about 17 reports per run, and euroscrape, utils and emreceylan are free today. dami_studio (0 users) charges $0.06 per data point plus a start fee; crearcode (2) shows $0.10 per result plus a start fee and does not say what one result holds; thescrappa (0) charges $0.20 for related queries only; grokbob's $0.20 buys the timeline only, without regions or related queries. Features of these actors come from their Store text, not from test runs.

You scrapeYou pay
100 results$0.029
1,000 results$0.29
10,000 results$2.90
100,000 results$29.00

Plus a $0.00005 start fee per run. The Apify free plan's $5 monthly credit covers about 17,000 results. The prefilled input (bitcoin and iphone, samsung galaxy, worldwide, past 12 months) returns 2 full keyword reports and costs about $0.0006. No timed cloud run of it is on record; the timing we have is the local test below.

FAQ

Is it legal to scrape Google Trends? The actor only collects publicly available, aggregated data that anyone can see on trends.google.com, and it contains no personal data. You are still responsible for how you use the results: follow Google's terms of service and the laws that apply to you (such as GDPR). This is not legal advice; ask a lawyer if you're unsure.

Is there an official Google Trends API? Google opened an official Trends API in 2025 only as a limited alpha for approved testers. This actor reads the same public endpoints the trends.google.com website uses, so it works for anyone today with no key or approval.

What does a typical run cost? $0.00029 per keyword report. Tracking 50 keywords every day costs about $0.015 a day (about $0.45 a month); 1,000 keywords cost $0.29. A weekly check of 200 product keywords is about $0.25 a month.

Does it need a login or a Google API key? No. The actor uses the same public endpoints the website uses, over plain HTTP. Values are Google's relative 0-100 index (100 = the peak for your terms, place and time), not absolute search volumes, so put terms on one line to compare them on one scale.

How fast is it and what are the limits? In a local test on 24 Sep 2026 (home connection, no proxy), 9 searches plus 2 trending countries (29 results, 11 requests) took 19.3 seconds. Up to 5 keywords per comparison (Google's limit), about 10 trending searches per country, and related queries/topics only when Google has enough volume (otherwise you get an empty array; hasData: false means too little volume). City and US-metro data work with geo set to a country and regionResolution set to CITY or DMA.

Can I schedule it or call it via API? Yes. Schedule daily or hourly runs in Apify Console to track keyword trends over time, or start runs from the Apify API, the JavaScript/Python clients, Make, Zapier, n8n or the Apify MCP server.

Do I need proxies? What about "rate-limited ... rotating session" warnings? Apify Proxy is on by default. Each session gets its own Google cookie; on a 429/403 the session is retired and the search retried on a fresh IP with backoff and jitter (8 retries by default). Those warnings are normal. If a search still fails after all retries it appears in RUN_SUMMARY.failures and is not charged; many failures usually mean you should switch to the RESIDENTIAL proxy group or lower maxConcurrency.

  1. Enter your keywords in Search terms (one per line, or comma-separated on one line to compare them), and optionally a country, time range, or countries for Trending now.
  2. Click Start. Each search is saved as soon as it is ready (9 searches plus 2 trending countries took 19.3 s in a local test on 24 Sep 2026).
  3. Download the results as JSON, CSV or Excel, or call the actor through the Apify API and get the dataset in your own code.

Why this one

Google Trends is notoriously hard to scrape: it answers 429 Too Many Requests to anything that looks automated. Scrapers that ignore this come back with empty or failed runs. This actor was written around that problem:

  • One small HTTP flow per search: cookie warm-up, explore, then the data widgets
  • A new session and IP after a 429, plus short in-session retries for widget calls that hit a transient limit
  • Results are saved per search as soon as they're ready, so a slow or failing search never blocks the others
  • A RUN_SUMMARY record lists what came back for each search and what failed and why
  • One result is a whole keyword report (timeline, regions, related queries and topics), so 1,000 full keyword reports cost $0.29 in total

Input

FieldDefaultDescription
searchTerms-One search per line. Put up to 5 comma-separated terms on a line to compare them on one scale: chatgpt, gemini, claude
exploreUrls-Links pasted straight from trends.google.com/trends/explore. Keywords, country, dates, category and search type are read from each URL.
geoWorldwideUS, GB, DE, US-CA, ...
timeRangePast 12 monthsPast hour, 4 hours, day, 7 days, 30 days, 90 days, 12 months, 5 years, or 2004-present
customTimeRange-2024-01-01 2024-12-31
category0 (all)Google Trends category ID, e.g. 7 Finance, 71 Food & Drink
searchPropertywebweb, images, news, youtube, shopping
includeInterestOverTime / includeInterestByRegion / includeRelatedQueries / includeRelatedTopicsonTurn off what you don't need to skip those requests
regionResolutionAUTOCOUNTRY, REGION, DMA (US metros) or CITY
trendingNowGeos-Country codes to fetch "Trending now" searches for
proxyConfigurationApify ProxySwitch to RESIDENTIAL if you see many rate-limit retries

Input example

{
"searchTerms": ["bitcoin", "chatgpt, gemini, claude", "air fryer"],
"geo": "US",
"timeRange": "today 12-m",
"trendingNowGeos": ["US", "GB"]
}

Output example

You get one result per search (a line in searchTerms or an explore URL), with every data type nested inside it, plus one result per trending search if you asked for trending now. This one is from a real run: US, past 12 months (arrays shortened).

{
"type": "search",
"searchTerm": "chatgpt, gemini, claude",
"keywords": ["chatgpt", "gemini", "claude"],
"geo": "US",
"geoLabel": "US",
"timeRange": "today 12-m",
"category": 0,
"searchProperty": "web",
"hasData": true,
"keywordStats": [
{ "keyword": "chatgpt", "average": 77.6, "peakValue": 100, "peakDate": "2025-10-19T00:00:00.000Z", "latestValue": 76, "changePercent": -20.2 },
{ "keyword": "gemini", "average": 26.9, "peakValue": 35, "peakDate": "2026-04-12T00:00:00.000Z", "latestValue": 33, "changePercent": 20.9 },
{ "keyword": "claude", "average": 17.9, "peakValue": 34, "peakDate": "2026-05-24T00:00:00.000Z", "latestValue": 19, "changePercent": 263.6 }
],
"averageInterest": { "chatgpt": 78, "gemini": 27, "claude": 18 },
"interestOverTime": [
{ "date": "2026-09-13T00:00:00.000Z", "formattedTime": "Sep 13 – 19, 2026", "values": { "chatgpt": 76, "gemini": 33, "claude": 19 }, "isPartial": false },
{ "date": "2026-09-20T00:00:00.000Z", "formattedTime": "Sep 20 – 26, 2026", "values": { "chatgpt": 82, "gemini": 36, "claude": 21 }, "isPartial": true }
],
"interestByRegion": [
{ "geoCode": "US-CA", "geoName": "California", "values": { "chatgpt": 57, "gemini": 26, "claude": 17 } },
{ "geoCode": "US-DC", "geoName": "District of Columbia", "values": { "chatgpt": 58, "gemini": 20, "claude": 22 } }
],
"regionResolution": "REGION",
"relatedQueriesTop": [
{ "query": "what is chatgpt", "keyword": "chatgpt", "value": 100, "formattedValue": "100", "isBreakout": false, "link": "https://trends.google.com/trends/explore?q=what+is+chatgpt&date=today+12-m&geo=US" }
],
"relatedQueriesRising": [
{ "query": "how to use chatgpt effectively", "keyword": "chatgpt", "value": 2050, "formattedValue": "+2,050%", "isBreakout": false, "link": "https://trends.google.com/trends/explore?q=how+to+use+chatgpt+effectively&date=today+12-m&geo=US" }
],
"relatedTopicsTop": [],
"relatedTopicsRising": [],
"exploreUrl": "https://trends.google.com/trends/explore?q=chatgpt%2Cgemini%2Cclaude&geo=US&date=today+12-m&hl=en-US",
"scrapedAt": "2026-09-24T05:14:08.994Z"
}

A trending-now result:

{
"type": "trending",
"geo": "US",
"rank": 1,
"title": "dodgers schedule",
"approxTraffic": "1000+",
"approxTrafficNumber": 1000,
"publishedAt": "2026-09-24T04:40:00.000Z",
"picture": "https://encrypted-tbn2.gstatic.com/images?q=tbn:...",
"pictureSource": "MLB.com",
"news": [
{ "title": "The teams no one wants to play in October", "url": "https://www.mlb.com/news/scariest-mlb-teams-to-play-in-october-2026", "source": "MLB.com", "picture": "https://encrypted-tbn2.gstatic.com/images?q=tbn:..." }
],
"scrapedAt": "2026-09-24T05:14:09.089Z"
}

keywordStats.changePercent compares the average of the last quarter of the period with the average of the first quarter. Partial (still-running) periods are left out of the stats.

The dataset has three views: Overview, Interest over time and Trending now. The run's key-value store also holds a RUN_SUMMARY with per-search counts, retries and any failures.

API example

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("rel8ble/google-trends-scraper").call(run_input={"searchTerms":["chatgpt, gemini, claude","air fryer"],"geo":"US","timeRange":"today 5-y","trendingNowGeos":["US"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["type"], item.get("searchTerm"), item.get("keywordStats"))

One HTTP call that runs the actor and returns the rows (curl):

curl -X POST "https://api.apify.com/v2/acts/rel8ble~google-trends-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["chatgpt, gemini, claude","air fryer"],"geo":"US","timeRange":"today 5-y","trendingNowGeos":["US"]}'

Integrations

  • Make, Zapier and n8n: start runs and pass the Google Trends data into any workflow
  • Google Sheets: export the dataset straight into a spreadsheet, or refresh it on a schedule
  • Apify API: REST API plus official JavaScript and Python clients; run the actor and fetch results from your own code
  • Webhooks: get notified when a run finishes and pull the results automatically
  • Schedules: run daily or hourly to track keyword trends over time
  • MCP for AI agents: through the Apify MCP server (https://mcp.apify.com), Claude, ChatGPT, Cursor and other agents can call this actor as a tool and read Google Trends data directly

Python and Node examples

Step-by-step tutorial with runnable Python code (MIT): https://github.com/Rel8ble/google-trends-api-python

Need a custom scraper or a ready dataset? Hire me on Fiverr: https://www.fiverr.com/rel8ble