# Google Trends Scraper - Interest, Regions & Related Searches (`automly/google-trends-scraper`) Actor

Scrape Google Trends: interest over time, interest by country, region, metro or city, related queries and topics, for up to 5 compared terms, plus trending searches by country. No login.

- **URL**: https://apify.com/automly/google-trends-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.02 / 1,000 interest over times

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Trends Scraper - Interest, Regions & Related Searches

### What is Google Trends Scraper?

**Google Trends Scraper** is a tool that lets you **scrape interest over time, interest by region, related queries, related topics and trending searches from Google Trends**, for any search term and **up to 5 terms compared on one scale**, plus **what is trending now in any country**. Add your search terms, pick a region, a time range (from the past hour to 2004 - present, or your own dates), a category and a search type (web, images, news, Google Shopping or YouTube), click **Start**, and download the data as Excel, CSV or JSON.

- ⚡ **Fast:** 23 searches with 29 terms, all data types, about 4,200 rows in under 20 seconds (our tests)
- 📊 **Spreadsheet-ready:** one row per date, region, related query or trending search, so every export opens cleanly in Excel or Google Sheets
- ⚖️ **Real comparisons:** up to 5 terms on one 0-100 scale, exactly like Google Trends' Compare
- 🔓 **No login:** no Google account needed
- 💸 **Free to try:** the $5 of free usage every Apify account gets each month covers about 200,000 interest over time rows

### What can Google Trends Scraper do?

- **Scrape Google Trends interest over time** for any keyword: hourly, daily, weekly or monthly values from 0 to 100
- **Compare up to 5 keywords in Google Trends** on one scale, like `coffee, tea` or `nike, adidas, puma`
- **Get Google Trends interest by region**: by country worldwide, by state or province, by US metro area (DMA) or by city, with coordinates for cities
- **Find related queries and related topics**, top and rising, including **Breakout** searches
- **Scrape Google trending searches by country** (Trending now): search volume, growth, start time, category and the searches behind each trend
- **Filter like Google Trends**: region, time range, custom dates, category and search type (web, images, news, Google Shopping, YouTube)
- **Paste Google Trends links**: any Explore or Trending now link runs with its own settings
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Google Trends?

| | | |
|---|---|---|
| 📈 Interest over time (0-100) | 📅 Date and period label | ⏳ Partial (still counting) flag |
| 🌍 Interest by country | 🗺️ Interest by state or province | 🏙️ Interest by metro area and city |
| 📍 City coordinates | 🔍 Related queries (top and rising) | 🧩 Related topics (top and rising) |
| 🚀 Breakout searches | 🔗 Google Trends link for every related query | 🔥 Trending searches by country |
| 📊 Trending search volume | 📈 Trending growth in percent | 🏷️ Trending categories and breakdown |

### How to scrape Google Trends

1. [Create a free Apify account](https://console.apify.com/sign-up) (no credit card needed).
2. Open **Google Trends Scraper**.
3. Enter search terms, one search per line; put up to 5 terms on one line, separated by commas, to compare them. Or paste Google Trends links, or add country codes for trending searches.
4. Set the region, time range, category and search type, and choose the data you want.
5. Click **Start**, then download the data as Excel, CSV, JSON, HTML or XML.

### How much does it cost to scrape Google Trends data?

You pay only for the rows you get, with one price per kind of row:

| Apify plan | Interest over time per 1,000 | Interest by region per 1,000 | Related queries per 1,000 | Related topics per 1,000 | Trending searches per 1,000 |
|---|---|---|---|---|---|
| Free | $0.025 | $0.025 | $0.025 | $0.025 | $0.25 |
| Starter (Bronze) | $0.022 | $0.022 | $0.022 | $0.022 | $0.22 |
| Scale (Silver) | $0.02 | $0.02 | $0.02 | $0.02 | $0.20 |
| Business (Gold) and higher | $0.017 | $0.017 | $0.017 | $0.017 | $0.17 |

Platform usage is included in these prices, so you pay nothing else. For example, 10,000 interest over time rows cost $0.25 on the Free plan and $0.17 on Business; trending searches are priced higher, so 1,000 of them cost $0.25 on the Free plan. Turn off the data you do not need to keep a run cheaper, and you can also set a maximum cost per run.

Every Apify account gets **$5 of free usage each month**. See the **Pricing** tab for details.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **Search terms** | One search per line. `coffee` is one search; `coffee, tea` compares two terms on one scale (up to 5) |
| **Google Trends links** | Explore links (`https://trends.google.com/trends/explore?q=coffee,tea&geo=US`) run with their own terms, region, dates, category and search type; Trending now links (`https://trends.google.com/trending?geo=GB`) give that country's trending searches |
| **Region** | A country code (`US`, `GB`, `DE`), a subregion (`US-CA`, `GB-SCT`) or a US metro (`US-NY-501`). Empty means worldwide |
| **Time range** | Past hour, 4 hours, day, 7 days, 30 days, 90 days, 12 months, 5 years, 2004 - present, or a custom date range |
| **Start date / End date** | Your own dates for a custom range (from 2004-01-01) |
| **Category** | A Google Trends category number, like `71` for Food & Drink (0 = all categories); see the list below |
| **Search type** | Web search, Image search, News search, Google Shopping or YouTube search |
| **Interest over time / by region, Related queries / topics** | Choose which data to scrape |
| **Region level** | Countries, subregions (states, provinces), metro areas (US) or cities |
| **Include low search volume regions** | Also list regions with little search volume |
| **Trending searches for countries** | Country codes for the Trending now lists, with the period (4 hours to 7 days) and an optional category |
| **Language** | Language for region names and labels, like `en-US`, `de` or `fr` |

Compare three brands in the United States over the past 5 years:

```json
{
  "searchTerms": ["nike, adidas, puma"],
  "geo": "US",
  "timeRange": "today 5-y"
}
```

Interest by city for two separate searches, with your own dates:

```json
{
  "searchTerms": ["bitcoin", "electric cars"],
  "timeRange": "custom",
  "startDate": "2024-01-01",
  "endDate": "2024-06-30",
  "regionLevel": "city",
  "interestOverTime": false,
  "relatedQueries": false
}
```

What is trending right now in the US, the UK and India:

```json
{
  "trendingCountries": ["US", "GB", "IN"],
  "trendingHours": "24"
}
```

### ⬆️ Output

Every data point is one row, and the `type` field says which kind it is. Every keyword row also carries its search's settings (`searchTerms`, `geo`, `timeRange`, `category`, `searchType`), so you can mix many searches in one table.

Interest over time (one row per term per date):

```json
{
  "type": "interestOverTime",
  "keyword": "coffee",
  "date": "2025-09-28T00:00:00Z",
  "dateLabel": "Sep 28 – Oct 4, 2025",
  "value": 70,
  "hasData": true,
  "isPartial": false,
  "searchTerms": "coffee, tea",
  "geo": "US",
  "timeRange": "today 12-m",
  "category": 0,
  "searchType": "web",
  "scrapedAt": "2026-10-01T16:24:16Z"
}
```

Interest by region (one row per region, highest first):

```json
{
  "type": "interestByRegion",
  "keyword": "coffee",
  "regionLevel": "subregion",
  "regionCode": "US-WY",
  "regionName": "Wyoming",
  "value": 100,
  "latitude": null,
  "longitude": null,
  "searchTerms": "coffee, tea",
  "geo": "US",
  "timeRange": "today 12-m"
}
```

A related query:

```json
{
  "type": "relatedQuery",
  "keyword": "tea",
  "ranking": "top",
  "rank": 1,
  "query": "green tea",
  "value": 100,
  "formattedValue": "100",
  "isBreakout": false,
  "link": "https://trends.google.com/trends/explore?q=green+tea&date=today+12-m&geo=US",
  "searchTerms": "coffee, tea",
  "geo": "US",
  "timeRange": "today 12-m"
}
```

A trending search:

```json
{
  "type": "trendingSearch",
  "country": "US",
  "rank": 2,
  "title": "pentobarbital",
  "searchVolume": 200000,
  "increasePercent": 1000,
  "startedAt": "2026-10-01T02:10:00Z",
  "endedAt": null,
  "isActive": true,
  "categories": "Law and Government",
  "trendBreakdown": "pentobarbital, is christa pike still alive, execution failed, lethal injection",
  "exploreLink": "https://trends.google.com/trends/explore?q=pentobarbital&date=now%201-d&geo=US",
  "hours": 24,
  "scrapedAt": "2026-10-01T16:24:15Z"
}
```

Related topic rows have `topicTitle`, `topicType` and `topicId` in place of `query`. The **Overview** tab lists every row, and the **Interest over time**, **Interest by region**, **Related queries**, **Related topics** and **Trending now** tabs show each kind as its own table.

### How many rows does a search give?

It depends on the time range and region. A single term for the past 12 months in one country gives about 150 rows: 52-53 weekly values, one row per subregion with data (51 in the US), and up to 25 top and 25 rising related queries. Each compared term adds its own rows. Past 7 days gives hourly values (about 170 per term), past 5 years weekly values (about 260), 2004 - present monthly values (about 270). Regions Google has no data for are left out. A trending country gives every trending search of the period: a few dozen for 4 hours, hundreds for 7 days.

### Google Trends categories

| Number | Category | Number | Category | Number | Category |
|---|---|---|---|---|---|
| 0 | All categories | 3 | Arts & Entertainment | 47 | Autos & Vehicles |
| 44 | Beauty & Fitness | 22 | Books & Literature | 12 | Business & Industrial |
| 5 | Computers & Electronics | 7 | Finance | 71 | Food & Drink |
| 8 | Games | 45 | Health | 65 | Hobbies & Leisure |
| 11 | Home & Garden | 13 | Internet & Telecom | 958 | Jobs & Education |
| 19 | Law & Government | 16 | News | 299 | Online Communities |
| 14 | People & Society | 66 | Pets & Animals | 29 | Real Estate |
| 533 | Reference | 174 | Science | 18 | Shopping |
| 20 | Sports | 67 | Travel | | |

Subcategories work too: open the category in Google Trends and copy the `cat=` number from the link.

### How can I use Google Trends data?

- **Keyword research and SEO:** find rising searches and Breakout queries before your competitors do
- **Content planning:** see when interest in a topic peaks each year and where it is highest
- **Market research:** compare brands, products or competitors on one scale, country by country
- **Local marketing:** find the states, metro areas and cities where your product is searched most
- **News and social media monitoring:** track what is trending now in every country, hour by hour
- **Data science and forecasting:** long weekly and monthly series since 2004 for models and dashboards

### Scrape more Google and keyword data

| Actor | What it gets |
|---|---|
| [Google News Scraper API - Full Text, Monitoring & RSS](https://apify.com/automly/google-news-scraper-api) | Google News articles by keyword, with publisher links and full text |
| [Google Ads Transparency Scraper](https://apify.com/automly/google-ads-transparency-scraper) | Competitors' Google ads, advertisers and regions from the Ads Transparency Center |
| [Ahrefs SEO Scraper - DR, Backlinks, Keywords, Traffic](https://apify.com/automly/ahrefs-seo-scraper) | Keyword ideas, keyword difficulty, backlinks and organic traffic |
| [YouTube Search Scraper - Videos, Channels & Playlists](https://apify.com/automly/youtube-search-results-scraper) | Ranked YouTube search results with views and upload dates |
| [Reddit Keyword + Comment Thread Monitor](https://apify.com/automly/reddit-keyword-comment-monitor) | New Reddit posts and comments that mention your keywords |
| [Hacker News Trends API](https://apify.com/automly/hacker-news-trends-api) | Trending Hacker News stories and discussions by keyword |

### ❓FAQ

#### How much does it cost to scrape Google Trends?

Keyword rows cost $0.025 per 1,000 and trending searches $0.25 per 1,000 on the Free plan, with lower prices on paid plans. See **How much does it cost to scrape Google Trends data?** above.

#### How many results can I get from Google Trends?

Everything Google Trends shows for your settings: every date in the time range, every region with data, up to 25 top and 25 rising related queries per term, and every trending search of the chosen period. A single term for the past 12 months in one country gives about 150 rows.

#### Are values from different searches comparable?

Values are 0-100 within one search: 100 is the highest point of that search. Terms on the same line (`coffee, tea`) share one scale, so they can be compared directly. Terms on separate lines each have their own scale. Google Trends compares at most 5 terms at once.

#### Why are some values 0 or some regions missing?

Google Trends shows 0 when a term has too little search volume for that time or place, and leaves out regions without enough data. A term with no data at all gives no rows, and the run report lists it under `noData`. Turn on **Include low search volume regions** to see more regions.

#### Why are there no related topics?

Google Trends often shows no related topics to visitors who are not signed in to a Google account. When Google shows none, the run report lists them under `noData`. Related topics are available for searches with a single term.

#### Which countries have trending searches?

Every country that has a Trending now page on Google Trends. A country without one is listed in the run report under `notFound`, and the run goes on with the others.

#### Do I need a Google account?

No. You get the same public data anyone can see on Google Trends without signing in.

#### Can I call it as an API?

Yes. Run it through the Apify API from any language, or use its real-time API, `/explore?q=coffee,tea&geo=US` and `/trending?geo=US`, which answers with the rows directly.

#### Can I connect Google Trends Scraper to other tools or AI agents?

Yes. Start runs and download results with the Apify API or the Python and JavaScript clients, send results to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations and webhooks, or let AI assistants and agents run it through the Apify MCP server at [mcp.apify.com](https://mcp.apify.com).

#### Is it legal to scrape Google Trends?

This scraper only collects public, aggregated search statistics that anyone can see on Google Trends, not data about individual users. Trending searches and related queries can still name real people, and personal data may be protected by laws such as GDPR, so only use the data for a legitimate reason and ask a lawyer if you are unsure. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

Google Trends Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by Google.

#### Something isn't working?

Open the **Issues** tab and tell us your input and what you expected. We read every issue and usually reply within a day.

### ⭐ Your feedback

Have an idea or found a problem? Tell us on the **Issues** tab. If Google Trends Scraper saved you time, a short review on the **Reviews** tab helps other people find it.

# Actor input Schema

## `searchTerms` (type: `array`):

Enter one search per line. To compare terms on one scale, put up to 5 on the same line separated by commas ("coffee, tea"). Each line is a separate search.

## `startUrls` (type: `array`):

Paste Google Trends Explore links (trends.google.com/trends/explore?q=...) to scrape them with their own terms, region, time range, category and search type, or Trending now links (trends.google.com/trending?geo=GB).

## `geo` (type: `string`):

Enter a country code (US, GB, DE), a subregion (US-CA, GB-SCT) or a US metro (US-NY-501). Leave empty for worldwide.

## `timeRange` (type: `string`):

Choose the period to look at. For your own dates pick Custom date range and set the start and end date below.

## `startDate` (type: `string`):

First day of a custom date range (from 2004-01-01).

## `endDate` (type: `string`):

Last day of a custom date range. Leave empty for today.

## `category` (type: `integer`):

Enter a Google Trends category number to narrow the searches to one topic area, for example 71 Food & Drink, 7 Finance, 958 Jobs & Education, 5 Computers & Electronics, 3 Arts & Entertainment. 0 means all categories. The number is the cat= value of a Google Trends link.

## `searchType` (type: `string`):

Choose which Google search to measure.

## `interestOverTime` (type: `boolean`):

One row per term per date, 0-100.

## `interestByRegion` (type: `boolean`):

One row per region where the term was searched, 0-100.

## `regionLevel` (type: `string`):

Choose how finely to break interest down by region.

## `includeLowVolumeRegions` (type: `boolean`):

Also list regions with little search volume, as the Google Trends option of the same name.

## `relatedQueries` (type: `boolean`):

Top and rising searches related to each term, one row each.

## `relatedTopics` (type: `boolean`):

Top and rising topics related to each term (for searches with one term). Google often shows no related topics to visitors who are not signed in.

## `trendingCountries` (type: `array`):

Enter country codes (US, GB, IN, DE) to scrape what is trending in each country right now, as on the Trending now page.

## `trendingHours` (type: `string`):

Choose how far back to look for trending searches.

## `trendingCategory` (type: `string`):

Keep only trending searches of one category.

## `language` (type: `string`):

Language for region names and labels, as a code like en-US, de or fr.

## `proxyConfiguration` (type: `object`):

Apify Proxy works out of the box.

## Actor input object example

```json
{
  "searchTerms": [
    "coffee, tea"
  ],
  "geo": "US",
  "timeRange": "today 12-m",
  "category": 0,
  "searchType": "web",
  "interestOverTime": true,
  "interestByRegion": true,
  "regionLevel": "auto",
  "includeLowVolumeRegions": false,
  "relatedQueries": true,
  "relatedTopics": false,
  "trendingHours": "24",
  "trendingCategory": "",
  "language": "en-US",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `interestOverTime` (type: `string`):

No description

## `interestByRegion` (type: `string`):

No description

## `relatedQueries` (type: `string`):

No description

## `relatedTopics` (type: `string`):

No description

## `trendingSearches` (type: `string`):

No description

## `results` (type: `string`):

No description

## `report` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "coffee, tea"
    ],
    "geo": "US",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/google-trends-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["coffee, tea"],
    "geo": "US",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/google-trends-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "coffee, tea"
  ],
  "geo": "US",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/google-trends-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/google-trends-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/M1riAL2p2Ejm3pSkl/builds/LEhkP5EROzAr57xVj/openapi.json
