# Google Trends Scraper & API: Interest, Regions, Trending Now (`vero-api/google-trends-scraper`) Actor

Google Trends API and scraper: export search trends to CSV, Excel or JSON. Interest over time since 2004, by country, state or city, rising related searches, YouTube and Shopping trends, and today's trending searches with search volume and news. Compare up to 5 keywords.

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

## Pricing

from $0.30 / 1,000 search term 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

## Google Trends Scraper & API: Interest, Regions, Trending Now

Get Google Trends data for any keyword, ready to download as CSV, Excel or JSON, or to pull into your own app as a Google Trends API. See how search interest changes over time, where a keyword is most popular, and which related searches are rising. Compare up to 5 keywords on one scale, in any country, time range, category or search type: Web, YouTube, Google Shopping, News or Images.

Or get Google's full **Trending Now** list: every search spiking in a country today, with its search volume, growth and the news stories behind it.

### What you can do

- **Track search trends over time** for any keyword, from the past hour to every month since 2004.
- **See what's trending on Google today**: hundreds of trending searches in any country, from the past 4 hours to 7 days, with search volume, growth, related terms, category and top news stories.
- **Compare up to 5 keywords** on the same 0–100 scale: `coffee, tea, matcha`.
- **See where a keyword is most popular** by country, state or province, city, or US metro area.
- **Find trending keywords**: the top 25 related searches, plus the fastest-rising ones and breakouts.
- **Track YouTube trends and product trends**: measure searches on YouTube, Google Shopping, Google News or Image search instead of the web.
- **Go back to 2004** for historical Google Trends data and seasonal patterns.
- **Paste Google Trends links** straight from your browser. Each link keeps its own settings.
- **Schedule it**: run daily or weekly and watch every keyword over time.

### Who uses it

- **SEO and content teams**: find rising keywords before they peak, and plan content around seasonal trends.
- **Marketers and brands**: compare your brand with competitors, and see which regions care most.
- **Ecommerce and product teams**: spot product trends on Google Shopping and time launches and stock to demand.
- **YouTubers and creators**: see which topics are growing on YouTube search.
- **Analysts and developers**: feed Google Trends data into dashboards, spreadsheets, models or AI agents, with no pytrends scripts to maintain.

### How to use it

1. Add your search terms, one per line. Put up to 5 terms on one line, separated by commas, to compare them.
2. Pick a country, time range, category and search type, or keep the defaults (worldwide, past 12 months).
3. Click **Start**.
4. Download your results as JSON, CSV, or Excel, or browse them in the Output tab: overview, interest over time, interest by region, rising searches, top searches and trending now.

For what's trending, set **What to get** to **Trending now**, pick the country under **Trending in** (United States by default) and click **Start**. Narrow it by time window or category, or keep only searches that are still spiking.

### What you get

One result per search term. Compared terms each get their own result, on the shared scale.

```json
{
  "searchTerm": "sunscreen",
  "comparedWith": [],
  "geo": "US",
  "timeRange": "today 5-y",
  "category": 0,
  "searchType": "web",
  "trendsUrl": "https://trends.google.com/trends/explore?q=sunscreen&date=today+5-y&geo=US",
  "averageInterest": 26,
  "interestOverTime": [
    { "time": "2026-10-11T00:00:00.000Z", "formattedTime": "Oct 11 – 17, 2026", "value": 16, "isPartial": false },
    { "time": "2026-10-18T00:00:00.000Z", "formattedTime": "Oct 18 – 24, 2026", "value": 15, "isPartial": true }
  ],
  "interestByRegion": [
    { "geoCode": "US-WY", "geoName": "Wyoming", "value": 100, "lat": null, "lng": null },
    { "geoCode": "US-HI", "geoName": "Hawaii", "value": 83, "lat": null, "lng": null }
  ],
  "relatedQueriesTop": [
    { "query": "best sunscreen", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=best+sunscreen&date=today+5-y&geo=US" }
  ],
  "relatedQueriesRising": [
    { "query": "joseon sunscreen", "value": 63750, "formattedValue": "Breakout", "link": "https://trends.google.com/trends/explore?q=joseon+sunscreen&date=today+5-y&geo=US" }
  ]
}
```

Trending now gives one result per trending search:

```json
{
  "searchTerm": "texas a&m vs alabama",
  "geo": "US",
  "trendsUrl": "https://trends.google.com/trending?geo=US&hours=24&q=texas+a%26m+vs+alabama",
  "searchVolume": 200000,
  "searchVolumeIncrease": 1000,
  "trendingSince": "2026-10-24T18:00:00.000Z",
  "trendingUntil": null,
  "isActive": true,
  "categories": ["Sports"],
  "relatedTerms": ["texas a&m vs alabama", "alabama vs texas a&m", "alabama game today"],
  "newsArticles": [
    { "title": "Texas A&M vs. #13 Alabama", "url": "https://www.espn.com/watch/player/_/eventCalendarId/401856727", "source": "ESPN", "publishedAt": "2026-10-24T20:58:47.000Z", "imageUrl": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQFtVyymGBKwYptAaHIf_2QHcWkyLhXscj-rFzHESwhWfLhxr0BlYFFX7b8RBU" }
  ]
}
```

### Use it as a Google Trends API

Call it from your own code and get Google Trends data back as JSON. In Python, with the Apify client (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("vero-api/google-trends-scraper").call(run_input={
    "searchTerms": ["coffee, tea, matcha"],
    "geo": "US",
    "timeRange": "today 5-y",
})
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item["searchTerm"], item["averageInterest"])
```

For today's trending searches, send `{"mode": "trending", "trendingCountry": "US"}` instead. The same works from JavaScript, any HTTP client, Make, n8n or Zapier. Your token is under **Settings → API & Integrations** in Apify Console.

### Export flat tables: one row per data point

Every table in the Output tab is also a flat download, ready for spreadsheets, BI tools and AI pipelines. For a CSV with one row per period and search term:

```
https://api.apify.com/v2/datasets/<DATASET_ID>/items?view=interestOverTime&format=csv&token=<YOUR_APIFY_TOKEN>
```

Swap `interestOverTime` for `interestByRegion` (one row per place), `topSearches` or `risingSearches` (one row per related search). Use `format=xlsx` for Excel or `format=json` for JSON.

### Use it from your AI assistant (MCP)

Ask Claude, Cursor, VS Code, or any assistant that supports MCP about search trends in plain words. Add this server to its MCP settings:

```json
{
  "mcpServers": {
    "google-trends-scraper": {
      "url": "https://mcp.apify.com?tools=vero-api/google-trends-scraper"
    }
  }
}
```

Then just ask, for example:

- *"Is matcha growing faster than coffee in the UK this year?"*
- *"Which rising searches around running shoes should I write about?"*
- *"What's trending in Germany right now, and why?"*

### Pricing

You pay only for the results you get: one result per search term, with its full timeline, regions and related searches included, or one result per trending search, with its news included. A term Google has no data for costs nothing.

- **Search terms:** $2 per 1,000 on the free plan, down to $0.30 per 1,000 on higher Apify plans.
- **Trending searches:** $1 per 1,000 on the free plan, down to $0.50 per 1,000.

Set a spending limit on any run and it stops right there, with every result you paid for in the dataset.

### FAQ

**Do I need a Google account or API key?** No. Just add your search terms.

**Is this a pytrends alternative?** Yes. You get the same Google Trends data as pytrends, plus Google's Trending Now list, with nothing to install or keep working. Call it from Python as shown above.

**Can I export Google Trends data to CSV or Excel?** Yes. Every run downloads as CSV, Excel, JSON or XML, and the Output tab has ready-made tables for interest over time, interest by region, rising searches, top searches and trending searches.

**What do the numbers mean?** The same thing they mean on Google Trends: 100 is the peak of interest in the chosen period and place, 50 is half as popular, and 0 means too few searches to score.

**Why compare terms on one line instead of searching them separately?** Terms searched separately each get their own 0–100 scale. Terms compared on one line share a scale, so you can see which one people search for more.

**Can I pick a state or metro area instead of a whole country?** Yes. Open the chart on Google Trends with the state or metro area you want, then paste its link as a search term.

**Which countries have metro areas?** Google Trends groups the United States into metro areas and France into departments. For any other country, pick **Countries or states** or **Cities** under **Region detail**.

**How many trending searches will I get?** It depends on the country and time window: about 600 for the United States over 24 hours, and over 3,000 over 7 days. Set **Max trending searches** to get only the first ones.

**How fresh is the data?** It's live: the same numbers Google Trends shows at the moment of your run.

**Is this an official Google tool?** No. Google Trends Scraper is an independent tool. It is not affiliated with, endorsed by, or sponsored by Google. It reads the same public data anyone can see on Google Trends.

### More tools from us

- [Google Ads Transparency Scraper](https://apify.com/vero-api/google-ads-transparency-scraper): every ad an advertiser runs on Google, with dates, formats and countries.
- [YouTube Transcript Scraper](https://apify.com/vero-api/youtube-transcript-scraper): full transcripts of YouTube videos, ready for research and AI.
- [Threads Scraper](https://apify.com/vero-api/threads-scraper): posts, profiles and search results from Threads.
- [Google Maps Reviews Scraper](https://apify.com/vero-api/google-maps-reviews-scraper): reviews of any business on Google Maps.
- [Spotify Play Count Scraper](https://apify.com/vero-api/spotify-play-count-scraper): play counts for tracks, albums and artists on Spotify.

# Actor input Schema

## `mode` (type: `string`):

Pick "Trends for my search terms" to analyze your own keywords, or "Trending now" for the searches spiking in a country today.

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

One search per line. To compare up to 5 terms on the same scale, put them on one line separated by commas, like `coffee, tea`. You can also paste a Google Trends link: it keeps its own country, dates and category. Not needed for Trending now.

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

The country whose searches to measure, or Worldwide.

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

How far back to look. Short ranges show the last hours minute by minute; long ones go back to 2004.

## `startDate` (type: `string`):

Pick exact dates instead of a time range. Leave "To" empty to go up to today.

## `endDate` (type: `string`):

The last day of your custom dates.

## `category` (type: `string`):

Narrow searches to one topic, like Autos & Vehicles for "jaguar" the car rather than the animal.

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

Which Google searches to measure: regular web search, or searches on Image search, News, YouTube or Shopping.

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

Where each term is most popular, scored 0 to 100.

## `regionDetail` (type: `string`):

How detailed "Interest by region" is: countries when searching worldwide and states or provinces inside a country, or cities, or metro areas. Metro areas cover the United States and the departments of France.

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

The top 25 searches people also make, plus the fastest-rising ones: new trends and breakouts.

## `trendingCountry` (type: `string`):

The country whose trending searches you want.

## `trendingHours` (type: `string`):

How far back the list reaches.

## `trendingCategory` (type: `string`):

Only trending searches about one topic.

## `activeOnly` (type: `boolean`):

Leave out searches whose spike has already ended.

## `maxTrendingSearches` (type: `integer`):

How many trending searches you want, in the order Google Trends lists them. Leave empty to get them all.

## Actor input object example

```json
{
  "mode": "explore",
  "searchTerms": [
    "coffee, tea, matcha",
    "running shoes"
  ],
  "geo": "worldwide",
  "timeRange": "today 12-m",
  "category": "0",
  "searchType": "web",
  "includeInterestByRegion": true,
  "regionDetail": "auto",
  "includeRelatedQueries": true,
  "trendingCountry": "US",
  "trendingHours": "24",
  "trendingCategory": "0",
  "activeOnly": false
}
```

# Actor output Schema

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

One item per search term: searchTerm, geo, timeRange, averageInterest, interestOverTime, interestByRegion, relatedQueriesTop, relatedQueriesRising and trendsUrl. Trending now runs give one item per trending search: searchTerm, searchVolume, searchVolumeIncrease, trendingSince, isActive, categories, relatedTerms and newsArticles.

# 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": [
        "coffee, tea, matcha",
        "running shoes"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vero-api/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 = { "searchTerms": [
        "coffee, tea, matcha",
        "running shoes",
    ] }

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

```

## MCP server setup

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

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/0ECBhstlFdoquwP9Y/builds/cMAI5NCG4ENdQWvL6/openapi.json
