# Google Trends Scraper - Interest, Slope & Related Queries (`thirdwatch/google-trends-scraper`) Actor

Scrape Google Trends data for any keyword: 12-month interest timeseries, average interest (0-100), directional slope, peak date, and top/rising related queries. Useful for brand monitoring, SEO, category trend analysis.

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

## Pricing

from $3.50 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Trends Scraper

> Scrape Google Trends interest data for any keyword or brand — 12-month timeseries, average interest, trend slope, peak date, and top/rising related queries.

### What you get

Track brand and keyword momentum with structured Google Trends data. For every keyword you pass in, this scraper returns a full interest timeseries (0–100 normalized), the average interest over the window, a directional slope showing whether interest is rising or falling, the peak interest value and date, and optionally the top 10 related queries plus the top 10 rising queries. Filter by country or go worldwide, and pick from 9 time windows ranging from the past hour to all-time back to 2004.

### Output fields

| Field | Description |
|-------|-------------|
| `keyword` | Search keyword queried |
| `geo` | Country scope (ISO code) or empty for worldwide |
| `timeRange` | Time window used for the query |
| `avgInterest` | Average interest score across the window (0–100) |
| `slope` | Directional trend (-1 to +1); positive = rising, negative = falling |
| `peakInterest` | Highest interest score recorded |
| `peakDate` | Date of peak interest |
| `timeline` | Array of `{ time, value }` points over the window |
| `relatedTop` | Top 10 related queries (populated when `includeRelated` is true) |
| `relatedRising` | Top 10 rising queries (populated when `includeRelated` is true) |
| `scraped_at` | Timestamp |

### Example output

```json
{
    "keyword": "allbirds",
    "geo": "US",
    "timeRange": "today 12-m",
    "avgInterest": 42,
    "slope": -0.18,
    "peakInterest": 88,
    "peakDate": "2025-11-29",
    "timeline": [
        { "time": "2025-04-20", "value": 58 },
        { "time": "2025-04-27", "value": 55 },
        { "time": "2025-05-04", "value": 53 }
    ],
    "relatedTop": [
        { "query": "allbirds shoes", "value": 100 },
        { "query": "allbirds wool runners", "value": 74 }
    ],
    "relatedRising": [
        { "query": "allbirds tree runner go", "value": "Breakout" },
        { "query": "allbirds canvas piper", "value": "+550%" }
    ],
    "scraped_at": "2026-04-23T10:30:00.000Z"
}
````

### Input parameters

| Parameter | Required | Description |
|-----------|----------|-------------|
| `keywords` | Yes | Search keywords or brand names (e.g., `["nike", "adidas", "hoka"]`). One dataset item per keyword. |
| `geo` | No | ISO country code to scope results (`US`, `IN`, `GB`, `DE`). Leave empty for worldwide. Default worldwide. |
| `timeRange` | No | Time window. One of `now 1-H` (past hour), `now 4-H`, `now 1-d`, `now 7-d`, `today 1-m`, `today 3-m`, `today 12-m`, `today 5-y`, `all` (2004–present). Default `today 12-m`. |
| `includeRelated` | No | Also fetch top 10 related queries and top 10 rising queries per keyword. Default `false`. |

### Use cases

- **Brand managers**: Track brand-search momentum week over week and catch declines before they hit sales.
- **SEO professionals**: Prioritize keyword targets by real demand and find rising long-tail queries.
- **Investors and analysts**: Use search interest as a leading indicator for consumer brands and categories.
- **Content teams**: Spot rising queries early and publish before competitors.
- **Market researchers**: Compare category demand across countries or measure seasonality.

### Pricing

Pay-per-result pricing (charged per keyword analyzed). Tiered discounts apply automatically based on usage volume.

| Tier | Price per keyword |
|------|-------------------|
| FREE | $0.002 |
| BRONZE | $0.0016 |
| SILVER | $0.0012 |
| GOLD | $0.001 |

### Limitations

- Google Trends normalizes interest to 0–100 within the time window and region — absolute search volume is not published.
- Very low-volume keywords may return zero or sparse timelines.
- Short time windows (past hour / past day) have coarser granularity and more noise than 12-month windows.
- `includeRelated` adds one extra request per keyword and can occasionally return empty for niche terms.
- Trends data is refreshed by Google on a delay; very recent events may not yet be reflected.

### Compared to alternatives

- **vs. Google Trends website**: The site gives one chart at a time and no export. This actor returns clean JSON for any number of keywords in one run.
- **vs. pytrends and similar libraries**: pytrends needs residential IPs and session handling that most users don't have. This actor is fully managed — just pass keywords.
- **vs. other Apify Store Trends scrapers**: Our per-keyword pricing ($0.001–$0.002) with structured slope, peak, and related-queries output in one call.

Pairs well with [Google Search Scraper](https://apify.com/thirdwatch/google-search-scraper?fpr=9m2cd6) for ranking context and [Google News Scraper](https://apify.com/thirdwatch/google-news-scraper?fpr=9m2cd6) for the editorial angle on the same keywords.

### FAQ

**Is the data real Google Trends data?**
Yes. This actor queries Google Trends directly and returns the same numbers you'd see on trends.google.com.

**What does the `slope` field mean?**
A simple directional indicator between -1 and +1. Positive means interest in the last portion of the window is higher than the first portion; negative means it's falling.

**Can I get absolute search volume?**
No. Google Trends only publishes normalized interest (0–100). For absolute volume you'd need Google Ads Keyword Planner.

**How fresh is the data?**
Pulled live at run time. Google typically updates Trends data with a 1–3 day delay.

Last verified: 2026-04

More scrapers at [thirdwatch.dev](https://thirdwatch.dev).

# Actor input Schema

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

List of search keywords or brand names to look up on Google Trends. Each keyword returns one dataset item with a 12-month timeseries, average interest (0-100), slope (directional trend), and related queries.

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

ISO country code to scope interest data (e.g. 'US', 'IN', 'GB'). Leave empty for worldwide.

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

Google Trends time range string. Default: past 12 months.

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

Also fetch the top 10 related queries (rising + top) for each keyword. Adds one extra request per keyword.

## Actor input object example

```json
{
  "keywords": [
    "nike",
    "adidas"
  ],
  "geo": "",
  "timeRange": "today 12-m",
  "includeRelated": false
}
```

# Actor output Schema

## `results` (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 = {
    "keywords": [
        "nike",
        "adidas"
    ],
    "geo": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("thirdwatch/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": [
        "nike",
        "adidas",
    ],
    "geo": "",
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "nike",
    "adidas"
  ],
  "geo": ""
}' |
apify call thirdwatch/google-trends-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=thirdwatch/google-trends-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Trends Scraper - Interest, Slope & Related Queries",
        "description": "Scrape Google Trends data for any keyword: 12-month interest timeseries, average interest (0-100), directional slope, peak date, and top/rising related queries. Useful for brand monitoring, SEO, category trend analysis.",
        "version": "1.0",
        "x-build-id": "3wJXYWblfwkajEYZ1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/thirdwatch~google-trends-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-thirdwatch-google-trends-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/thirdwatch~google-trends-scraper/runs": {
            "post": {
                "operationId": "runs-sync-thirdwatch-google-trends-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/thirdwatch~google-trends-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-thirdwatch-google-trends-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "List of search keywords or brand names to look up on Google Trends. Each keyword returns one dataset item with a 12-month timeseries, average interest (0-100), slope (directional trend), and related queries.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "geo": {
                        "title": "Geography",
                        "type": "string",
                        "description": "ISO country code to scope interest data (e.g. 'US', 'IN', 'GB'). Leave empty for worldwide.",
                        "default": ""
                    },
                    "timeRange": {
                        "title": "Time range",
                        "enum": [
                            "now 1-H",
                            "now 4-H",
                            "now 1-d",
                            "now 7-d",
                            "today 1-m",
                            "today 3-m",
                            "today 12-m",
                            "today 5-y",
                            "all"
                        ],
                        "type": "string",
                        "description": "Google Trends time range string. Default: past 12 months.",
                        "default": "today 12-m"
                    },
                    "includeRelated": {
                        "title": "Include related queries",
                        "type": "boolean",
                        "description": "Also fetch the top 10 related queries (rising + top) for each keyword. Adds one extra request per keyword.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
