# Google Trends Explorer (`originalvi/google-trends-explorer`) Actor

Interest over time, interest by region, related queries & topics for any search term. Fast API-based scraping, no browser.

- **URL**: https://apify.com/originalvi/google-trends-explorer.md
- **Developed by:** [Andrew Schneidwind](https://apify.com/originalvi) (community)
- **Categories:** Automation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 85.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 search term analyzeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Explorer — trends data as clean JSON, no browser

Get clean, structured Google Trends data for any search term in seconds — **interest over time, interest by region, related queries, and related topics** — without a browser, without rate-limit headaches, and without wrestling CSV exports.

### What you get

For every search term, one dataset item containing:

- **Interest over time** — the familiar 0–100 Trends curve, one point per interval, with `isPartial` flags on incomplete periods, plus computed `averageInterest` and `peak` (date + value).
- **Interest by region** — every country/region with data, ranked 0–100.
- **Related queries** — *top* and *rising* (including `Breakout` markers) with Trends' own scoring.
- **Related topics** — *top* and *rising* topic entities with their type (e.g. *Company*, *Search term*).

Each term is fetched separately, so every term gets its own full 0–100 scale (no cross-term normalization surprises).

### How to get Google Trends data

1. Enter one or more **search terms**.
2. Pick a **time range** (past hour up to 2004–present; default past 12 months) and optionally a **country/region** and **category**.
3. Toggle which sections you need (interest over time / by region / related queries / related topics).
4. Click **Start** and export as JSON, CSV, or Excel — or pull via API.

No Google account, no CSV downloads, no browser automation.

### Input

| Field | Description |
|---|---|
| `searchTerms` | One or more terms to analyze |
| `timeRange` | Past hour → 2004-present (default: past 12 months) |
| `geo` | Country (`US`), region (`US-NY`), or empty for worldwide |
| `category` | Google Trends category ID (0 = all) |
| `includeInterestOverTime` / `ByRegion` / `RelatedQueries` / `RelatedTopics` | Toggle each dataset section |
| `proxyConfiguration` | Apify Proxy settings |

### Example output

```json
{
  "searchTerm": "chatgpt",
  "timeRange": "today 12-m",
  "geo": "worldwide",
  "averageInterest": 62.4,
  "peak": { "date": "Mar 2026", "value": 100 },
  "interestOverTime": [
    { "date": "Jul 6 – Jul 12, 2025", "timestamp": 1751760000, "value": 48, "isPartial": false }
  ],
  "interestByRegion": [
    { "geoCode": "PH", "geoName": "Philippines", "value": 100 }
  ],
  "relatedQueries": {
    "top": [{ "query": "chatgpt login", "value": 100, "formattedValue": "100" }],
    "rising": [{ "query": "chatgpt 5", "value": 45500, "formattedValue": "Breakout" }]
  },
  "relatedTopics": {
    "top": [{ "title": "ChatGPT", "type": "Chatbot", "value": 100, "formattedValue": "100" }],
    "rising": []
  },
  "status": "SUCCEEDED"
}
```

### Pricing

You pay a small fee **per successfully analyzed term** — $5.00 per 1,000 terms plus a few cents of platform usage. Failed terms are never charged. No subscriptions, no minimums.

### Use cases

- **SEO & content planning** — find rising queries before they get competitive; `Breakout` markers are early-warning signals.
- **Market research** — compare demand across countries and seasons before entering a market.
- **Trading & e-commerce signals** — track interest spikes for products, tickers, and brands.
- **Trend dashboards** — schedule the Actor and pipe fresh Trends data anywhere via the Apify API.
- **AI agents** — let your agent check whether a topic is rising or fading before acting on it.

### Run it from your own code

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("originalvi/google-trends-explorer").call(run_input={
    "searchTerms": ["standing desk", "walking pad"],
    "timeRange": "today 12-m",
    "geo": "US",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["searchTerm"], "avg:", item["averageInterest"], "peak:", item["peak"])
```

Works the same with the JavaScript `apify-client`, raw HTTP API, or no-code tools (Make, Zapier, n8n).

### FAQ

**Is there an official Google Trends API?**
No — Google has never shipped a public Trends API. This Actor reads the same internal endpoints the Trends website uses and returns the data as clean JSON.

**Why do my terms each have their own 0–100 scale?**
Google normalizes to the highest point *within a request*. This Actor fetches each term separately so no term gets flattened by a more popular one. If you need Google's comparative scaling, run terms together in one Trends UI session — for data pipelines, per-term scales are usually what you want.

**What does `Breakout` mean in related queries?**
Google's label for a rising query that grew more than 5000%. These are the earliest trend signals available anywhere.

**I'm getting `RATE_LIMITED` errors — what do I do?**
Google throttles datacenter IPs aggressively. Switch the proxy configuration to **residential** proxies and the errors disappear. Failed terms are never charged.

**Can I get hourly data?**
Yes — use `now 7-d` or shorter time ranges for hourly granularity. Longer ranges (e.g. `today 12-m`) return weekly points, same as the Trends UI.

### Tips

- Category IDs: see the [community-maintained list](https://github.com/pat310/google-trends-api/wiki/Google-Trends-Categories).
- Schedule a weekly run on your niche's seed terms and diff the `rising` queries — that's a free trend-spotting machine.

### More Actors by this developer

- [Google News Scraper](https://apify.com/originalvi/google-news-scraper) — see what's being written about the trends you find
- [Hacker News Scraper](https://apify.com/originalvi/hacker-news-scraper) — what developers are saying about it
- [eBay Sold Listings Scraper](https://apify.com/originalvi/ebay-sold-listings) — real sold prices + price statistics
- [App Store Reviews Scraper](https://apify.com/originalvi/app-store-reviews-scraper) — iOS reviews & ratings across 20+ countries
- [Website Screenshot Pro](https://apify.com/originalvi/website-screenshot-pro) — pixel-perfect full-page screenshots

### Found a problem?

Open an issue on the **Issues** tab and I'll fix it fast — usually within a day.

# Actor input Schema

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

Terms to analyze. Each term is fetched separately so every one gets its own 0–100 interest scale.

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

Period to cover.

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

Two-letter country code (e.g. `US`, `GB`, `DE`), a region code like `US-NY`, or leave empty for worldwide.

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

Google Trends category ID to narrow results (0 = all categories). Find IDs at https://github.com/pat310/google-trends-api/wiki/Google-Trends-Categories

## `includeInterestOverTime` (type: `boolean`):

Include the interest-over-time series (the main Trends chart).

## `includeInterestByRegion` (type: `boolean`):

Include the geographic breakdown of interest.

## `includeRelatedQueries` (type: `boolean`):

Include top and rising related search queries.

## `includeRelatedTopics` (type: `boolean`):

Include top and rising related topics.

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

Proxies to use. Google rate-limits datacenter IPs aggressively — residential proxies are recommended if you see RATE\_LIMITED errors.

## Actor input object example

```json
{
  "searchTerms": [
    "chatgpt"
  ],
  "timeRange": "today 12-m",
  "geo": "",
  "category": 0,
  "includeInterestOverTime": true,
  "includeInterestByRegion": true,
  "includeRelatedQueries": true,
  "includeRelatedTopics": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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": [
        "chatgpt"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("originalvi/google-trends-explorer").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": ["chatgpt"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("originalvi/google-trends-explorer").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 '{
  "searchTerms": [
    "chatgpt"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call originalvi/google-trends-explorer --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/yKy2WZkoYYKro0ErF/builds/U1J5ar0cgAZkfzz7F/openapi.json
