# Google Trends Scraper & API: Rising Keywords + Trending Now (`serenido/google-trends-reliable`) Actor

Google Trends API alternative with auto-retry. Get keyword search trends for any country: interest over time, rising and top related queries, interest by region and Trending Now. Web, YouTube, News and Shopping. Clean Excel rows. pytrends replacement, no 429 errors.

- **URL**: https://apify.com/serenido/google-trends-reliable.md
- **Developed by:** [Serenido](https://apify.com/serenido) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 keyword 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/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

### What does this Google Trends Scraper & API do?

It gets **Google Trends** data for any list of keywords, the same data you see on trends.google.com, as clean JSON, CSV or Excel. Use it as a **Google Trends API**: call it from Python, JavaScript, n8n, Make or Zapier, or run it on a schedule for **keyword research** and **search trends** tracking.

- **Interest over time**: the 0-100 curve for each keyword, plus a ready summary (average, peak value, peak date, change)
- **Interest by region**: every country, state or city with its score
- **Related queries**: top and **rising / breakout** searches for each keyword
- **Trending Now**: today's trending searches for any country, with traffic and news links
- Web, Image, News, **YouTube** and **Google Shopping** search
- Any country or region, any time range from the past hour to 2004, any category

### Why this one?

Google blocks Trends scrapers a lot. Most failed runs come from one blocked request killing the whole job.
This Actor **retries every blocked request with a fresh session and a fresh IP**, so one block does not end your run.
If a keyword still can't be fetched after all retries, or Google has no data for it, it's skipped and **you are not charged for it**.

### How much does it cost?

You pay per result: one result = one keyword (with all the data you asked for), or one Trending Now search.
Check the **Pricing** tab for the current price.

### How to use it

1. Type your keywords in **Search terms**.
2. Pick a country code (US, GB, DE, IN...) or leave it empty for worldwide.
3. Pick a time range.
4. Click **Start**. Download the results as JSON, CSV, Excel or HTML, or get them by API.

**Compare terms** on: keywords are compared in groups of up to 5 on one shared scale, like on the Google Trends site.
Off: each keyword gets its own 0-100 scale.

### Input example

```json
{
  "searchTerms": ["pumpkin spice", "halloween costume"],
  "geo": "US",
  "timeRange": "past_12_months",
  "searchType": "web",
  "trendingNowGeos": ["US", "GB"]
}
```

### Output: one clean row per keyword

Open it straight in **Excel or Google Sheets**. No messy nested columns.

| Column | Example |
|---|---|
| keyword | pumpkin spice |
| trendDirection | rising |
| trendChangePct | 42 |
| averageInterest | 18.7 |
| latestInterest | 21 |
| peakInterest / peakDate | 100 / 2026-08-23 |
| topRegions | Wyoming (100), West Virginia (94), Nebraska (94) ... |
| risingQueries | when is starbucks pumpkin spice 2026 (Breakout), pumpkin spice cutwater (+350%) ... |
| topQueries | pumpkin patch, pumpkin pie, pumpkin spice latte ... |
| timeline | 2025-10-05: 70 | 2025-10-12: 84 | ... |

Trending Now rows: `rank`, `keyword`, `approxTraffic`, `startedAt`, `newsHeadlines`, `newsLinks`.

**Developers:** turn on **Add full detail arrays** to also get every data point as JSON arrays (`interestOverTime`, `interestByRegion`, `relatedQueries`).

**Fair billing:** keywords with too little search volume, keywords Google blocks after all retries, and bad country codes are **not charged**. They are listed in the run's status message.

### Use cases

- **SEO and content**: find rising keywords before they peak
- **E-commerce and print-on-demand**: check seasonal demand and the best month to launch
- **Market research**: compare brands, products or topics by country
- **Data science**: feed trend curves into dashboards and models by API

### Tips

- Keep the **Residential** proxy on. Google blocks data-center IPs.
- Values are relative (0-100), not search counts. 100 = the highest point in the chosen time and place.
- Use Apify **Schedules** to track the same keywords every day or week.

### FAQ

**Is there an official Google Trends API?**
Google announced one in July 2025, but it is still an invite-only alpha. This Actor gives you the same Trends data today, with no waiting list and no API key.

**Is this a pytrends alternative?**
Yes. pytrends was archived in April 2025 and often fails with 429 "too many requests" errors. This Actor retries blocked requests with fresh IPs, so you get results instead of 429 errors.

**Can I get YouTube, News, Image or Google Shopping trends?**
Yes. Pick the **Search type** in the input.

**Does it work for any country and language?**
Yes. Use any 2-letter country code (or a region like US-CA), or leave it empty for worldwide. Keywords can be in any language.

### Is it legal?

It collects only public, aggregated Google Trends data, with no personal data.
Check that your use follows Google's terms and the law where you are.

# Actor input Schema

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

Keywords to look up. One result per keyword.

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

Two-letter country code like US, GB, DE, or a region like US-CA. Leave empty for worldwide.

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

How far back to look.

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

Overrides Time range. Format: 2024-01-01 2024-12-31

## `searchType` (type: `string`):

Which Google search to measure.

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

Google Trends category number. 0 = all categories. Examples: 18 = Shopping, 71 = Food & Drink, 958 = Jobs & Education.

## `compareTerms` (type: `boolean`):

On: terms are compared in groups of up to 5, like on the Google Trends site, so values share one scale. Off: each term gets its own 0-100 scale.

## `interestOverTime` (type: `boolean`):

The 0-100 curve over time, plus a summary.

## `interestByRegion` (type: `boolean`):

Score for each country, state or city.

## `relatedQueries` (type: `boolean`):

Top and rising searches for each keyword.

## `includeRawData` (type: `boolean`):

Off: one clean row per keyword, easy in Excel and CSV. On: also adds every data point as nested arrays (best for JSON/API, makes CSV very wide).

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

Also get today's trending searches for these country codes, e.g. US, GB, IN.

## `maxConcurrency` (type: `integer`):

How many keywords to fetch at the same time, each with its own IP. Higher = faster.

## `proxy` (type: `object`):

Residential proxy is strongly recommended. Google blocks data-center IPs.

## Actor input object example

```json
{
  "searchTerms": [
    "pumpkin spice",
    "halloween costume"
  ],
  "geo": "US",
  "timeRange": "past_12_months",
  "searchType": "web",
  "category": 0,
  "compareTerms": false,
  "interestOverTime": true,
  "interestByRegion": true,
  "relatedQueries": true,
  "includeRawData": false,
  "maxConcurrency": 10,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

No description

## `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 = {
    "searchTerms": [
        "pumpkin spice",
        "halloween costume"
    ],
    "geo": "US",
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("serenido/google-trends-reliable").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": [
        "pumpkin spice",
        "halloween costume",
    ],
    "geo": "US",
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("serenido/google-trends-reliable").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": [
    "pumpkin spice",
    "halloween costume"
  ],
  "geo": "US",
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call serenido/google-trends-reliable --silent --output-dataset

```

## MCP server setup

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

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/X7AGc2d2H41FBzw88/builds/79Y28XgJhdVPBFiEo/openapi.json
