Google Trends Scraper – Interest, Regions & Trending Now avatar

Google Trends Scraper – Interest, Regions & Trending Now

Pricing

from $1.50 / 1,000 keyword reports

Go to Apify Store
Google Trends Scraper – Interest, Regions & Trending Now

Google Trends Scraper – Interest, Regions & Trending Now

Extract Google Trends data: interest over time, interest by region, related queries and topics, keyword comparison (up to 5 terms) and Trending Now with search volume. No API key or login. A Google Trends API alternative. $1.50 per 1,000 keyword reports.

Pricing

from $1.50 / 1,000 keyword reports

Rating

0.0

(0)

Developer

Phantom Data

Phantom Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

Google Trends Scraper — interest over time, regions, related queries & Trending Now

Google Trends scraper and Google Trends API alternative. Get interest over time, interest by country, state, metro area or city, related queries (top and rising, including Breakout terms), related topics (experimental), side-by-side comparisons of up to 5 keywords, and today's Trending Now searches with search volume — as clean JSON, CSV or Excel. No browser, no Google account, no API key.

  • ✅ Keyword trends for any term, topic id (/m/05p0rrx) or pasted Google Trends URL
  • ✅ Compare up to 5 keywords on the same 0-100 scale (chatgpt, gemini, claude) + share of each term per region
  • ✅ Any location and period: worldwide, a country (US, ES), a state (US-CA); past hour → 2004-present, or a custom date range
  • ✅ Categories and Google properties: Web, Images, News, Shopping, YouTube search
  • ✅ Trending Now per country: search volume (e.g. 2M+), % increase, start time, active/ended, categories, related searches, news
  • ✅ Ready-made metrics per keyword: average, peak, latest value and % change over the period
  • ✅ Two output formats: one row per keyword (nested JSON) or flat rows ready for Google Sheets / Excel
  • ✅ Built for reliability: cookie sessions, exponential backoff, a fresh IP + cookie on every 429, automatic switch to residential proxy when Google keeps blocking — and free error rows instead of crashed runs
  • ✅ $1.50 per 1,000 keywords, no start fee — half the price of the most popular Google Trends actor
Use caseHow
SEO & content planningFind rising queries and Breakout keywords around your topic; check seasonality before you write.
Keyword research at scaleRun hundreds of keywords through the same period and location and rank them by average or % change.
Brand & competitor trackingCompare your brand with up to 4 competitors; see which states or countries each one leads.
E-commerce & product researchUse the Google Shopping property and the Shopping category to spot products that are taking off.
YouTube & creatorsSwitch the property to YouTube search to see what people look for on YouTube.
News, PR & social mediaPull Trending Now every hour for your countries and react to what is spiking right now.
Data science & AIFeed clean time series into dashboards, forecasting models, LLM agents or Google Sheets.

Quick start (under 1 minute)

  1. Click Try for free and type the keywords to analyze. Separate up to 5 terms with commas to compare them on the same 0-100 scale.
  2. Pick the country (geo), the time range and the sections you want (interest over time, regions, related queries). Leave Trending Now empty unless you need it.
  3. Click Start. One keyword usually finishes in 10-30 seconds. Download JSON, CSV or Excel, or call it through the Apify API.

Input

FieldWhat it does
searchTermsOne entry per query: bitcoin, a comparison nike, adidas, puma (max 5), a topic id /m/05p0rrx, or a Trends URL.
geoUS, GB, ES, US-CA… Empty = worldwide.
timeRange / customTimeRangenow 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all, or 2024-01-01 2024-06-30.
category / searchPropertyCategory id (0 = all) and Web / Images / News / Shopping / YouTube.
compareAllTermsPut all search terms in one comparison.
includeInterestOverTime, includeInterestByRegion, includeRelatedQueries, includeRelatedTopicsChoose the sections you need.
regionResolutionAuto, countries, subregions, US metro areas (DMA) or cities.
trendingGeos, trendingHours, trendingSort, trendingCategories, maxTrendingPerCountryTrending Now per country (past 4 h / 24 h / 48 h / 7 days).
outputFormatreport (one row per keyword) or flat (one row per data point).
proxyConfigurationApify Proxy (recommended).

Example: compare three AI assistants in the US over 90 days

{
"searchTerms": ["chatgpt, gemini, claude"],
"geo": "US",
"timeRange": "today 3-m"
}
{
"searchTerms": ["https://trends.google.com/trends/explore?q=air%20fryer&geo=ES&date=today%205-y&gprop=youtube"]
}
{
"searchTerms": [],
"trendingGeos": ["US", "GB", "IN"],
"trendingHours": "24",
"trendingSort": "volume",
"maxTrendingPerCountry": 50
}

Output

Every row has a type: keyword, trending or error (errors are free). Real sample from a local test run (shortened):

{
"type": "keyword",
"search_term": "claude",
"comparison_group": ["chatgpt", "gemini", "claude"],
"geo": "US",
"time_range": "today 3-m",
"time_resolution": "DAY",
"average": 17.72,
"peak_value": 25,
"peak_date": "2026-10-22",
"latest_value": 21,
"change_pct": 21.4,
"interest_over_time": [
{"date": "2026-08-02", "timestamp": 1785628800, "value": 13, "has_data": true, "is_partial": false, "formatted_time": "Aug 2, 2026"}
],
"interest_by_region": [
{"geo_code": "US-DC", "geo_name": "District of Columbia", "value": 100, "has_data": true},
{"geo_code": "US-CA", "geo_name": "California", "value": 70, "has_data": true}
],
"compared_by_region": [
{"geo_code": "US-CA", "geo_name": "California", "share_pct": 17, "is_leader": false}
],
"related_queries_top": [
{"query": "claude ai", "value": 100, "formatted_value": "100", "is_breakout": false, "link": "https://trends.google.com/trends/explore?q=claude+ai&date=today+3-m&geo=US"}
],
"related_queries_rising": [
{"query": "claude duet", "value": 3100, "formatted_value": "+3,100%", "is_breakout": false, "link": "..."}
],
"related_topics_status": "not_offered_by_google_for_comparisons",
"explore_url": "https://trends.google.com/trends/explore?q=chatgpt%2Cgemini%2Cclaude&date=today+3-m&hl=en-US&geo=US"
}
{
"type": "trending",
"rank": 1,
"geo": "US",
"term": "learjet 60",
"search_volume": 2000000,
"search_volume_text": "2M+",
"increase_pct": 1000,
"started_at": "2026-11-01T19:10:00Z",
"ended_at": null,
"is_active": true,
"categories": ["Other"],
"trend_breakdown": ["learjet 60", "plane crash florida", "florida plane crash"],
"news": [],
"explore_url": "https://trends.google.com/trends/explore?q=learjet+60&geo=US&date=now+1-d&hl=en-US"
}

With outputFormat: "flat" you get rows of type summary, interest_over_time, interest_by_region, compared_by_region, related_query and related_topic, each with search_term, geo and time_range — perfect for a pivot table.

Pricing

Pay per event — you only pay for data you get:

EventPrice
Keyword report (one term in one location & period, all sections included)$0.0015 ($1.50 per 1,000 keywords)
Trending search (one Trending Now row)$0.0005 ($0.50 per 1,000)
Run startfree
Error rowsfree

Examples: 100 keywords ≈ $0.15. A 5-keyword comparison ≈ $0.0075. Tracking one keyword every hour for a month ≈ $1.08. Set "Max cost per run" in the run options to cap any run — the scraper stops before starting a query it cannot pay for.

FAQ

Is there an official Google Trends API? Google has announced an alpha API with limited access. This actor reads the same public JSON that the trends.google.com website loads in your browser, so it works today, for any keyword, without an application.

Why do the values go from 0 to 100? That is how Google Trends works: values are relative to the highest point in the chosen period and location (100 = peak popularity). In a comparison all terms share the same scale.

What about related topics? They are an opt-in, experimental section (includeRelatedTopics). Google never shows related topics for comparisons, and at the moment it returns the topic list empty for most automated requests. The field related_topics_status tells you what happened (ok, empty_from_google, not_offered_by_google_for_comparisons) and you are charged the same either way, so leave it off unless you need it. Related queries (top and rising) are not affected.

Why do I get HTTP 429 in other tools? Google rate-limits Trends aggressively: in our tests one IP gets blocked after roughly 60 requests in a few minutes, and stays blocked for more than half an hour. This actor gives every query its own IP and cookie, moves to a fresh IP before reaching that limit, waits with exponential backoff, changes IP on every retry, restarts a failed query once from scratch and can switch to residential proxy automatically. Each run saves RUN_SUMMARY in the key-value store with the success rate, number of retries and blocked responses.

How many keywords can I run? As many as you want; they run in parallel (3 at a time by default). For very large lists, keep maxConcurrency moderate so Google does not rate-limit you.

What does "Breakout" mean? In rising related queries, Google marks terms that grew more than 5,000% as Breakout; we expose it as is_breakout: true.

Where does Trending Now data come from? From the Trending Now page of Google Trends (all trends Google lists for the country and time window) plus the official Trending RSS feed for news articles, which Google only provides for its most recent top trends.

Is it legal? The actor only reads aggregated, anonymous statistics that Google publishes openly, without logging in and without solving captchas. Check Google's terms for your use case.

Limits

  • Google Trends values are relative (0-100 against the peak of the chosen period and place), not absolute search volumes. Only Trending Now includes volume buckets.
  • Google rate-limits Trends hard. The Actor rotates IPs and retries, and can fall back to residential proxy, but a busy moment can slow a run.
  • Related topics are experimental and often come back empty from Google; the field related_topics_status says what happened.
  • A comparison supports up to 5 terms.

Use it from code (API)

Every Apify Actor is also an API. Replace <YOUR_API_TOKEN> with the token from your Apify account (Settings, API & Integrations).

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('phantom-x64/google-trends-scraper').call({
"searchTerms": [
"bitcoin",
"chatgpt, gemini, claude"
],
"geo": "US",
"timeRange": "today 3-m"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('<YOUR_API_TOKEN>')
run = client.actor('phantom-x64/google-trends-scraper').call(run_input={
"searchTerms": [
"bitcoin",
"chatgpt, gemini, claude"
],
"geo": "US",
"timeRange": "today 3-m"
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

You can also start it from Make, Zapier, n8n or Google Sheets with the Apify integrations, schedule it, or call it as a tool from an AI agent through the Apify MCP server.

Support and feedback

Found a bug, need a new field or another source? Open an issue in the Issues tab of this Actor page. Reports with a run link are fixed fastest. If it saves you time, a short review on the Store page helps other people find it.