# Google Trends Scraper - Trending Searches & Keyword Data (`logiover/google-trends-scraper`) Actor

Scrape Google Trends with no API key: daily trending searches per country, interest over time, related queries & topics, interest by region.

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

## Pricing

from $1.99 / 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 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 Scraper — Trending Searches & Keyword Data (No API Key)

Google Trends has **no official API**. This actor pulls the data straight from the same public endpoints `trends.google.com` uses in your browser — **no API key, no login, no cookies.**

Two modes, combine them freely:

#### 1. 📈 Trending Now (per country)

Today's **trending searches** for any country, each with its **approximate search volume** and the **news articles** driving it. Rock‑solid and token‑free — sweep dozens of countries in one run.

#### 2. 🔑 Keyword Explore

For any list of keywords, get:

- **Interest Over Time** — the classic 0–100 popularity curve
- **Related Queries** — top + rising searches people also run
- **Related Topics** — top + rising associated topics
- **Interest By Region** — the geographic heat‑map breakdown

> ⚠️ Keyword mode hits Google's rate‑limited widget endpoints. **Use the RESIDENTIAL proxy option for keyword mode.** Trending Now works fine on the default datacenter proxy.

### Example inputs

**Trending searches across 5 countries:**

```json
{ "trendingNowGeos": ["US", "GB", "DE", "IN", "BR"] }
```

**Keyword research (use residential proxy):**

```json
{
  "keywords": ["bitcoin", "chatgpt", "recession"],
  "timeframe": "today 12-m",
  "geo": "US",
  "includeRelatedQueries": true,
  "includeInterestByRegion": true,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Output samples

**Trending Now:**

```json
{
  "geo": "US",
  "rank": 1,
  "query": "Champions League",
  "approxTraffic": "500000+",
  "pubDate": "Sun, 20 Jul 2026 08:00:00 GMT",
  "newsArticles": [
    { "title": "…", "url": "https://…", "source": "ESPN", "picture": "https://…" }
  ],
  "newsCount": 3,
  "source": "trending-now"
}
```

**Interest Over Time / Related Queries:**

```json
{ "keyword": "bitcoin", "geo": "US", "date": "Jul 14 – 20 2026", "value": 78, "source": "interest-over-time" }
{ "keyword": "bitcoin", "geo": "US", "relatedQuery": "bitcoin price", "type": "top", "value": 100, "source": "related-queries" }
```

### Use cases

- **SEO & content** — find rising queries and seasonal demand before competitors.
- **Market research** — compare keyword demand across time and regions.
- **News & trend monitoring** — capture daily trending searches and the stories behind them.
- **Finance / alt‑data** — search interest as a leading signal.

### Timeframe cheatsheet

`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`, or an explicit `YYYY-MM-DD YYYY-MM-DD` range.

### FAQ

**Do I need a Google account or API key?** No. It reads public endpoints.

**Why do keyword runs sometimes return nothing?** Google rate‑limits the widget endpoints (HTTP 429) from shared datacenter IPs. Switch the proxy to **Residential** and it works reliably. Trending Now is unaffected.

**How many rows can I get?** Trending Now returns ~20–25 per country — sweep many countries for volume. Keyword mode returns a full interest series (hundreds of points) plus up to ~50 related queries and ~50 related topics per keyword.

**Is the trending data real‑time?** Trending Now reflects the current day; Interest Over Time respects your `timeframe`.

***

*Not affiliated with Google. "Google Trends" is a trademark of Google LLC. This tool reads publicly available endpoints.*

### 📝 Changelog

#### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Declared 10 dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.
- Declared 15 nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder or brittle to sparse modes.

# Actor input Schema

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

Keywords/terms to analyse via Google Trends 'Explore'. Returns Interest Over Time + Related Queries + Related Topics for each. Example: \['bitcoin', 'chatgpt', 'recession']. Keyword mode is rate-limited by Google — use RESIDENTIAL proxy.

## `trendingNowGeos` (type: `array`):

Two-letter country codes to pull today's TRENDING SEARCHES for (with approx traffic + the news articles behind each trend). Example: \['US','GB','DE','IN','BR']. This mode is very reliable and needs no token. Leave keywords empty to use only this.

## `timeframe` (type: `string`):

Time window for keyword Interest Over Time. Examples: 'now 1-d', 'now 7-d', 'today 1-m', 'today 3-m', 'today 12-m', 'today 5-y', 'all', or an explicit range '2020-01-01 2023-12-31'.

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

Two-letter country code for keyword mode, or empty for Worldwide. Example: 'US'. You can also target a region like 'US-CA'.

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

Google Trends category ID to scope keyword results (0 = All categories). E.g. 7 = Finance, 5 = Computers & Electronics.

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

Include the interest-over-time series for each keyword.

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

Include top + rising related search queries for each keyword.

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

Include top + rising related topics for each keyword.

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

Include the geographic breakdown (interest by region/subregion) for each keyword.

## `hl` (type: `string`):

UI language code for labels (e.g. 'en-US', 'de-DE').

## `maxItems` (type: `integer`):

Hard cap on total rows. 0 = unlimited.

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

Proxy settings. Trending Now (RSS) works on datacenter. Keyword Explore mode is heavily rate-limited by Google — switch to RESIDENTIAL if you use keywords.

## Actor input object example

```json
{
  "keywords": [],
  "trendingNowGeos": [
    "US",
    "GB",
    "IN"
  ],
  "timeframe": "today 12-m",
  "geo": "",
  "category": 0,
  "includeInterestOverTime": true,
  "includeRelatedQueries": true,
  "includeRelatedTopics": true,
  "includeInterestByRegion": false,
  "hl": "en-US",
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All rows extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# 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 = {
    "trendingNowGeos": [
        "US",
        "GB",
        "IN"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/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 = { "trendingNowGeos": [
        "US",
        "GB",
        "IN",
    ] }

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

```

## MCP server setup

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

```

## OpenAPI specification

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