# Google Trends Scraper (`lergassy/google-trends-scraper`) Actor

\[$1.50/1K keywords] Google Trends for any keyword: interest over time, interest by country or region, related queries and topics (top and rising), comparisons of up to 5 keywords, and Trending Now searches by country. No login, no run fee.

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

## Pricing

from $1.05 / 1,000 keyword reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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** gives you **Google Trends data for any keyword** in one row: **interest over time, interest by country or region, related queries and related topics (top and rising)**, plus a ready summary — **average interest, peak date and whether the trend is rising or falling**. Compare up to 5 keywords on one chart, and pull **Trending Now** searches for any country.

**$0.0015 per keyword report**, $0.0005 per Trending Now search. No login, no API key, no start fee. Keywords that fail are free.

### What is Google Trends Scraper?

Google Trends shows how search interest changes, but has no official API and exports one chart at a time. This Actor calls the same data endpoints the Trends website uses and returns everything for a keyword in one row — for market research, SEO and content planning, product demand checks, seasonality, and AI agents that need to know "is this growing?".

### What is in every row

| Field | Meaning |
|---|---|
| `interestOverTime` | Every point of the chart: `date`, `label`, `value` (0–100), `isPartial` |
| `averageInterest`, `peakDate`, `trendDirection` | Ready summary |
| `interestByRegion` | Countries or regions with their interest (0–100) |
| `relatedQueries`, `relatedTopics` | Top and rising, with Google's values ("Breakout" = +5000%) |
| `keyword`, `geo`, `timeRange`, `category`, `property` | What was asked |
| Trending rows: `title`, `approxTraffic`, `publishedAt`, `news` | With **Trending Now countries** |

### How much does it cost?

| Event | Price |
|---|---|
| Keyword report (or comparison of up to 5) | **$0.0015** |
| Trending Now search | **$0.0005** |

- Interest by region and related queries/topics are included.
- Keywords that fail after retries: **$0** (an error row says why).

#### Bulk export: what 50,000 rows actually cost

This Actor is built for bulk jobs — hundreds of inputs in one run, or a daily schedule. There is **no
fee per run, no fee per page and no proxy charge**: you pay for the rows you keep.

| Job | This Actor | Most-used Actor in this category |
|---|---|---|
| 10,000 keyword reports | **$15** | $30 |
| 50,000 keyword reports | **$75** | $150 |

Checked on the Apify Store on 23 September 2026 against the Actor with the most monthly users in this category
($0.003 per dataset item). Some Actors here ask less per row — this table compares against the one buyers actually use most.

### How to use it in three steps

1. Type keywords — one per line. Switch on **Compare** to put up to 5 on one chart.
2. Pick **Country / region**, **Time range**, **Category** and **Search type** (web, YouTube, news, images, shopping).
3. Press **Start**, then download JSON, CSV or Excel — or call the run from the API, n8n, Make, Zapier or an AI agent.

### ⬇️ Input

```json
{
  "keywords": ["bali visa", "digital nomad visa"],
  "geo": "",
  "timeRange": "today 12-m",
  "includeRegions": true,
  "includeRelated": true,
  "trendingNowCountries": ["ID"]
}
```

### ⬆️ Output

Keyword report (trimmed — the real row has every week and every country):

```json
{
  "type": "keyword",
  "keyword": "bali visa",
  "keywords": [
    "bali visa"
  ],
  "geo": "Worldwide",
  "timeRange": "today 12-m",
  "category": 0,
  "property": "web",
  "interestOverTime": [
    {
      "date": "2026-09-06",
      "label": "Sep 6 – 12, 2026",
      "value": 76,
      "isPartial": false
    },
    {
      "date": "2026-09-13",
      "label": "Sep 13 – 19, 2026",
      "value": 58,
      "isPartial": false
    },
    {
      "date": "2026-09-20",
      "label": "Sep 20 – 26, 2026",
      "value": 63,
      "isPartial": true
    }
  ],
  "averages": [],
  "interestByRegion": [
    {
      "geoCode": "AU",
      "name": "Australia",
      "value": 100
    },
    {
      "geoCode": "SG",
      "name": "Singapore",
      "value": 45
    },
    {
      "geoCode": "NZ",
      "name": "New Zealand",
      "value": 42
    }
  ],
  "relatedQueries": {
    "bali visa": {
      "top": [
        {
          "query": "indonesia bali visa",
          "value": 100,
          "formattedValue": "100"
        },
        {
          "query": "indonesia visa",
          "value": 99,
          "formattedValue": "99"
        },
        {
          "query": "indonesia",
          "value": 96,
          "formattedValue": "96"
        }
      ],
      "rising": [
        {
          "query": "bali visa news",
          "value": 250,
          "formattedValue": "+250%"
        },
        {
          "query": "bali visa requirements",
          "value": 130,
          "formattedValue": "+130%"
        },
        {
          "query": "bali visa fee",
          "value": 110,
          "formattedValue": "+110%"
        }
      ]
    }
  },
  "relatedTopics": {
    "bali visa": {
      "top": [],
      "rising": []
    }
  },
  "scrapedAt": "2026-09-23T12:44:49.213Z",
  "averageInterest": 79,
  "peakDate": "2026-08-09",
  "trendDirection": "flat"
}
```

Trending Now row:

```json
{
  "type": "trending",
  "country": "ID",
  "position": 1,
  "title": "michael carrick",
  "approxTraffic": "100+",
  "approxTrafficNumber": 100,
  "publishedAt": "2026-09-22T22:20:00.000Z",
  "picture": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQUoZ6OQMitoZxzSyW_xDCaUepPLpW01ecYQhtBZzoVzoYOI4M-BwwP9qlFsZ0",
  "pictureSource": "detiksport",
  "news": [
    {
      "title": "Bukti Pemain-pemain MU Malas Lari",
      "url": "https://sport.detik.com/sepakbola/liga-inggris/d-8673718/bukti-pemain-pemain-mu-malas-lari",
      "source": "detiksport",
      "picture": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQUoZ6OQMitoZxzSyW_xDCaUepPLpW01ecYQhtBZzoVzoYOI4M-BwwP9qlFsZ0"
    }
  ],
  "scrapedAt": "2026-09-23T12:44:54.963Z"
}
```

### Use cases

#### Market and product research

Is demand for a product, service or destination growing — and where?

#### SEO and content planning

Rising related queries are tomorrow's keywords.

#### Seasonality

Five years of weekly interest to plan campaigns and stock.

#### AI agents

"Is interest in X growing in Indonesia?" answered with data through the Apify MCP server.

### Integrations

Every run is available through the Apify API, and the Actor works out of the box with n8n, Make, Zapier, Google Sheets, LangChain and the Apify MCP server.

### FAQ

**Are the values search volumes?** No — Google Trends gives relative interest (0–100, where 100 is the peak in the chosen place and time). Comparisons share one scale.

**Why do some keywords have empty related queries?** Google shows them only when there is enough search volume.

**What does "Breakout" mean?** A rising query that grew by more than 5000%.

**Google Trends refused a request?** Google limits bursts. The Actor retries on fresh addresses; keywords that still fail are free — run them again a few minutes later.

**Is this legal?** The Actor reads public, aggregated Google Trends data. No personal data is involved.

# Actor input Schema

## `keywords` (type: `array`):

One keyword per line. Each keyword gets its own full report, or switch on comparison below.

## `compareKeywords` (type: `boolean`):

Put up to 5 keywords on one chart, like the Compare button on Google Trends. One report (one charge) per group of 5.

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

Empty = worldwide. Country code (US, ID, DE) or region code (US-CA, ID-BA).

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

Same periods as on Google Trends.

## `customTimeRange` (type: `string`):

Optional, overrides Time range: <b>2025-01-01 2025-06-30</b>.

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

Google Trends category (0 = all). E.g. 67 Travel, 7 Finance, 958 Real Estate.

## `searchProperty` (type: `string`):

Which Google search the interest comes from.

## `regionResolution` (type: `string`):

Level of interest-by-region when a country is set (worldwide always gives countries).

## `includeRegions` (type: `boolean`):

Add the interest-by-country/region table.

## `includeRelated` (type: `boolean`):

Add top and rising related queries and topics.

## `trendingNowCountries` (type: `array`):

Country codes (US, ID, GB…) — today's trending searches with traffic and news links, $0.0005 each.

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

Requests go to Google Trends directly first; a refused request is retried on a fresh Apify datacenter address. Residential is never switched on by itself.

## Actor input object example

```json
{
  "keywords": [
    "bali visa",
    "digital nomad visa"
  ],
  "compareKeywords": false,
  "geo": "",
  "timeRange": "today 12-m",
  "category": 0,
  "searchProperty": "",
  "regionResolution": "REGION",
  "includeRegions": true,
  "includeRelated": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

One row per keyword (or comparison) with interest over time, by region and related searches.

# 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 = {
    "keywords": [
        "bali visa",
        "digital nomad visa"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lergassy/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 = {
    "keywords": [
        "bali visa",
        "digital nomad visa",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("lergassy/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 '{
  "keywords": [
    "bali visa",
    "digital nomad visa"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call lergassy/google-trends-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lergassy/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/VpwjF8bgconXMSz35/builds/tSzWklnkI1rkM76f7/openapi.json
