Google Trends Scraper - Interest, Regions, Related, Trending avatar

Google Trends Scraper - Interest, Regions, Related, Trending

Pricing

from $1.26 / 1,000 results

Go to Apify Store
Google Trends Scraper - Interest, Regions, Related, Trending

Google Trends Scraper - Interest, Regions, Related, Trending

Scrape Google Trends via its JSON API, no browser. Input: search terms (or up to 5 compared), geo, time range, category, property; or countries for Trending Now. Output: one item per term or comparison with interest over time, by region, related queries and topics; or one per trending search.

Pricing

from $1.26 / 1,000 results

Rating

0.0

(0)

Developer

Artificially

Artificially

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Google Trends Scraper – Interest Over Time, Regions, Related Queries & Trending Now

Get Google Trends data as clean JSON without a browser: interest over time, interest by region, related queries and related topics for any keyword (or up to 5 keywords compared on one chart), plus the Trending Now list of daily trending searches for any country. Every run is quick because the actor talks to the same JSON endpoints the Google Trends website uses, not a headless browser that loads the full page.

Built by Artificially | Follow us on X @artificially_io

Use with AI agents (MCP)

This actor works as a tool for Claude, ChatGPT, Cursor and other AI agents through Apify's MCP server. Ask something like "is interest in electric bikes growing in Germany, and what are people searching for with it?" and the agent calls it for you. Set compactOutput: true so each result is a small summary (averages, a date+value timeline, top regions, top and rising queries) that fits easily in the agent's context.

Quick setup (sign in with your Apify account when asked):

  • Claude (claude.ai or Claude Desktop): Settings → Connectors → Add custom connector, and paste https://mcp.apify.com?tools=artificially/google-trends-scraper
  • Claude Code or Cursor via the Apify CLI (latest version, apify upgrade): apify mcp install claude-code --tools artificially/google-trends-scraper (use cursor instead of claude-code for Cursor)
  • Any MCP client (Cursor, VS Code, Windsurf):
{
"mcpServers": {
"apify": { "url": "https://mcp.apify.com?tools=artificially/google-trends-scraper" }
}
}

Try asking:

  • "Compare Google Trends interest for ChatGPT, Gemini and Claude over the last 12 months."
  • "What is trending on Google in the US right now?"

Why this actor

  • No browser, no timeouts – direct JSON requests, so a keyword takes seconds, not minutes. No page screenshots, no 3-minute page loads.
  • Everything in one item – one item per keyword with the full timeline, the region table, and top + rising related queries and topics. No need to join four datasets.
  • Real comparisons – turn on compareTerms and up to 5 terms share the same 0-100 scale, exactly like comparing terms in the Google Trends UI.
  • Trending Now – daily trending searches for any country with search volume, % increase, start time, category, related searches and news articles.
  • All the filters – location (country, state, US metro), time range (past hour to 2004-present, or custom dates), category, and search property (web, images, news, YouTube, Shopping).
  • You only pay for results – keywords that fail or have too little search volume are listed for free in FAILED_QUERIES and never charged.
  • Built for rate limits – every request is paced, and when Google answers "too many requests" the actor moves to a fresh proxy session and retries instead of failing the run.

Use cases

  • SEO and content – find rising queries and breakout topics before they peak, and plan content around seasonal demand.
  • Market research – compare brands, products or categories on the same scale, by country or state.
  • Product and e-commerce – spot seasonality, validate demand for a new product, and pick the regions to launch in.
  • News and social monitoring – schedule Trending Now every hour and pipe new trends into Slack, Sheets or your own app.
  • Finance and data science – feed search-interest time series into models and dashboards.

Input

FieldTypeDescriptionDefault
modestringexplore (search terms) or trendingNow (trending searches by country)explore
searchTermsarrayKeywords (or topic IDs like /m/0dr90d)–
compareTermsbooleanCompare terms in groups of up to 5 on one shared scalefalse
geostringCountry (US), subregion (US-CA), US metro (US-NY-501) or empty for worldwideworldwide
timeRangestringnow 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all, customtoday 12-m
customTimeRangestringWith timeRange: custom: "YYYY-MM-DD YYYY-MM-DD"–
categoryintegerGoogle Trends category ID (0 = all)0
propertystringweb, images, news, youtube, froogle (Shopping)web
includeInterestOverTimebooleanTime series + averagestrue
includeInterestByRegionbooleanInterest per country / subregiontrue
includeRelatedQueriesbooleanTop and rising related queriestrue
includeRelatedTopicsbooleanTop and rising related topicstrue
regionResolutionstringauto, COUNTRY, REGION, CITY, DMAauto
includeLowVolumeRegionsbooleanAlso list regions with low search volumefalse
maxRelatedPerListintegerCap each top/rising listall (up to 25)
trendingNowCountriesarrayCountries for Trending Now mode, e.g. ["US", "GB"]["US"]
trendingNowHoursstring4, 24, 48 or 168 hours24
trendingNowCategorystringTrending category ID (17 Sports, 18 Technology, …)all
trendingNowActiveOnlybooleanOnly trends that are still risingfalse
trendingNowIncludeNewsbooleanAdd picture and news articles for the top trendstrue
maxItemsintegerStop after this many itemsno limit
compactOutputbooleanSlim items for AI agentsfalse
maxConcurrencyintegerParallel proxy sessions (1–10)3
proxyConfigurationobjectApify datacenter proxy by default; RESIDENTIAL optionaldatacenter

Example: compare terms in the US over 12 months

{
"searchTerms": ["chatgpt", "gemini", "claude"],
"compareTerms": true,
"geo": "US",
"timeRange": "today 12-m"
}
{
"searchTerms": ["world cup", "olympics"],
"timeRange": "custom",
"customTimeRange": "2024-01-01 2024-12-31",
"property": "news",
"maxRelatedPerList": 10
}
{
"mode": "trendingNow",
"trendingNowCountries": ["US", "GB"],
"trendingNowHours": "24"
}

Output

Explore item (one per term, or one per comparison group)

{
"type": "explore",
"searchTerm": "bitcoin",
"searchTerms": ["bitcoin"],
"isComparison": false,
"geo": "US",
"timeRange": "today 12-m",
"resolvedTime": "2025-09-23 2026-09-23",
"category": 0,
"property": "web",
"trendsUrl": "https://trends.google.com/trends/explore?date=today+12-m&geo=US&q=bitcoin&hl=en-US",
"interestOverTime": {
"resolution": "WEEK",
"averages": [{ "term": "bitcoin", "value": 31 }],
"timeline": [
{
"date": "2025-09-21T00:00:00.000Z",
"timestamp": 1758412800,
"formattedTime": "Sep 21 – 27, 2025",
"values": [26],
"hasData": [true],
"isPartial": false
}
]
},
"interestByRegion": {
"resolution": "REGION",
"regions": [
{ "geoCode": "US-WY", "geoName": "Wyoming", "values": [100], "hasData": [true], "coordinates": null }
]
},
"relatedQueries": [
{
"term": "bitcoin",
"top": [{ "query": "bitcoin price", "value": 100, "formattedValue": "100", "isBreakout": false, "trendsUrl": "https://trends.google.com/trends/explore?q=bitcoin+price&date=today+12-m&geo=US" }],
"rising": [{ "query": "bitcoin etf news", "value": 350, "formattedValue": "+350%", "isBreakout": false, "trendsUrl": "https://trends.google.com/trends/explore?q=bitcoin+etf+news&date=today+12-m&geo=US" }]
}
],
"relatedTopics": [{ "term": "bitcoin", "top": [], "rising": [] }],
"warnings": null,
"scrapedAt": "2026-09-23T11:20:00.000Z"
}

In a comparison, values and hasData arrays follow the order of searchTerms, all on the same 0-100 scale, and relatedQueries / relatedTopics contain one block per term.

FieldDescription
searchTermThe term, or the compared terms joined with ", "
resolvedTimeThe exact date range Google used
interestOverTimeresolution (MINUTE, HOUR, DAY, WEEK, MONTH), averages per term and the timeline (0-100 relative interest; isPartial marks the unfinished last period)
interestByRegionresolution and regions with geoCode, geoName, values (and coordinates for cities)
relatedQueriesPer term: top (relative 0-100) and rising (growth %, isBreakout for +5000% and more)
relatedTopicsSame as related queries, with the topic title, type and Knowledge Graph mid
warningsBlocks Google could not return for this query (the rest of the item is still valid)
{
"type": "trendingNow",
"searchTerm": "lynx vs fever",
"geo": "US",
"rank": 3,
"searchVolume": 200000,
"increasePercentage": 1000,
"startedAt": "2026-09-22T23:00:00.000Z",
"endedAt": null,
"isActive": true,
"categories": ["Sports"],
"relatedQueries": ["fever vs lynx", "caitlin clark", "wnba playoffs"],
"articleCount": 12,
"picture": "https://encrypted-tbn0.gstatic.com/images?q=...",
"pictureSource": "ESPN",
"news": [{ "title": "Fever beat Lynx in Game 3", "url": "https://www.espn.com/...", "source": "ESPN", "picture": "https://encrypted-tbn0.gstatic.com/images?q=..." }],
"trendsUrl": "https://trends.google.com/trends/explore?q=lynx%20vs%20fever&date=now%201-d&geo=US&hl=en-US",
"hours": 24,
"scrapedAt": "2026-09-23T11:33:45.451Z"
}

searchVolume is Google's lower bound ("200K+" becomes 200000). news is filled for the trends that appear in Google's Trending Now feed (usually the top ~20) and null for the rest.

The key-value store also contains:

  • SUMMARY – counts, limits reached, and request / rate-limit statistics.
  • FAILED_QUERIES – terms or countries that failed or had no data, with a reason (no_data, rate_limited, invalid_input, http_error). These are never charged.

Pricing

This actor uses pay-per-event pricing: a tiny fee per run plus a fee per item saved. One item = one search term with every data block you asked for (timeline, regions, related queries and topics), or a whole comparison of up to 5 terms, or one Trending Now search. Terms with no data and failed queries are never charged. Set a maximum cost per run in Apify Console and the actor stops cleanly when it is reached. See the Pricing tab for current prices.

FAQ

Why are the numbers 0-100 and not search counts? That is how Google Trends works: values are relative interest, where 100 is the peak for the chosen terms, place and time. Compare terms with compareTerms: true to put them on the same scale. Trending Now gives approximate absolute volumes (searchVolume).

Why did a term return no data? Google shows nothing for terms with very low search volume in the chosen place and time. These are listed in FAILED_QUERIES with reason no_data and are not charged. Try a longer time range, a bigger region or a broader term.

Why is relatedTopics empty? Google leaves the related topics list empty for many queries, also in its own UI. Related queries are usually available.

Do I need a residential proxy? Usually not. Google limits Trends requests per IP; the actor paces requests and rotates to a new Apify datacenter proxy session whenever it is rate-limited. If SUMMARY shows many rate-limited requests or some queries fail with rate_limited, run again with the RESIDENTIAL proxy group.

Can I use a Google Trends URL? Copy the q, geo, date, cat and gprop values from the URL into searchTerms, geo, timeRange (or customTimeRange), category and property.

Is this legal? The actor reads the same public, aggregated and anonymized data that anyone can see on trends.google.com. It does not log in and collects no personal data. You are responsible for using the data in line with applicable laws and Google's terms.

Support

Missing a feature or found a query that does not work? Open an issue on the actor's Issues tab – we usually respond within a day.

  • Google Jobs Scraper: job listings from Google Jobs search, with salaries and apply links.
  • Product Hunt Scraper: new product launches, upvotes and makers, to pair trend spikes with new products.