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

Scrape Google Trends without a login. Pull interest over time for any keywords across a region and window, or the search terms currently trending in a country. Compares up to five keywords on a shared scale.

- **URL**: https://apify.com/goat255/google-trends-scraper.md
- **Developed by:** [Goutam Soni](https://apify.com/goat255) (community)
- **Categories:** News, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

Google Trends Scraper extracts Google Trends interest-over-time data for any keywords and the search terms trending right now in any country, as clean structured JSON, with no login and no API key required. Give it keywords or country codes and get back ready-to-use rows of trends data for analysis, dashboards, and automation.

### What it does

- **Interest over time** for one or more keywords. Returns a time series of relative search popularity (0 to 100) for each keyword across the region and window you choose. Optionally compare up to five keywords on a single shared scale so their values are directly comparable.
- **Trending now** for any country. Returns the search terms currently rising, with an approximate search volume, the growth percentage, how many news articles cover each term, when each one started, and the related queries driving it.
- **No login, no password, no API key.** Just supply keywords or ISO country codes.
- **Full time-series walk.** Short windows return hourly points, longer windows return daily or weekly points. The entire window is collected automatically.
- **Clean, stable schema.** Every row is a flat object with consistent keys, ready to load into a sheet, database, or BI tool.

### Use cases

- **SEO and content research** - find rising search terms and seasonal demand to plan content and target keywords before they peak.
- **Market research** - track relative interest in products, brands, or topics across regions and over time.
- **Trend monitoring** - watch what is trending in a country right now for news, social, or PR opportunities.
- **Demand forecasting** - feed historical interest curves into models to anticipate seasonal spikes.
- **Competitive and category analysis** - compare up to five terms side by side on one scale to see which is winning attention.

### Input

| Field | Type | Description |
|---|---|---|
| `keywords` | array | Search terms to pull interest over time for. Each term returns a 0 to 100 popularity time series. |
| `geo` | string | Region for the keyword series. ISO country (`US`, `GB`, `IN`) or country-region (`US-CA`). Empty for worldwide. |
| `timeRange` | string | Window: past day, 7 days, month, 3 months, 12 months, 5 years, or all time. |
| `compareKeywords` | boolean | Compare keywords together on one 0 to 100 scale (groups of five). Off measures each on its own scale. |
| `trendingGeos` | array | Country codes to pull currently trending terms for. Example: `US`, `GB`, `IN`. |
| `trendingHours` | integer | Trending lookback window in hours (1 to 168). Common values: 4, 24, 48, 168. |
| `maxTrendingPerGeo` | integer | Cap on trending terms returned per geo. Default 500. |
| `language` | string | Interface language code for labels and ordering. Example: `en-US`. |
| `timezoneOffset` | integer | Minutes offset from UTC used to align the interest series. Example: `-330`. |
| `concurrency` | integer | How many sources to process in parallel. Default 5. |
| `proxyConfig` | object | Proxy routing. Residential proxies are recommended and used by default. |

#### Example input

```json
{
  "keywords": ["coffee", "tea", "matcha"],
  "geo": "US",
  "timeRange": "today 12-m",
  "compareKeywords": true,
  "trendingGeos": ["US", "GB"],
  "trendingHours": 24,
  "maxTrendingPerGeo": 200
}
````

### Output

Each result is a flat row. The `type` field tells you which shape it is: `interest` or `trending`.

**Interest row** (one per keyword per time point):

```json
{
  "type": "interest",
  "keyword": "coffee",
  "geo": "US",
  "url": "https://trends.google.com/trends/explore?q=coffee&geo=US",
  "value": 73,
  "time": "today 12-m",
  "date": "2026-06-01T00:00:00.000Z",
  "timestamp": 1780531200,
  "hasData": true,
  "isPartial": false,
  "formattedTime": "Jun 1, 2026",
  "scrapedAt": "2026-06-18T06:00:00.000Z"
}
```

**Trending row** (one per trending term):

```json
{
  "type": "trending",
  "term": "example term",
  "geo": "US",
  "rank": 1,
  "url": "https://trends.google.com/trends/explore?q=example%20term&geo=US",
  "searchVolume": 2000000,
  "growthPercent": 1000,
  "articleCount": 17,
  "relatedQueries": ["example term", "example related query"],
  "startedAt": "2026-06-16T12:00:00.000Z",
  "endedAt": null,
  "active": true,
  "scrapedAt": "2026-06-18T06:00:00.000Z"
}
```

#### Key fields

- `value` - relative interest from 0 to 100, where 100 is the peak point in the series. It is a relative index, not an absolute search count.
- `searchVolume` - an approximate, bucketed estimate of how many searches the term has seen.
- `growthPercent` - how sharply the term rose relative to its prior baseline.
- `articleCount` - number of news articles covering the term.
- `startedAt` / `endedAt` - when the term started and stopped trending. An `endedAt` of `null` means the term is still active.
- `relatedQueries` - other searches people made around the same term.

### FAQ

**Is it free? How is it priced?**
You pay only for what you use under the pay-per-result model. There is no separate per-run start fee. Cost scales with the number of rows returned.

**Do I need a Google account or an API key?**
No. There is no login, no password, and no API key. Supply keywords or country codes and run.

**How many results can I get?**
Interest over time returns every point across the window you choose, for each keyword. Trending now returns up to `maxTrendingPerGeo` terms per country (up to 1000), across as many countries as you list in `trendingGeos`.

**How fast is it?**
Most runs finish in seconds to a couple of minutes, depending on how many keywords, countries, and time points you request. Increase `concurrency` to process more sources in parallel.

**Can I compare several keywords on the same scale?**
Yes. Turn on `compareKeywords` and up to five terms per group are measured on one shared 0 to 100 scale so their values are directly comparable.

**What does the interest value mean?**
It is a relative popularity index from 0 to 100, where 100 marks the most popular point in the series for that query and region. It is not an absolute number of searches.

**Which regions are supported?**
Any ISO country code (for example `US`, `GB`, `IN`) and country-region codes for interest over time (for example `US-CA`). Leave `geo` empty for worldwide interest.

# Actor input Schema

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

Search terms to pull interest over time for. Each term returns a time series of relative popularity (0 to 100) over the chosen window. Example: coffee, tea.

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

Region for the keyword interest series. Use an ISO country code (US, GB, IN) or a country-region code (US-CA). Leave empty for worldwide.

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

Window for the keyword interest series.

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

When on, keywords are compared together on a shared 0 to 100 scale (up to five per group). When off, each keyword is measured on its own absolute scale.

## `trendingGeos` (type: `array`):

Regions to pull currently trending search terms for. Use ISO country codes. Example: US, GB, IN.

## `trendingHours` (type: `integer`):

How far back to look for trending terms, in hours. Common values: 4, 24, 48, or 168 (7 days).

## `maxTrendingPerGeo` (type: `integer`):

Cap on trending terms returned per geo.

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

Interface language code for labels and term ordering. Example: en-US, en-GB, es.

## `timezoneOffset` (type: `integer`):

Minutes offset from UTC used to align the interest series. Example: -330 for IST, 0 for UTC.

## `concurrency` (type: `integer`):

How many sources to process in parallel.

## `proxyConfig` (type: `object`):

Proxy routing. Residential proxies are recommended for reliable results.

## Actor input object example

```json
{
  "keywords": [
    "coffee"
  ],
  "geo": "US",
  "timeRange": "today 12-m",
  "compareKeywords": false,
  "trendingGeos": [],
  "trendingHours": 24,
  "maxTrendingPerGeo": 500,
  "language": "en-US",
  "timezoneOffset": -330,
  "concurrency": 5,
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [
        "coffee"
    ],
    "trendingGeos": []
};

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

# Run the Actor and wait for it to finish
run = client.actor("goat255/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": [
    "coffee"
  ],
  "trendingGeos": []
}' |
apify call goat255/google-trends-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Trends Scraper",
        "description": "Scrape Google Trends without a login. Pull interest over time for any keywords across a region and window, or the search terms currently trending in a country. Compares up to five keywords on a shared scale.",
        "version": "0.1",
        "x-build-id": "TJD5d0dFTEldPNKX8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/goat255~google-trends-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-goat255-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/goat255~google-trends-scraper/runs": {
            "post": {
                "operationId": "runs-sync-goat255-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/goat255~google-trends-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-goat255-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",
                "properties": {
                    "keywords": {
                        "title": "Keywords (interest over time)",
                        "type": "array",
                        "description": "Search terms to pull interest over time for. Each term returns a time series of relative popularity (0 to 100) over the chosen window. Example: coffee, tea.",
                        "default": [
                            "coffee"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "geo": {
                        "title": "Geo for keywords",
                        "type": "string",
                        "description": "Region for the keyword interest series. Use an ISO country code (US, GB, IN) or a country-region code (US-CA). Leave empty for worldwide.",
                        "default": "US"
                    },
                    "timeRange": {
                        "title": "Time range",
                        "enum": [
                            "now 1-d",
                            "now 7-d",
                            "today 1-m",
                            "today 3-m",
                            "today 12-m",
                            "today 5-y",
                            "all"
                        ],
                        "type": "string",
                        "description": "Window for the keyword interest series.",
                        "default": "today 12-m"
                    },
                    "compareKeywords": {
                        "title": "Compare keywords on one scale",
                        "type": "boolean",
                        "description": "When on, keywords are compared together on a shared 0 to 100 scale (up to five per group). When off, each keyword is measured on its own absolute scale.",
                        "default": false
                    },
                    "trendingGeos": {
                        "title": "Geos for trending now",
                        "type": "array",
                        "description": "Regions to pull currently trending search terms for. Use ISO country codes. Example: US, GB, IN.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "trendingHours": {
                        "title": "Trending window (hours)",
                        "minimum": 1,
                        "maximum": 168,
                        "type": "integer",
                        "description": "How far back to look for trending terms, in hours. Common values: 4, 24, 48, or 168 (7 days).",
                        "default": 24
                    },
                    "maxTrendingPerGeo": {
                        "title": "Max trending terms per geo",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on trending terms returned per geo.",
                        "default": 500
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Interface language code for labels and term ordering. Example: en-US, en-GB, es.",
                        "default": "en-US"
                    },
                    "timezoneOffset": {
                        "title": "Timezone offset (minutes)",
                        "type": "integer",
                        "description": "Minutes offset from UTC used to align the interest series. Example: -330 for IST, 0 for UTC.",
                        "default": -330
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many sources to process in parallel.",
                        "default": 5
                    },
                    "proxyConfig": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy routing. Residential proxies are recommended for reliable results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
