# Topic Trends Tracker: Google Trends Alternative, Real Numbers (`pandadad0214/topic-trends-tracker`) Actor

Use this to compare public interest in topics, brands, products or people over time with real view counts (Wikipedia pageviews): daily and monthly views, 30-day and year-over-year change, peaks, spike days and a 0-100 interest index. Excel and CSV.

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

## Pricing

Pay per event

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

## Topic Trends Tracker: Google Trends Alternative, Real Numbers

> **Compare public interest in any topic, brand, product or person with real numbers instead of a 0-100 sample.** Topic Trends Tracker measures how many people open each topic's **Wikipedia article** every day and gives you **daily and monthly views**, **30-day and year-over-year change**, **peak day**, **spike days**, a **rising / falling trend** and a **0-100 interest index**, with a **Google-Trends-style Excel export** (one column per topic). Apify's free plan includes $5 of monthly platform credit, enough for about 2,500 topics at $0.002 each (pricing below).

**No proxies, no captchas, no "429 Too Many Requests": the data comes from the free, official Wikimedia pageviews API.**

Google Trends is the go-to for "is this getting more popular?", but it only gives relative 0-100 values, re-scales every time you change the comparison, limits you to 5 terms and blocks automated access. **Topic Trends Tracker** answers the same question with an open data source:

- 📈 **Real counts:** daily and monthly views of each topic's Wikipedia article, people only (bots and crawlers excluded) by default
- 🔁 **Change:** last 30 days vs the prior 30 days, and vs the same 30 days a year ago
- 🚀 **Trend label:** surging / rising / flat / falling from the last six months
- ⛰️ **Peaks and spikes:** the busiest day and up to 5 spike days (handy for spotting news events, launches and seasonality)
- 🧮 **Interest index 0-100:** compare any number of topics (not just 5) on one scale
- 🔎 **Smart matching:** plain words are matched to the right article, redirects followed (e.g. *Ozempic* → *Semaglutide*), disambiguation pages skipped; or paste an exact Wikipedia link
- 🌍 **Any Wikipedia language:** en, de, fr, es, ja, pt… and desktop / mobile split
- 📊 **Excel + CSV:** Topics sheet, Monthly and Daily sheets with one column per topic, ready to chart
- 💸 **$0.002 per topic.** 100 topics cost $0.20, whatever the period. Topics with no article cost nothing

### Who it's for

- **Content and SEO teams:** pick topics with rising interest, time content around seasonal peaks
- **Marketers and brand managers:** track brand and competitor awareness month by month
- **Product, e-commerce and dropshipping researchers:** validate product and category trends before you invest
- **Investors and analysts:** alternative data on public attention for companies, drugs, technologies and assets
- **Journalists and researchers:** measure attention around events with transparent, citable public data
- **AI agents:** a reliable "how popular is X and is it growing?" tool that never gets blocked

### How to use it

1. Click **Try for free**.
2. Enter **topics**, one per line (words or Wikipedia links).
3. Choose **how many months back** (default 12) and, optionally, a Wikipedia **language** and **device**.
4. Click **Start**. 50 topics take under a minute. Download **TRENDS_XLSX**, **TOPICS_CSV** or **DAILY_CSV** from **Storage → Key-value store**, or use the dataset via API.

#### Input example

```json
{
  "topics": ["ChatGPT", "Ozempic", "Pickleball", "https://en.wikipedia.org/wiki/Stanley_(drinkware_company)"],
  "months": 24,
  "language": "en"
}
```

### Task examples

- **AI assistant race:** `["ChatGPT", "Claude (language model)", "Gemini (chatbot)", "Perplexity AI", "Microsoft Copilot"]`, 24 months.
- **Product research:** candidate products or categories (`"Air fryer"`, `"Walking pad"`, `"Matcha"`); keep the ones with `trend: rising` and positive `yoyChangePct`.
- **Brand vs competitors, monthly:** your brand and 5 competitors, scheduled on the 1st of every month.
- **Seasonality check:** one topic over 60 months; read the Monthly sheet to see when interest peaks every year.
- **Local market:** set `language` to `de` or `ja` to measure interest in another country's Wikipedia.

### Output example

One row per topic. A real row from a test run:

```json
{
  "topic": "Pickleball",
  "input": "Pickleball",
  "article": "Pickleball",
  "language": "en",
  "description": "Racket sport",
  "wikidataId": "Q866224",
  "url": "https://en.wikipedia.org/wiki/Pickleball",
  "trend": "falling",
  "totalViews": 2689295,
  "avgDailyViews": 3679,
  "medianDailyViews": 3575,
  "last30dViews": 71247,
  "prior30dViews": 82104,
  "change30dPct": -13.2,
  "sameWindowLastYearViews": 102317,
  "yoyChangePct": -30.4,
  "peakDate": "2026-07-10",
  "peakViews": 7746,
  "spikes": [
    "2026-07-10 (7,746)",
    "2025-03-05 (7,500)"
  ],
  "monthlyViews": [
    {
      "month": "2024-11",
      "views": 122779
    },
    {
      "month": "2024-12",
      "views": 117177
    },
    "…",
    {
      "month": "2026-10",
      "views": 74196
    },
    {
      "month": "2026-11",
      "views": 2148
    }
  ],
  "daysTracked": 731,
  "from": "2024-11-01",
  "to": "2026-11-01",
  "status": "tracked",
  "interestIndex": 3.8,
  "agentSummary": "Pickleball (Wikipedia: Pickleball): interest index 3.8/100, falling; 3,679 views/day on average (2024-11-01 to 2026-11-01); last 30 days 71,247 (-13.2% vs prior 30); -30.4% vs a year ago; peak 7,746 on 2026-07-10"
}
```

#### Fields

| Field | What it is |
|---|---|
| `topic`, `article`, `url`, `description`, `wikidataId`, `language` | What you asked for and the Wikipedia article it matched |
| `interestIndex` | 0-100: average daily views scaled so the most-viewed topic in the run = 100 |
| `trend` | surging (last 30 days ≥ 2× prior 30), rising, flat or falling (last 6 months) |
| `totalViews`, `avgDailyViews`, `medianDailyViews` | Over the chosen period |
| `last30dViews`, `prior30dViews`, `change30dPct` | Recent momentum |
| `sameWindowLastYearViews`, `yoyChangePct` | Last 30 days vs the same 30 days a year earlier |
| `peakDate`, `peakViews`, `spikes` | Busiest day and up to 5 spike days (well above normal) |
| `monthlyViews` | List of `{month, views}` |
| `dailyViews` | List of `{date, views}` (when **Include the daily series** is on) |
| `from`, `to`, `daysTracked`, `status` | Period covered; `no Wikipedia article found` rows are free |
| `agentSummary` | One plain-English line per topic |

#### Files in the key-value store

| Key | What it is |
|---|---|
| `TRENDS_XLSX` | Excel workbook: **Topics**, **Monthly** and **Daily** (one column per topic), **Run log**, **Read me** |
| `TOPICS_CSV` | Topics table as CSV |
| `DAILY_CSV` | Daily views, one column per topic |
| `SUMMARY` | JSON: `ranking` (topics by interest with trend and 30-day change), `notFound`, a one-line `takeaway` and `nextStep` |

### For AI agents

Use this Actor to answer "how much interest is there in X, and is it rising?" or to compare several topics, brands or products. Call it with Apify's MCP server (`https://mcp.apify.com`, tool `call-actor`, Actor `pandadad0214/topic-trends-tracker`) or the API (`POST https://api.apify.com/v2/acts/pandadad0214~topic-trends-tracker/run-sync-get-dataset-items`).

Minimal input:

```json
{"topics": ["ChatGPT", "Ozempic"]}
```

Each dataset item includes:

- `agentSummary`: one line, e.g. `Ozempic (Wikipedia: Semaglutide): interest index 2/100, falling; 1,820 views/day on average (2025-11-02 to 2026-11-01); last 30 days 34,356 (-12.1% vs prior 30); -52.2% vs a year ago; peak 4,044 on 2025-12-23`
- `interestIndex`, `trend`, `change30dPct`, `yoyChangePct`: the verdict
- `monthlyViews`: the series

The run's key-value store has a `SUMMARY` record with a `ranking`, a one-line `takeaway` and `nextStep`. Topics without an article come back with a `status` and are not charged.

### Pricing

**Apify paid-plan discounts:** Bronze members pay 10% less, Silver 20% less and Gold 30% less per topic. Free-plan prices are shown below; the discount applies automatically.

**$0.002 per topic tracked** (pay-per-event), plus a tiny Actor-start fee of $0.00005. Any period up to 10 years, monthly and daily series, Excel, CSV and summary are included. Topics with no Wikipedia article or no pageviews cost nothing. Your **maximum charge per run** is respected.

### FAQ

**Is this the same as Google Trends?** No, and that is the point. Google Trends shows relative search interest; this shows how many people actually read about a topic on Wikipedia, as real numbers. The two usually move together for news, products and brands, and Wikipedia data is open, stable and not rate-limited.

**Where does the data come from?** The Wikimedia Foundation's public pageviews API (data from July 2015, updated daily). The last full day available is yesterday (UTC).

**My topic matched the wrong article.** Paste the exact Wikipedia link (e.g. `https://en.wikipedia.org/wiki/Mercury_(planet)`) or a more specific name. The matched `article` is shown in every row.

**Can a brand without a Wikipedia article be tracked?** No; such topics are listed with `no Wikipedia article found` and are free. Most notable brands, products, drugs, technologies, people and places have one.

**Can I schedule it?** Yes. Save your input as a task and schedule it weekly or monthly; each run is a fresh snapshot.

**Can I use it from code or an AI agent?** Yes, via the Apify API, the Python/JS clients, or as a tool through Apify's MCP server.

### More Panda Federation tools

- [Company Hiring Signals](https://apify.com/pandadad0214/company-hiring-signals)
- [Company Website Enricher](https://apify.com/pandadad0214/company-website-enricher)
- [AI Search & SEO Audit](https://apify.com/pandadad0214/ai-search-seo-audit)
- [Literature Search](https://apify.com/pandadad0214/literature-search)
- [Podcast Leads Finder](https://apify.com/pandadad0214/podcast-leads-finder)

[All Panda Federation Actors on Apify](https://apify.com/pandadad0214)

Questions or ideas? Open an issue on this Actor's **Issues** tab.

### Changelog

- **2026-11-02:** First public release: topic-to-article matching (redirects, disambiguation, links, any language), daily and monthly pageviews, 30-day and year-over-year change, trend label, peaks and spikes, interest index, Google-Trends-style Excel and CSV, agent-friendly `agentSummary` and `takeaway`, pay-per-event pricing with Bronze/Silver/Gold discounts.

# Actor input Schema

## `topics` (type: `array`):

One per line: a topic, brand, product, person, place or a Wikipedia link (https://en.wikipedia.org/wiki/ChatGPT). Each is matched to its Wikipedia article (redirects followed, e.g. Ozempic → Semaglutide). For ambiguous words like Mercury, paste the exact article link. Leave empty for a 3-topic demo.

## `months` (type: `integer`):

Period to analyze, ending yesterday. 1 to 120 months (data starts July 2015); default 12. Year-over-year change is always computed when a year of history exists.

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

Language code of the Wikipedia edition to measure: en, de, fr, es, ja, pt, it, nl, pl… Default en. A full Wikipedia link overrides this per topic.

## `device` (type: `string`):

All devices (default), desktop only, or mobile web only. The mobile apps are included under All devices.

## `excludeBots` (type: `boolean`):

On by default. Off counts every request, including automated ones.

## `includeDailySeries` (type: `boolean`):

Adds a dailyViews array to every topic row (handy for charts via API). The daily numbers are always in the Excel and DAILY_CSV files either way.

## `maxTopics` (type: `integer`):

You pay per topic tracked, so this also caps the cost. 1 to 1,000; default 100.

## Actor input object example

```json
{
  "topics": [
    "Ozempic",
    "Pickleball",
    "https://en.wikipedia.org/wiki/Stanley_(drinkware_company)"
  ],
  "months": 12,
  "language": "en",
  "device": "all",
  "excludeBots": true,
  "includeDailySeries": false,
  "maxTopics": 100
}
```

# Actor output Schema

## `table` (type: `string`):

No description

## `xlsx` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `daily` (type: `string`):

No description

## `summary` (type: `string`):

Run-level summary record. Agent-friendly keys: `takeaway` (one-line result), `ranking`, `notFound`, `nextStep` and `nextSteps`.

# 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 = {
    "topics": [
        "ChatGPT",
        "Claude (language model)",
        "Gemini (chatbot)"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("pandadad0214/topic-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 = { "topics": [
        "ChatGPT",
        "Claude (language model)",
        "Gemini (chatbot)",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("pandadad0214/topic-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 '{
  "topics": [
    "ChatGPT",
    "Claude (language model)",
    "Gemini (chatbot)"
  ]
}' |
apify call pandadad0214/topic-trends-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,pandadad0214/topic-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/XR69BFbv1v78ta0HO/builds/yuoaQ00ntmrunAP8s/openapi.json
