# Google Trends Scraper — Interest Over Time & Related Queries (`webatola/google-trends-explore-lite`) Actor

Google Trends scraper for keyword research: interest over time, related queries (top & rising), related topics and interest by region for up to 10 keywords per run. Any country, any time range. No login, no browser. $3 per 1,000 keywords.

- **URL**: https://apify.com/webatola/google-trends-explore-lite.md
- **Developed by:** [Marek Matejovic](https://apify.com/webatola) (community)
- **Categories:** SEO tools, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 keywords

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: Interest Over Time & Related Queries

Get **Google Trends Explore data for your keywords**: interest over time, **related queries (top and rising)** and interest by region, for any country and time range. The same numbers you see on trends.google.com/explore, as clean JSON, CSV or Excel, through the API, or on a schedule.

This is the **Lite** edition: up to **10 keywords per run**, paced politely so runs stay reliable. Ideal for keyword research, content planning and a weekly trend check of your brand and competitors.

- 📈 **Interest over time** – the full 0–100 time series plus average, latest value and peak date.
- 🔎 **Related queries** – top and rising searches around each keyword (great for SEO and content ideas).
- 🧭 **Interest by region** – optional: countries worldwide, or states / cities inside a country.
- 🌍 **Any country, any period** – worldwide or `US`, `GB`, `DE`, `US-CA`…; past hour up to 2004–present, or a custom date range.
- 💸 **Pay only for results** – keywords without enough Google data or failed keywords are not charged.
- 🤖 **Works with AI agents** – available through the Apify MCP server and API.

### What can I use it for?

- **SEO and content marketing** – find rising related queries and plan articles before the peak.
- **Product and market research** – compare seasonality and demand of product ideas.
- **Brand monitoring** – check interest in your brand and competitors every week.
- **E-commerce and ads** – time campaigns to seasonal peaks per country.
- **Data journalism and dashboards** – export time series to Google Sheets, Looker Studio or Excel.

### How to use it

1. Enter up to 10 **keywords**.
2. Pick a **country** (or leave it empty for worldwide) and a **time range**.
3. Choose what to collect (interest over time and related queries are on by default).
4. Click **Start**. Each keyword takes about 10–20 seconds.

#### Input example

```json
{
  "searchTerms": ["standing desk", "air fryer"],
  "geo": "US",
  "timeRange": "today 12-m",
  "includeInterestOverTime": true,
  "includeRelatedQueries": true,
  "includeInterestByRegion": false
}
```

### Output example

One dataset item per keyword (shortened):

```json
{
  "searchTerm": "standing desk",
  "geo": "US",
  "timeRange": "today 12-m",
  "averageInterest": 33,
  "latestInterest": 18,
  "peak": {
    "date": "2026-04-12T00:00:00.000Z",
    "value": 100
  },
  "interestOverTime": [
    {
      "date": "2025-11-02T00:00:00.000Z",
      "formattedTime": "Nov 2 – 8, 2025",
      "value": 16,
      "isPartial": false
    },
    {
      "date": "2025-11-09T00:00:00.000Z",
      "formattedTime": "Nov 9 – 15, 2025",
      "value": 18,
      "isPartial": false
    }
  ],
  "relatedQueries": {
    "top": [
      {
        "query": "electric standing desk",
        "value": 100,
        "formattedValue": "100",
        "link": "https://trends.google.com/trends/explore?q=electric+standing+desk&date=today+12-m&geo=US"
      },
      {
        "query": "adjustable desk",
        "value": 85,
        "formattedValue": "85",
        "link": "https://trends.google.com/trends/explore?q=adjustable+desk&date=today+12-m&geo=US"
      }
    ],
    "rising": [
      {
        "query": "uplift v3 standing desk",
        "value": 2050,
        "formattedValue": "+2,050%",
        "link": "https://trends.google.com/trends/explore?q=uplift+v3+standing+desk&date=today+12-m&geo=US"
      }
    ]
  },
  "trendsUrl": "https://trends.google.com/trends/explore?q=standing%20desk&geo=US&date=today%2012-m&hl=en-US",
  "hasData": true,
  "scrapedAt": "2026-11-03T09:07:06.897Z"
}
```

| Field | Description |
|---|---|
| `searchTerm`, `geo`, `timeRange` | What was looked up |
| `averageInterest`, `latestInterest`, `peak` | Summary of the time series (0–100) |
| `interestOverTime` | Data points: `date`, `formattedTime`, `value` (0–100), `isPartial` |
| `relatedQueries.top` / `.rising` | Related searches with `value` (top: 0–100, rising: % growth or "Breakout") |
| `interestByRegion` | `geoCode`, `geoName`, `value` per country / region (when enabled) |
| `trendsUrl` | The same view on trends.google.com |
| `hasData` | `false` when Google has too little data for the keyword (such rows are not charged) |

Values are relative: 100 is the keyword's own peak in the chosen period and place. Each keyword is looked up on its own, so values of two keywords are not on the same scale.

### Pricing

**$3.00 per 1,000 keywords** ($0.003 per keyword with data, cheaper on higher Apify plans) plus $0.005 per run start. A run with 10 keywords costs about $0.035. Failed keywords and keywords without data are free. Apify's free plan credit covers hundreds of keywords a month.

### Lite limits (and why)

- **Max 10 keywords per run.** Need more? Start several runs or schedule them; or open an issue and tell us your volume.
- Requests are sent one by one, at least 4 seconds apart. Google Trends limits automated traffic heavily, and slow, polite runs succeed far more often than fast ones. When Google answers "too many requests", the Actor waits (30 s, 60 s, 120 s) instead of switching IPs.
- One keyword per comparison (no side-by-side comparison of several keywords on one scale yet).

### FAQ

**Is this an official Google Trends API?** No. Google has no public Trends API for everyone. This Actor reads the same public data the Google Trends website shows and returns it as JSON through the Apify API.

**Why do rising queries differ a bit from what I saw yesterday?** Google Trends works with a sample of searches, so rising queries (and less often top queries) can change slightly between requests, also on the website. Interest over time is stable.

**Why is a keyword empty?** Google shows data only for terms with enough search volume. Such rows have `hasData: false` and are not charged. Try a longer time range or worldwide.

**Can I get today's trending searches instead?** Yes, use our [Google Trends Scraper – Trending Now](https://apify.com/webatola/google-trends-trending-now).

### 🧰 More Actors from the same toolkit

| Actor | What it does |
|---|---|
| [Google Trends Scraper – Interest Over Time & Related Queries (Lite)](https://apify.com/webatola/google-trends-explore-lite) | Interest over time, related queries and regions for your keywords |
| [Google Trends Scraper – Trending Now](https://apify.com/webatola/google-trends-trending-now) | Today's trending searches per country with search volume and related news |
| [App Store Top Charts Scraper](https://apify.com/webatola/app-store-charts) | Top free & top paid iPhone apps per country with full app details |
| [Google Play Top Charts Scraper](https://apify.com/webatola/google-play-top-charts) | Top free, paid & grossing Android apps per country and category |
| [App Store ASO Keyword Rank Tracker & Search Scraper](https://apify.com/webatola/app-store-search) | App Store search results and your app's keyword rank (ASO) |
| [App Store & Google Trends MCP Server](https://apify.com/webatola/app-store-trends-mcp-server) | Trends and App Store data as tools for Claude, ChatGPT, Cursor and other AI agents |

Made by [Webatola](https://www.webatola.com), an independent software studio.

### 🤖 Use with AI agents (MCP) and the API

- Works out of the box with the **Apify MCP server** (Claude, ChatGPT, Cursor and other MCP clients): the agent can search for this Actor, read the input schema and run it.
- For compact results, keep interest by region off and use a shorter time range.
- API: `POST https://api.apify.com/v2/acts/webatola~google-trends-explore-lite/run-sync-get-dataset-items?token=YOUR_TOKEN` with the input JSON as the body returns the results directly.

### Is it legal to scrape Google Trends?

The Actor reads only **public, aggregated and anonymised** search-interest data – no personal data, no login, no bypassing of any protection, no IP rotation. Make sure your use complies with Google's terms and the laws of your country. If in doubt, ask a lawyer.

### Feedback

Found a bug or need a field? Open an issue in the *Issues* tab – fixes are usually shipped within days.

If this Actor saved you some time, a quick rating in the Store helps other people find it. No pressure, only if you feel like it. Thank you!

# Actor input Schema

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

Search terms to look up in Google Trends, one per line. Examples: "chatgpt", "air fryer", "taylor swift". Up to 10 keywords per run; extra keywords are skipped. Each keyword is looked up on its own (values are 0–100 relative to that keyword's own peak).

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

ISO country code, optionally with a region: US, GB, DE, CZ, US-CA. Leave empty for worldwide.

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

Period for interest over time and related queries. Same options as on trends.google.com.

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

Only used when Time range is Custom. Format: "YYYY-MM-DD YYYY-MM-DD", e.g. "2025-01-01 2025-06-30".

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

Time series of search interest (0–100) with average, latest value and peak.

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

Top and rising related search queries, great for keyword research and content ideas.

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

Interest per country (worldwide) or per region / city (when a country is set). Adds one request per keyword.

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

Detail level for interest by region.

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

Google Trends category ID, 0 = all categories. Examples: 7 Finance, 71 Food & Drink, 18 Shopping, 958 Business & Industrial (the number after cat= in a trends.google.com URL).

## `property` (type: `string`):

Which Google search to measure.

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

Language for labels and topic names, e.g. en-US, de, cs.

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

Optional. Usually not needed. If enabled, one proxy session is used for the whole run (no IP rotation).

## Actor input object example

```json
{
  "searchTerms": [
    "chatgpt"
  ],
  "geo": "US",
  "timeRange": "today 12-m",
  "includeInterestOverTime": true,
  "includeRelatedQueries": true,
  "includeInterestByRegion": false,
  "regionResolution": "AUTO",
  "category": 0,
  "property": "",
  "language": "en-US",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All dataset items as JSON.

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

One row per keyword.

# 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"
    ],
    "geo": "US",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("webatola/google-trends-explore-lite").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"],
    "geo": "US",
    "proxyConfiguration": { "useApifyProxy": False },
}

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

```

## MCP server setup

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

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/luW1kIs2FSKgbpf2x/builds/X0NUwBYhx3hVQ6j2N/openapi.json
