Google Trends Scraper: Interest Over Time & Trending Searches avatar

Google Trends Scraper: Interest Over Time & Trending Searches

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Google Trends Scraper: Interest Over Time & Trending Searches

Google Trends Scraper: Interest Over Time & Trending Searches

Google Trends data for any keyword: interest over time, interest by region, top and rising related queries, up to 5 terms compared on one scale. Plus trending searches by country (Trending Now) with the news behind them, and an only-new mode for schedules. Any country, time range or category.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Michael Costa

Michael Costa

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 hours ago

Last modified

Share

Google Trends Scraper gets Google Trends data for any keywords: interest over time, interest by region and top and rising related queries, for one term or up to five compared on one 0-100 scale. It also returns the trending searches in any country (Google's Trending Now), with the news behind each one. Live from trends.google.com; no login, no API key.

Input fields · API · Use it from Claude, ChatGPT or Cursor (MCP)

Jump to: Monitor · Fields · Price · How to use · Input · Output · Switching · AI agents (MCP) · Limits · FAQ

Try it in one click: the input comes pre-filled with coffee, tea in the US over the past 12 months. That's 1 result (both terms compared: timeline, regions, related queries), or about $0.002 (1 × $0.002, plus $0.00005 for the run start). Then replace it with what you actually want.

With Trending now: only new on, each run returns (and charges for) only the searches that started trending since the last run for that country. A run with nothing new costs only the $0.00005 start fee.

  1. Clear Search terms, put your countries in Trending now: countries ("trendingCountries": ["US", "GB"]), turn on Trending now: only new ("onlyNewTrending": true), and click Start. This first run returns everything trending now and is the baseline.
  2. Click Save as a new task (top right of the actor page). What has been returned is remembered per country, in a store in your account, for 14 days.
  3. In Apify Console, open Schedules, click Create new, set how often in Schedule setup (for example every hour), then Add your task.
  4. On the task, open the Integrations tab and pick where the new searches go:
    • Slack: click Configure, sign in, pick the workspace and channel, and the "run succeeded" event. A useful message: {{resource.statusMessage}} and a link, <https://console.apify.com/storage/datasets/{{resource.defaultDatasetId}}|new trending searches>.
    • Gmail: click Connect with Google, set the subject and body, and attach the dataset. It sends after each successful run.
    • HTTP webhook: event ACTOR.RUN.SUCCEEDED, your URL. Apify POSTs {"eventType": ..., "resource": {...}}; resource.defaultDatasetId is the run's dataset, and GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?format=json (with your API token) returns the new searches.

Apify's integrations fire after every successful run, including quiet ones: a quiet run's dataset is empty.

To track keywords instead, schedule a task with your Search terms (weekly with past-12-months, or daily with past-7-days): each run returns the latest numbers for every line.

One result per search line ("type": "search"):

FieldExampleNotes
titlecoffee vs teaThe terms on the line
terms["coffee", "tea"]Up to 5, compared on one 0-100 scale
interestOverTime[{"date": "Oct 5, 2025", "values": {"coffee": 63, "tea": 33}, "isPartial": false}, ...]One point per week (12 months), day, hour or minute, by time range
averages{"coffee": 78, "tea": 37}Average over the whole range
interestByRegion[{"geoCode": "US-WY", "name": "Wyoming", "values": {"coffee": 70, "tea": 30}}, ...]States/regions in a country, countries worldwide
relatedQueries{"coffee": {"top": [...], "rising": [...]}}Per term: query, value, formattedValue (+250%, Breakout), link
geo, timeRange, category, searchTypeUS, past-12-months, 0, webThe settings used
urlhttps://trends.google.com/trends/explore?q=coffee,tea&date=today%2012-m&geo=USThe same chart on Google Trends

One result per trending search ("type": "trending"): title, approxTraffic (200K+), startedAt, picture, news (title, url, source of the stories behind it), geo and url.

Every result also has a stable id and scrapedAt. The full list is under Output.

You pay per result: $2.00 per 1,000 results on the Free plan, $1.50 on Starter, $1.20 on Scale and $1.00 on Business, plus $0.00005 each time a run starts. A result is one search line (all the parts you asked for, up to 5 terms) or one trending search.

  • The example below: 1 result × $2.00/1,000 = $0.002, plus the start fee.
  • A month, for example: 50 keywords checked weekly = 200 results ≈ $0.40. Trending searches in the US every hour with only new on: if 20 are new each day, 600 a month ≈ $1.20, plus $0.04 of start fees.
  • Caps: Max results per run in the input, and Maximum cost per run in the run options. The run stops cleanly at whichever comes first.

Never charged: searches that fail (each is retried, then reported with the reason), and trending searches already returned when only new is on.

  1. Open Google Trends Scraper and click Try for free (or Start if you're signed in).
  2. Put your keywords in Search terms, one search per line. To compare terms, put up to 5 on one line, separated by commas.
  3. Pick the Country or region, Time range and, if you want, the Data to get, Search type (web, images, news, YouTube, Google Shopping) and Category.
  4. Optionally add countries to Trending now: countries.
  5. Click Start, then open the Output tab and export as JSON, CSV or Excel.

Example: coffee vs tea in the US

The pre-filled input:

{"searchTerms": ["coffee, tea"], "geo": "US", "timeRange": "past-12-months"}

It returned 1 result in 24 seconds (run on 2026-10-08): 53 weekly points for both terms, 51 states, and 25 top and rising related queries per term. It cost $0.002 at the price below. Long lists shortened:

{
"id": "b761562ca230db86",
"type": "search",
"title": "coffee vs tea",
"query": "coffee, tea",
"terms": ["coffee", "tea"],
"geo": "US",
"timeRange": "past-12-months",
"category": 0,
"searchType": "web",
"url": "https://trends.google.com/trends/explore?q=coffee,tea&date=today%2012-m&geo=US",
"interestOverTime": [
{"date": "Oct 5, 2025", "time": 1759622400, "values": {"coffee": 63, "tea": 33}, "isPartial": false},
{"date": "Oct 12, 2025", "time": 1760227200, "values": {"coffee": 64, "tea": 35}, "isPartial": false},
"... 53 weekly points in all, the last one:",
{"date": "Oct 4, 2026", "time": 1791072000, "values": {"coffee": 69, "tea": 31}, "isPartial": true}
],
"averages": {"coffee": 78, "tea": 37},
"interestByRegion": [
{"geoCode": "US-WY", "name": "Wyoming", "values": {"coffee": 70, "tea": 30}},
{"geoCode": "US-HI", "name": "Hawaii", "values": {"coffee": 71, "tea": 29}},
"... 51 in all"
],
"relatedQueries": {
"coffee": {
"top": [{"query": "coffee near me", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=coffee+near+me&date=today+12-m&geo=US"}, "..."],
"rising": [{"query": "top songs this week", "value": 5650, "formattedValue": "Breakout", "link": "https://trends.google.com/trends/explore?q=top+songs+this+week&date=today+12-m&geo=US"}, "..."]
},
"tea": {
"top": [{"query": "green tea", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=green+tea&date=today+12-m&geo=US"}, "..."],
"rising": [{"query": "how to make cold brew tea", "value": 2100, "formattedValue": "+2,100%", "link": "https://trends.google.com/trends/explore?q=how+to+make+cold+brew+tea&date=today+12-m&geo=US"}, "..."]
}
},
"scrapedAt": "2026-10-08T22:18:52.524706Z"
}

Google ranks some odd rising queries for "coffee" (top songs this week, home workout routines); the Google Trends page shows the same list for this search.

Input

FieldWhat it does
Search terms (searchTerms)One search per line: a term, or up to 5 comma-separated terms compared on one scale.
Country or region (geo)US, GB, US-CA...; empty = worldwide.
Time range (timeRange)past-hour to since-2004, or custom with customTimeRange (2025-01-01 2025-06-30).
Data to get (dataTypes)Any of interestOverTime, interestByRegion, relatedQueries (default: all).
Search type (searchType)web, images, news, youtube or shopping.
Category (category)Google Trends category number, e.g. 71 Food & Drink; 0 = all.
Trending now: countries (trendingCountries)Country codes for today's trending searches.
Trending now: only new (onlyNewTrending)Return only trending searches not returned before (per country).
Language (language)Locale for names in the results, e.g. en-US, de.
Max results per run (maxResults)Cap the total number of results.
{
"searchTerms": ["coffee", "iphone, samsung galaxy, pixel"],
"geo": "US",
"timeRange": "past-90-days",
"dataTypes": ["interestOverTime", "relatedQueries"],
"trendingCountries": ["US"],
"maxResults": 100
}

Output

A search line looks like the example above. A trending search (real output, 2026-10-08, news list shortened):

{
"id": "4926b11b5a537e7e",
"type": "trending",
"geo": "US",
"title": "new hampshire giant bluefin tuna",
"approxTraffic": "500+",
"picture": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTFjpIB9Hg-Ls28Y8yogr3QXiynuSbaLlsjVj75aLTuUnvM1iLGY1hSnA9EBxk",
"pictureSource": "13WHAM-TV",
"news": [
{
"title": "New Hampshire fisherman lands 1,116-pound bluefin tuna, breaking state record",
"url": "https://13wham.com/news/nation-world/new-hampshire-fisherman-lands-1116-pound-atlantic-bluefin-tuna-breaking-state-record-fish-fishing-food-overnight-charter-boat-boating-offshore-anglers-rye-harbor-freshwater-saltwater",
"source": "13WHAM-TV"
}
],
"startedAt": "2026-10-08T21:50:00Z",
"url": "https://trends.google.com/trends/explore?q=new%20hampshire%20giant%20bluefin%20tuna&date=now%201-d&geo=US",
"scrapedAt": "2026-10-08T22:19:19.098962Z"
}

Values are Google's: 0-100, relative to the highest point in that search (so two lines can't be compared with each other; put the terms on one line for that). isPartial: true marks a period that isn't over yet. id is stable across runs, so you can use it to deduplicate. The run's RUN_STATS record lists every search, what it returned and anything that failed, with the reason.

Most Google Trends tools take the same settings Google's own page does, just under other names. Here's where each one goes:

What you hadPut it here
A list of keywords, one search eachSearch terms (searchTerms), one keyword per line
Keywords to compare on one chartOne line, comma-separated: coffee, tea, matcha (up to 5)
A trends.google.com/trends/explore?... linkq= → one Search terms line; geo=, date=, cat=, gprop= → the rows below
Country, geo= (US, GB-ENG, empty for worldwide)Country or region (geo), same codes
Google's time codes, date=Time range (timeRange): now 1-H → past-hour, now 4-H → past-4-hours, now 1-d → past-day, now 7-d → past-7-days, today 1-m → past-30-days, today 3-m → past-90-days, today 12-m → past-12-months, today 5-y → past-5-years, all → since-2004
Start and end datestimeRange: "custom" and customTimeRange: "2025-01-01 2025-06-30"
Category number, cat=Category (category), the same number
Property, gprop= (empty, images, news, youtube, froogle)Search type (searchType): web, images, news, youtube, shopping
Daily or realtime trending searches for a countryTrending now: countries (trendingCountries), plus only new for schedules
Switches to skip parts of the dataData to get (dataTypes)

What's different in the output: each search line is one result holding the timeline, regions and related queries together (not one row per date), so you pay once per search, not per data point. To get one row per date or region in a sheet, run the dataset through Dataset Transformer. Related topics aren't returned (why).

Run it on a schedule, or from your own code

  1. Save your input as a task (Save as a new task, top right of the actor page) and add it to a schedule (Console → Schedules → Create new).
  2. Collect results: download the dataset as JSON, CSV or Excel; fetch the latest run's results from the API (GET https://api.apify.com/v2/actor-tasks/<task id>/runs/last/dataset/items?status=SUCCEEDED&format=json, with your API token); let a webhook tell your system when a run succeeds; or connect it to Make, Zapier or n8n through Apify's integrations.

Yes, through Apify's MCP server, from Claude, ChatGPT, Cursor or any other MCP client. Add this to your client's MCP configuration (or let the agent find it with the server's actor search); your client signs you in to Apify:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=humble-echidna/google-trends"
}
}
}

To use an Apify API token instead of signing in, add "headers": {"Authorization": "Bearer <APIFY_TOKEN>"} next to url.

An agent should pass the terms and settings it needs, e.g. {"searchTerms": ["electric bike, e-scooter"], "geo": "DE", "timeRange": "past-5-years", "dataTypes": ["interestOverTime"]}.

Who it's for

SEO and content teams choosing topics, marketers timing campaigns, e-commerce sellers checking seasonality before buying stock, analysts and journalists comparing interest across places, and anyone whose dashboard or AI agent needs Google Trends numbers on a schedule instead of copying them from the website.

Why this one?

  • It finishes. It reads the data Google Trends' own page loads, with no browser, so a search takes a few seconds. Searches Google throttles are tried again from another IP before anything is reported as failed. On 2026-10-08, a run of 12 searches and the US trending list took 65 s with no failures.
  • Comparisons and every search type. Up to 5 terms on one scale per line, any country or region, any time range including custom dates, web, image, news, YouTube and Shopping search, and categories.
  • Trending now with only new. Schedule it hourly and get just the searches that started trending since the last run, with the news behind them.
  • Low, simple price. From $1.00 to $2.00 per 1,000 results by Apify plan, $0.00005 per run: a single check costs $0.002 at most.
  • Reliable. One failing search never affects the others in your run. The run log and the RUN_STATS record say exactly which search had a problem and why.

Limits

  • No related topics. Google sends related topics only to a full browser; this actor uses none, to stay fast and cheap. Related queries are included.
  • Relative numbers only. Google Trends gives 0-100 values relative to each search's peak, not search volumes.
  • Up to 5 terms per line, Google's own limit for one comparison.
  • Trending now is Google's list of the past day or so for a country (about 10 searches in the US feed on 2026-10-08), not an archive.
  • If Google keeps throttling a search after the retry, it's reported as failed (and not charged); run it again later.

FAQ

The actor reads public, logged-out Google Trends data, the same data trends.google.com loads in a browser, plus Google's published Trending Now RSS feed. Google's Terms of Service ask that automated access follow the machine-readable instructions on its pages (robots.txt); trends.google.com's robots.txt disallows only the /explore web pages, which this actor never requests. It identifies itself honestly (User-Agent HumbleEchidnaApify), makes one request at a time, and collects no personal data. How you use the data is up to you and the laws that apply to you.

Google announced a Trends API in 2025, but it's an alpha open only to approved testers. This actor works for anyone now, through Apify's API, schedules and integrations.

Why are the numbers different from yesterday's run?

Google Trends computes its numbers from a sample of searches, so values can move a little between requests, and the latest point (isPartial: true) keeps changing until its period ends.

Why did a search fail?

Usually Google throttled it, and it still did after the retry from another IP. The run log and the RUN_STATS record name the search and the reason; every other search in the run is unaffected and a failed search isn't charged. Please open an issue with the input you used if it keeps happening.

Can I get only new results since my last run?

For trending searches, yes: turn on Trending now: only new (how). For keyword searches, each run returns the current numbers; schedule it and compare runs in your sheet or database.

ActorUse it when
AI Brand Visibility TrackerYou want to know whether ChatGPT-style AI answers mention your brand
SEO Audit CrawlerYou want to check the pages you'll write about the trending topics
Website Change MonitorYou want to know when a competitor's page changes
Dataset TransformerYou want the results flattened into a CSV or Excel sheet your way

Feedback and support

Found a bug, or need a field or setting that isn't here? Open an issue on the Issues tab with the input you used.

Versions

Current version: 0.1. See the Changelog tab for what changed in each version.