Google Trends Scraper — Reliable & Fast (No Browser) avatar

Google Trends Scraper — Reliable & Fast (No Browser)

Pricing

from $2.00 / 1,000 keyword reports

Go to Apify Store
Google Trends Scraper — Reliable & Fast (No Browser)

Google Trends Scraper — Reliable & Fast (No Browser)

Google Trends interest over time, by region and related queries for hundreds of keywords, comparisons of up to 5 terms, and Trending Now with news. JSON endpoints, auto-retries and residential fallback. Pay only for keywords with data.

Pricing

from $2.00 / 1,000 keyword reports

Rating

0.0

(0)

Developer

Dustin Griffie

Dustin Griffie

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Get Google Trends data — interest over time, interest by region, related queries, comparisons of up to 5 terms and the live Trending Now list with news articles — for hundreds of keywords per run. It talks to Google Trends' own JSON endpoints instead of driving a browser, so it's fast, uses 256 MB of memory, and doesn't break when the page layout changes.

Why this scraper

  • Built for reliability. Every request runs on a fresh session (IP + cookies + consistent browser headers). Google's rate limits (HTTP 429) are retried with backoff on a new IP, and if the datacenter proxy keeps getting throttled the run switches to residential proxies by itself. In our test runs (about 580 keywords, up to 5 runs in parallel) every keyword returned data except one, and that case is now covered by an automatic end-of-run retry.
  • You only pay for results. Terms with too little search volume (no_data), queries Google rejects (invalid) and anything that failed are never charged. Duplicate terms are removed before the run. If you set Max cost per run, the run stops cleanly before going over it — unprocessed terms aren't charged.
  • No browser. Typically 5–10 seconds per keyword, 3–5 keywords in parallel.
  • Drop-in replacement. Turn on Add apify/google-trends-scraper field names and you also get interestOverTime_timelineData, interestBySubregion, relatedQueries_top, … in the same raw format, so existing integrations keep working.
  1. Click Try for free (or Start) — a free Apify account is enough.
  2. Type your search terms, one per line, or paste a Google Trends URL or a Google Sheet link.
  3. Optionally pick a location, time range, category or search type (web, YouTube, News, Images, Shopping).
  4. Click Start. A few seconds per keyword later you get one row per term in the Output tab.
  5. Download the results as JSON, CSV, Excel or HTML, or get them through the API, schedules, webhooks, Make, Zapier, n8n or the Apify MCP server.

What data you get

DataDetails
Interest over time0–100 per point; minute/hour/day/week/month steps chosen by Google; date (UTC), localTime (your time zone, for hourly data), isPartial for the still-running period; peak, average, latest and % change per term
Interest by regionCountries (Worldwide), regions/states, US metro areas (DMA) or cities
Related queriesTop 25 and Rising 25 with Google's values (+250%, Breakout), isBreakout flag and link
Related topicsSee FAQ — Google currently doesn't send these to anyone who isn't signed in
ComparisonsUp to 5 terms on one scale, like the Compare box on Google Trends
Trending NowTerm, search volume, % increase, start/end time, active flag, categories, related searches and up to 3 news articles (title, URL, source, published time, image) per trend, for any country, past 4 h / 24 h / 48 h / 7 days

Search type (web, YouTube, News, Images, Shopping), category, location (country, region, metro), any date range from 2004, language and time zone are all supported.

Input

You can give search terms in four ways — combine them freely:

  • Search terms — one per line, any language.
  • Compare terms — coca cola, pepsi on one line (up to 5).
  • Google Trends URLs — paste an explore URL from your browser.
  • Google Sheet or CSV URL — a sheet shared as "Anyone with the link can view" (or published to the web), or any public CSV. Terms are read from the first column or the column you name; a specific tab is used when the URL contains gid=.

Examples

Keywords in the US over the past 12 months:

{ "searchTerms": ["web scraping", "data extraction", "日本語"], "geo": "US", "timeRange": "today 12-m" }

Compare brands by US state, monthly since 2004:

{ "comparisonGroups": ["coca cola, pepsi, dr pepper"], "geo": "US", "timeRange": "all", "regionResolution": "REGION" }

Hourly data for the past day in US Pacific time:

{ "searchTerms": ["earthquake"], "geo": "US-CA", "timeRange": "now 1-d", "timezoneOffset": 420 }

Terms from a Google Sheet column called "keyword":

{ "spreadsheetId": "https://docs.google.com/spreadsheets/d/<id>/edit#gid=0", "spreadsheetColumn": "keyword" }

Trending Now with news for three countries:

{ "trendingNowGeos": ["US", "GB", "IN"], "trendingNowHours": "24", "maxTrendingPerGeo": 50 }

Output

One row per search term (default) — everything about a term in one item:

{
"query": "coffee", "keyword": "coffee", "geo": "US", "timeframe": "today 12-m", "category": 0, "categoryName": "All categories",
"property": "web", "status": "ok", "statusMessage": null,
"averageInterest": 82.4, "peakValue": 100, "peakDate": "2025-12-21T00:00:00.000Z", "latestValue": 79, "changePercent": -4.8,
"topQueries": ["coffee near me", "coffee shop", "..."], "risingQueries": ["..."],
"interestOverTime": [{ "keyword": "coffee", "date": "2025-10-19T00:00:00.000Z", "localTime": null, "formattedTime": "Oct 19 – 25, 2025", "value": 83, "hasData": true, "isPartial": false }],
"interestByRegion": [{ "keyword": "coffee", "geoCode": "US-WA", "geoName": "Washington", "value": 100, "hasData": true, "resolution": "REGION" }],
"relatedQueries": [{ "keyword": "coffee", "rankType": "rising", "rank": 1, "relatedQuery": "...", "value": 3250, "formattedValue": "Breakout", "isBreakout": true, "link": "https://trends.google.com/trends/explore?q=..." }],
"relatedTopics": [], "relatedTopicsStatus": "notProvidedByGoogle",
"trendsUrl": "https://trends.google.com/trends/explore?q=coffee&date=today+12-m&geo=US",
"scrapedAt": "2026-10-23T03:20:00.000Z"
}

The Output tab has views for the overview, interest over time, regions, related queries and Trending Now.

Flat rows (outputFormat: "flat") — one row per data point with a recordType column (keyword_summary, interest_over_time, interest_by_region, related_query, related_topic, trending_now), ideal for spreadsheets, SQL and BI tools.

Status values

statusmeaningcharged
okall requested data fetchedyes
partialmain data fetched, a section failed after all retries (see error)yes
no_dataGoogle has too little search volume for this term/place/time ("not enough data")no
invalidGoogle rejected the query (unknown location code, unsupported combination)no
failedblocked after all retriesno

Input mistakes we can detect up front (bad location format, dates before 2004, unknown category id, more than 5 terms in a comparison, private Google Sheet) stop the run immediately with a clear message, before anything is charged.

Pay per event — platform usage (compute, proxies, storage) is included, there is nothing else to pay:

EventFree planPaid plans
Keyword report — one search term with data (ok or partial; each term in a comparison counts once)$0.003$0.002 ($2 per 1,000 terms)
Trending search — one Trending Now row, incl. related searches and news$0.0002$0.0002
Actor start (Apify's standard start fee)$0.00005$0.00005

Never charged: terms with no data (no_data), queries Google rejects (invalid), failures, duplicate terms, rows not saved. Set Max cost per run and the run stops cleanly before going over it; the minimum you can set is $0.10.

Example: 500 keywords on a paid plan ≈ $1.00. The Apify Free plan includes $5 of monthly credit — about 1,600 keyword reports a month for free.

FAQ

Why are related topics empty? Google Trends currently returns an empty related-topics list to every visitor who isn't signed in to a Google account — we verified this with a real Chrome browser, from datacenter and residential (home) IPs, in several countries and with topic IDs; the Google Trends website itself shows "Hmm, your search doesn't have enough data to show here" for related topics. Related queries are unaffected. Each item says relatedTopicsStatus: "notProvidedByGoogle"; if Google switches the data back on, the rows fill in automatically. It never affects status or price.

What do the numbers mean? Values are relative: 100 is the term's peak for the chosen place and time, 50 is half as popular. They aren't search counts. Compared terms share one scale; separately searched terms don't.

What does the time zone setting change? Google's data points are the same in every time zone; the setting changes formattedTime and our localTime for hourly/minute data. date is always UTC. Daily, weekly and monthly points are calendar dates.

How do I get daily data for a whole year? Google picks the step from the range: daily up to ~9 months, weekly up to 5 years, monthly beyond. Run several shorter custom ranges (2024-01-01 2024-06-30, 2024-07-01 2024-12-31) — note each range is scaled to its own peak.

Which proxy should I use? The default (Automatic datacenter) works for most runs. With Fall back to residential proxy on, the run switches to residential automatically if Google throttles the datacenter IPs. Don't use GOOGLE_SERP — it can't reach Google Trends.

Can I schedule it or use it from my code? Yes — use Apify schedules, the API, the Python/JS clients, Make, Zapier, n8n or the MCP server like any other Actor.

Is it legal? The Actor collects publicly available, aggregated and anonymized Google Trends statistics; no personal data. Check that your use complies with Google's terms and the laws that apply to you.