# Google Trends Scraper & API — Daily Trending Searches (`tugelbay/google-trends-tracker`) Actor

Google Trends API and scraper for daily trending searches across 50+ geos with news context. RSS-backed JSON/CSV output for SEO, content, and AI workflows. Guide: https://konabayev.com/tools/google-trends-tracker/?utm\_source=apify\_readme\&utm\_medium=referral\&utm\_campaign=google-trends-tracker

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

## Pricing

from $1.00 / 1,000 trend records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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 API and scraper for daily trending searches: choose a geography and return RSS-backed trend topics, traffic approximations, publication dates, news context, and official explore links as structured data.

Pull daily trending Google searches across **US, GB, DE, RU, KZ, JP, BR, IN and 50+ markets** with related news context — in one Apify run. This is a lightweight Google Trends scraper and API alternative for daily trends: RSS-backed, high-success, no Playwright, no proxy gymnastics, and ready for CSV/JSON export, content, SEO, and AI-agent workflows.

For implementation notes, examples, and SEO/GEO trend-monitoring workflows, see the <a href="https://konabayev.com/tools/google-trends-tracker/?utm_source=apify_readme&utm_medium=referral&utm_campaign=google-trends-tracker" rel="nofollow sponsored">Google Trends Tracker guide</a> on Konabayev.com.

<a href="https://apify.com/tugelbay/google-trends-tracker">
  <img src="https://api.apify.com/v2/key-value-stores/bplRdpnd85eGQkW1N/records/google-trends-tracker-hero.png" alt="Google Trends API alternative with multi-geo daily searches" width="100%">
</a>

<p>
  <img src="https://api.apify.com/v2/key-value-stores/bplRdpnd85eGQkW1N/records/google-trends-tracker-input-output.png" alt="Google Trends API alternative input and output example" width="49%">
  <img src="https://api.apify.com/v2/key-value-stores/bplRdpnd85eGQkW1N/records/google-trends-tracker-dataset-preview.png" alt="Daily Google trends dataset preview" width="49%">
</p>

### What it does

For each country code in your `geos` input, the actor fetches the day's top trending search queries plus the news articles Google associates with each trend (title, URL, publication source, snippet, picture). Results are pushed as structured records ready for analytics dashboards, CRM enrichment, content-planning workflows, or AI-agent ingestion.

### Google Trends API comparison: why use this Actor

| Workflow | This Actor | Google Trends website | Custom RSS integration |
| --- | --- | --- | --- |
| Best fit | Scheduled multi-geo trend rows in an Apify Dataset | Manual exploration and charts | Teams maintaining their own parser and storage |
| Input | One or more country codes plus a result limit | Interactive filters | Developer-defined |
| Output | Structured trends and available `newsItems[]` | Visual interface and exports | Whatever your integration implements |
| Automation | Apify API, schedules, webhooks, MCP | Manual or separate automation | Custom infrastructure |
| Pricing | Published PPE trend/news events plus Actor start | Google product terms apply | Your hosting and maintenance cost |
| Trade-off | Depends on the public RSS fields Google exposes | Richer interactive exploration | Maximum control with ongoing maintenance |

### Input

```json
{
  "geos": ["US", "GB", "DE", "RU"],
  "language": "en-US",
  "maxItems": 100,
  "includeNewsItems": true
}
```

| Field              | Type     | Default  | Notes                                                  |
| ------------------ | -------- | -------- | ------------------------------------------------------ |
| `geos`             | string\[] | `["US"]` | ISO country codes; pass several for cross-market scans |
| `language`         | string   | `en-US`  | BCP-47 locale tag                                      |
| `maxItems`         | int      | 25       | Hard cap across all geos (1–1000); raise for production |
| `includeNewsItems` | bool     | true     | Attach related news per trend                          |

### Ready-to-run presets

Use these as production starting points instead of a random demo input.

#### Daily US content brief

```json
{
  "geos": ["US"],
  "language": "en-US",
  "maxItems": 25,
  "includeNewsItems": true
}
```

#### Multi-market SEO watch

```json
{
  "geos": ["US", "GB", "DE", "IN"],
  "language": "en-US",
  "maxItems": 80,
  "includeNewsItems": true
}
```

#### RU/KZ trend pulse

```json
{
  "geos": ["RU", "KZ"],
  "language": "ru-RU",
  "maxItems": 40,
  "includeNewsItems": true
}
```

### Output data fields

```json
{
  "query": "champions league final",
  "geo": "GB",
  "language": "en-GB",
  "approxTraffic": "500K+",
  "pubDate": "Mon, 5 May 2026 14:30 GMT",
  "newsItems": [
    {
      "title": "Champions League Final Live: Real Madrid vs Borussia Dortmund",
      "snippet": "Goals, lineups and live commentary from Wembley...",
      "url": "https://www.bbc.co.uk/sport/football/...",
      "source": "BBC Sport",
      "pictureUrl": "https://t1.gstatic.com/..."
    }
  ],
  "newsItemCount": 5,
  "trendUrl": "https://trends.google.com/trends/explore?q=champions+league+final&geo=GB"
}
```

### Use cases

- **Content marketing teams** — daily trend digest for newsroom briefs, blog ideation, social posting calendars
- **SEO agencies** — pair with `tugelbay/keyword-rank-tracker` to spot rising queries before they hit search-volume tools
- **Investor / market intel** — track what consumers are searching across markets in real time
- **AI agents** — give your assistant a "what's hot today" tool via PPE-billable Apify integration
- **Cross-border arbitrage** — see what's trending in market A that hasn't yet hit market B

### Programmatic usage

### How to run a trend check

1. Choose a supported geography and a bounded maximum number of trends.
2. Run a sample and verify `query`, `geo`, `pubDate`, traffic approximation, news context, and the Google Trends explore URL.
3. Export or schedule the validated feed; compare `pubDate` values instead of treating list order as a permanent rank.

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("tugelbay/google-trends-tracker").call(run_input={
    "geos": ["US", "GB", "JP"],
    "maxItems": 50,
})
for trend in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(trend["query"], "—", trend["approxTraffic"])
```

#### JavaScript

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_TOKEN" });
const { defaultDatasetId } = await client
  .actor("tugelbay/google-trends-tracker")
  .call({
    geos: ["US", "GB"],
    maxItems: 50,
  });
const { items } = await client.dataset(defaultDatasetId).listItems();
console.log(items);
```

#### LangChain tool

```python
from langchain_core.tools import tool
from apify_client import ApifyClient

@tool
def whats_trending_now(country: str = "US") -> list[dict]:
    """Return today's top Google searches in {country}."""
    client = ApifyClient("YOUR_TOKEN")
    run = client.actor("tugelbay/google-trends-tracker").call(run_input={
        "geos": [country], "maxItems": 20,
    })
    return list(client.dataset(run["defaultDatasetId"]).iterate_items())
```

### Pricing (PPE)

| Event              | Price                                  |
| ------------------ | -------------------------------------- |
| Actor start        | $0.005                                 |
| Daily-trend record | $0.001                                 |
| News-item child    | $0.0005 (when `includeNewsItems=true`) |

The actor charges these PPE events explicitly: `actor-start` once per run, `daily-trend` once per returned trend record, and `news-item` for each attached related news item.

A typical 50-trend run with news: ~$0.005 + 50×$0.001 + 250×$0.0005 ≈ $0.18 per run.

### Cost vs alternatives

- Pulling 100 trends/day × 30 days from rental rivals: **$30/mo flat**
- Pulling the same here: 30 × ~$0.30 = **$9/mo** (70% saving) and you only pay for runs you actually use

### Validation evidence and official sources (2026-07-14)

Validation on 2026-07-14 is intentionally bounded:

- [Google Trends](https://trends.google.com/trends/) is the official source surface; the Actor uses its public daily-trends RSS output rather than claiming a private Google Trends API.
- Google's [Terms of Service](https://policies.google.com/terms) remain authoritative, and users must follow current access, attribution, and downstream-use requirements.
- The output contract requires `query`, `geo`, and `pubDate`, preserving the source publication time for every trend row.
- Strict Actor QA checks schemas, PPE events, links, metadata, Docker configuration, and the quality contract before release.

This evidence does not guarantee a topic's future popularity, exact search volume, organic ranking, traffic, or AI citation.

### FAQ

**Q: How fresh are the trends?**
A: Google's RSS feed is updated hourly; this actor returns whatever Google has staged for the requested geo at fetch time.

**Q: Do I need an Apify proxy?**
A: No. RSS endpoint is public.

**Q: Can I run this on a schedule?**
A: Yes — use Apify Schedules to run hourly/daily and pipe results into your dataset of choice.

**Q: Why is my geo returning empty?**
A: Some smaller markets have sparse trending data. Try a major market (US, GB, DE, FR, JP) to verify the actor is functioning, then narrow to your target.

**Q: How does it differ from `keyword-rank-tracker`?**
A: This finds *what's trending*; `keyword-rank-tracker` measures *where you rank* on a known keyword. Use both together — trends → rank check → optimize.

### Limitations

- Google's RSS feed exposes only the top ~20 daily trends per geo — not the full long-tail trending list (that requires the Web UI behind their bot wall).
- Locale string must match Google's accepted set (e.g. `en-US`, not `en_US`).
- News-item arrays vary in length; some trends have 0 news items.

### Changelog

### Support

Send the run ID, geography, sanitized input, expected trend, observed `pubDate`, and visible error. Do not send account credentials or private campaign data.

- 0.1.0 (2026-05-05): Initial release — multi-geo, news-item enrichment, PPE pricing.

### Related Actors

- [keyword-rank-tracker](https://apify.com/tugelbay/keyword-rank-tracker) — Monitor organic positions for keywords selected from your topic research.
- [google-ai-overview-tracker](https://apify.com/tugelbay/google-ai-overview-tracker) — Monitor AI-answer mentions and citations for selected prompts.

# Actor input Schema

## `geos` (type: `array`):

ISO country codes to fetch trends for (e.g., US, GB, DE, FR, RU, KZ, BR, IN, JP, KR). Pass multiple in one run for cross-market comparisons.

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

BCP-47 locale tag (e.g., en-US, ru-RU, de-DE). Default en-US.

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

Hard cap across all geos (1-1000). Default 25 for fast first runs — bump up for production.

## `includeNewsItems` (type: `boolean`):

Attach the news\_item array to each trend (title, url, source, snippet, picture). Disable to slim output.

## Actor input object example

```json
{
  "geos": [
    "US"
  ],
  "language": "en-US",
  "maxItems": 1,
  "includeNewsItems": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

Trending search data: query, country/language, traffic approximation, publication date, news item count, Google Trends explore URL.

# 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 = {
    "geos": [
        "US"
    ],
    "language": "en-US",
    "maxItems": 1,
    "includeNewsItems": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("tugelbay/google-trends-tracker").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 = {
    "geos": ["US"],
    "language": "en-US",
    "maxItems": 1,
    "includeNewsItems": False,
}

# Run the Actor and wait for it to finish
run = client.actor("tugelbay/google-trends-tracker").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 '{
  "geos": [
    "US"
  ],
  "language": "en-US",
  "maxItems": 1,
  "includeNewsItems": false
}' |
apify call tugelbay/google-trends-tracker --silent --output-dataset

```

## MCP server setup

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

```

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/2f7S7p2HF5J6sfQEU/builds/gwvYTtTzn2jvDpEIo/openapi.json
