Google Trends Scraper (Interest, Regions, Related) avatar

Google Trends Scraper (Interest, Regions, Related)

Pricing

from $2.00 / 1,000 search results

Go to Apify Store
Google Trends Scraper (Interest, Regions, Related)

Google Trends Scraper (Interest, Regions, Related)

Compare up to 5 keywords per search on Google Trends: interest over time (one row per date, one column per keyword), interest by region, related queries and related topics. Any country, time range, category or property. Fast, no browser.

Pricing

from $2.00 / 1,000 search results

Rating

0.0

(0)

Developer

Neatfeeds

Neatfeeds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Get Google Trends data as clean rows: interest over time for up to 5 keywords side by side, interest by country or region, and the top and rising related queries, for any location, time range, category and Google property (Web, YouTube, News, Images, Shopping).

One input, one dataset, every row tagged with a type. No browser, no Google account, no API key.

What you can use it for

  • SEO and content planning: find which topics are growing, compare keyword variants before writing, and mine rising related queries for new article ideas.
  • E-commerce seasonality: see when demand for a product peaks in each country, and plan stock, ads and promotions around it.
  • Market research: compare brands, products or categories on the same 0-100 scale and see where each one is strongest.
  • Data for AI agents and dashboards: a predictable JSON schema that an agent, a spreadsheet or a BI tool can read without cleaning.

Input

FieldWhat it does
keywords (required)Terms to compare. Up to 5 share one search and one 0-100 scale, as on the Trends website. If you pass more, they are split into groups of 5, and each group gets its own searchId.
geoEmpty for worldwide, a country (US, IT, DE) or a region (US-CA, GB-ENG).
timeRangenow 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m (default), today 5-y, all, or custom dates "2025-01-01 2025-12-31".
categoryTrends category id, 0 = all (e.g. 71 Food & Drink, 18 Shopping).
propertyweb (default), youtube, news, images, froogle (Google Shopping).
includeSections to return: interestOverTime, interestByRegion, relatedQueries (default: all three), and optionally relatedTopics.
maxResultsStop after this many rows (default 1000).
proxyConfigurationApify Proxy by default. You don't need to change it.

Example:

{
"keywords": ["coffee", "tea"],
"geo": "US",
"timeRange": "today 12-m",
"include": ["interestOverTime", "interestByRegion", "relatedQueries"]
}

Output

One row per logical record. Filter on type to get one table per section; the Console has a ready-made view for each. Every row also carries searchId, keywords, geo, timeRange, category, property, trendsUrl (the same chart on Google Trends) and scrapedAt.

These examples are real rows from a run with {"keywords": ["coffee", "tea"], "timeRange": "today 3-m"} (worldwide):

interestOverTime: one row per date, one value per keyword (wide format). In a CSV or Excel export, values becomes the columns values/coffee and values/tea.

{
"type": "interestOverTime",
"date": "2026-07-19",
"timestamp": 1784419200,
"formattedTime": "Jul 19, 2026",
"values": { "coffee": 73, "tea": 35 },
"isPartial": false,
"searchId": 1,
"keywords": ["coffee", "tea"],
"geo": "WORLDWIDE",
"timeRange": "today 3-m",
"category": 0,
"property": "web",
"trendsUrl": "https://trends.google.com/trends/explore?date=today+3-m&q=coffee%2Ctea&hl=en-US",
"scrapedAt": "2026-10-19T22:32:36.607Z"
}

interestByRegion: one row per country or region.

{
"type": "interestByRegion",
"geoCode": "MY",
"geoName": "Malaysia",
"values": { "coffee": 73, "tea": 27 },
"valueScale": "sharePercent",
"searchId": 1
}

relatedQueries: top and rising queries for each keyword.

{
"type": "relatedQueries",
"keyword": "coffee",
"ranking": "top",
"position": 1,
"query": "coffee shop",
"value": 100,
"formattedValue": "100",
"isBreakout": null,
"link": "https://trends.google.com/trends/explore?q=coffee+shop&date=today+3-m",
"searchId": 1
}
{
"type": "relatedQueries",
"keyword": "coffee",
"ranking": "rising",
"position": 1,
"query": "flyers mascot",
"value": 9750,
"formattedValue": "Breakout",
"isBreakout": true,
"link": "https://trends.google.com/trends/explore?q=flyers+mascot&date=today+3-m",
"searchId": 1
}

relatedTopics rows add topicTitle, topicType and topicId in place of query.

That run returned 235 rows: 93 dates, 57 countries and 85 related queries. The dataset schema describes every field.

Pricing

Pay per result: $2.00 per 1,000 rows ($0.002 per row), plus $0.00005 per run start. You pay nothing else: proxies and compute are included.

RunRowsCost
1 keyword, past 7 days, interest over time only, maxResults: 2020about $0.04
1 keyword, past 12 months, interest over time only~53about $0.11
2 keywords, past 3 months, worldwide, all default sections235about $0.47
5 keywords, past 12 months, one country, all default sections~340about $0.68

On average, a full search with the default sections returns 230-355 rows (more keywords mean more related queries) and costs $0.46-0.71. Turn off the sections you don't need (include) or set maxResults to pay less. If you set a spending limit on the run, the actor stops cleanly when it reaches it and keeps everything collected so far.

Why this actor

  • No browser, so it's fast and cheap. It reads the same JSON that the Trends website loads. A search takes a few seconds and uses very little memory.
  • It handles blocks for you. Google rate-limits each IP. Every search runs on its own proxy session with a fresh cookie. When Google answers 429, the actor switches to a new IP and downloads only the sections still missing, so one slow section doesn't throw away the others.
  • Spreadsheet-ready. One row per date with one column per keyword, ISO dates in UTC, and English labels whatever country the proxy is in. Every row links back to the chart on Google Trends so you can check it.
  • Predictable for agents. Fixed field names, a type on every row, and nulls instead of missing keys.

FAQ

What do the 0-100 values mean? Google Trends never gives absolute search volumes. Over time, 100 is the highest point of the whole comparison and 50 means half as popular. Values compare only within the same searchId, so put the keywords you want to compare in the same group of 5. By region, a single keyword is scored 0-100 against the top region (valueScale: "relativeInterest"). For several keywords Google returns each keyword's share of that region's searches, in percent (valueScale: "sharePercent").

Why are some values 0? There was not enough search volume for that keyword, date or region. Regions with no data at all are left out.

What does "Breakout" mean in rising queries? Google shows "Breakout" when a query grew by more than 5000%. The row has isBreakout: true, and value holds the growth number Google uses to rank it.

Why are related topics off by default? Google currently shows related topics only to signed-in users and returns an empty list to everyone else. You can still add relatedTopics to include, and you are billed only for rows that are actually returned.

How do I cap my spending? Set maxResults, or set a maximum cost when you start the run (Console or API). The actor checks the limit before saving each batch and stops cleanly.

Can I use it through the API, Make, Zapier or n8n? Yes. Call the actor with the JSON input above through the Apify API, the official clients, or any Apify integration. Then read the dataset as JSON, CSV or Excel, optionally filtered by type. You can also schedule runs on Apify to track trends daily or weekly.

Is the data the same as on the website? Yes. It comes from the same endpoints the Trends website uses. Because Trends samples searches, two runs a few hours apart can differ by a few points, just as two page loads can.

This actor reads public Google Trends data and is not affiliated with Google.