Skip to content

trendspyg

Google Trends data in Python — real-time trending topics and keyword analysis over time. A modern, actively maintained alternative to the archived pytrends.

pip install trendspyg            # core (RSS path)
pip install trendspyg[all]       # + CLI, async, pandas/parquet
pip install trendspyg[mcp]       # + MCP server for Claude & AI agents

Three data paths

1.9.0: pytrends code runs on trendspyg after changing its imports to trendspyg.compat, trending calls included. See Migrating from pytrends. 1.8.0 added topic lookup without Chrome. Start with Interpreting data and workflows.

Path Answers Speed Chrome?
RSS what's trending right now (10–20 trends + news/images) sub-second* No
CSV what's trending right now (480+ trends, time/category filters) ~10s Yes
Explore how interest in a keyword moves — over time, by region, related queries, 2–5-keyword comparison, web/YouTube/News/Images/Shopping ~10–40s (cached repeats instant) Yes

* Network-dominated; honest measured numbers per path live in benchmarks.

Explore is rate-limit sensitive

Roughly 8–10 fresh browser sessions in a short burst (~15 min) is enough for Google to serve its hard 429 block page to your IP — trendspyg raises RateLimitError at once, and recovery takes tens of minutes at least. Space sessions out, reuse results with cache="disk" (no browser run), and use the RSS path for anything you poll. Since 1.6.0, cookies="disk" makes each session a returning visitor (Google refuses new visitors first) — opt-in, it keeps a Google cookie on disk.

Sixty seconds of everything

from trendspyg import (
    download_google_trends_rss,
    download_google_trends_interest_over_time,
    download_google_trends_comparison,
    get_keyword_history,
)

# What's trending in the US right now?
trends = download_google_trends_rss(geo="US", normalize=True)

# How has interest in "bitcoin" moved this year? (cache: repeats skip the browser)
series = download_google_trends_interest_over_time("bitcoin", cache="disk")

# bitcoin vs ethereum on ONE shared 0-100 scale (the pytrends kw_list use case)
env = download_google_trends_comparison(["bitcoin", "ethereum"])

# YouTube search interest instead of web (new in 1.5.0)
yt = download_google_trends_interest_over_time("bitcoin", gprop="youtube")

# Archive fetches locally, then ask "when did X first trend?"
download_google_trends_rss(geo="US", archive=True)
get_keyword_history("bitcoin")

Or from the terminal:

trendspyg rss --geo US
trendspyg explore -k bitcoin --cache disk --archive
trendspyg watch --geo US --events new,volume_up
trendspyg history -k bitcoin --timeline

Where to go next