Skip to main content

trendsmcp

PyPI version Python versions License: MIT

Python client for live keyword trend data. Time series, growth percentages, and live feeds from Google Search, YouTube, Reddit, Amazon, TikTok, Wikipedia, npm, Steam, app downloads, and more. One API key. No scraping.

Works as a Python API client in any script, notebook, or pipeline. Also works as an MCP tool — plug it into Claude, Cursor, VS Code Copilot, or any MCP-compatible AI host.

Powered by trendsmcp.ai.

Get a free API key — 100 requests/month, no credit card.

Full API docs · llms.txt


Install

pip install trendsmcp

1. Get a free API key

  1. Open Get API key
  2. Enter your email — no credit card
  3. Copy the key (tmcp_liv…)
export TRENDSMCP_API_KEY="tmcp_liv…"

2. Quick start

import os
from trendsmcp import TrendsMcpClient

client = TrendsMcpClient(api_key=os.environ["TRENDSMCP_API_KEY"])

# ~5 years of weekly time series (REST mode: get_time_series)
series = client.get_time_series(source="google search", keyword="bitcoin")
print(series[0])
# TrendsDataPoint(date='2026-03-21', value=47, volume=25853617, keyword='bitcoin', source='google search')

# Period-over-period growth (defaults to ["12M"] if omitted)
growth = client.get_growth(
    source="google search",
    keyword="nike",
    percent_growth=["12M", "3M", "YTD"],
)
print(growth.results[0])
# GrowthResult(period='12M', growth=-12.31, direction='decrease', ...)

# What's trending right now
trending = client.get_top_trends(type="Google Trends", limit=10)
print(trending.data)
# [[1, 'chuck norris'], [2, 'project hail mary'], ...]

get_trends(...) is kept as an alias for get_time_series(...). Prefer get_time_series in new code.


Methods

get_time_series / get_trends

REST mode: get_time_series (alias get_trends). Returns ~5 years of weekly points for one source + keyword.

Parameter Type Required Description
source str Yes Keyword source (see table below)
keyword str Yes Keyword to query
data_mode str No "weekly" (default) or "daily"

get_growth

REST mode: get_growth. Point-to-point % growth. Omitting percent_growth defaults to ["12M"].

Presets: 7D 14D 30D 1M 2M 3M 6M 9M 12M 1Y 18M 24M 2Y 36M 3Y 48M 60M 5Y MTD QTD YTD

get_top_trends

REST mode: get_top_trends. Live ranked feed. Omit type to get all feeds. Optional category, limit (default 25), offset.

Feeds: Google Trends · Google News Top News · TikTok Trending Hashtags · TikTok Trending Searches · TikTok Shop Hot Products · YouTube Trending · X (Twitter) Trending · Reddit Hot Posts · Reddit World News · Wikipedia Trending · Amazon Best Sellers Top Rated · Amazon Best Sellers by Category · App Store Top Free · App Store Top Paid · Google Play · Top Websites · Spotify Top Podcasts · Steam Most Played · GitHub Trending Repos · IMDb MOVIEmeter · Open Library Trending Books


Keyword sources

source Description Keyword format
"google search" Google search volume Any keyword or phrase
"google images" Google image search volume Any keyword or phrase
"google news" Google News search volume Any keyword or phrase
"google shopping" Google Shopping search volume Any keyword or phrase
"youtube" YouTube search volume Any keyword or phrase
"tiktok" TikTok hashtag volume Hashtag or topic
"reddit" Subreddit subscribers Subreddit name only, no r/
"amazon" Amazon product search volume Product name or category
"wikipedia" Wikipedia page views Article title or topic
"news volume" News article mention volume Any keyword or phrase
"news sentiment" News sentiment score Any keyword or phrase
"app downloads" Android app downloads (AppBrain) Bundle ID e.g. com.openai.chatgpt
"app rankings" Android app store rankings Bundle ID e.g. com.himshers.hims
"npm" npm package weekly downloads Exact package name
"steam" Steam concurrent players Game display name e.g. Elden Ring

Always-current list: docs · data sources


Async

import asyncio, os
from trendsmcp import AsyncTrendsMcpClient

async def main():
    client = AsyncTrendsMcpClient(api_key=os.environ["TRENDSMCP_API_KEY"])
    google, youtube = await asyncio.gather(
        client.get_time_series(source="google search", keyword="AI"),
        client.get_time_series(source="youtube", keyword="AI"),
    )
    print(google[-1].value, youtube[-1].value)

asyncio.run(main())

Error handling

from trendsmcp import TrendsMcpClient, TrendsMcpError
import os

client = TrendsMcpClient(api_key=os.environ["TRENDSMCP_API_KEY"])
try:
    client.get_time_series(source="google search", keyword="bitcoin")
except TrendsMcpError as e:
    print(e.status, e.code, e.message)  # e.g. 429 rate_limited

MCP

Same API key works with the hosted MCP server. See docs → Connect.

{
  "mcpServers": {
    "trends-mcp": {
      "url": "https://api.trendsmcp.ai/mcp",
      "transport": "http",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Links

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trendsmcp-1.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trendsmcp-1.1.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file trendsmcp-1.1.0.tar.gz.

File metadata

  • Download URL: trendsmcp-1.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for trendsmcp-1.1.0.tar.gz
Algorithm Hash digest
SHA256 bd4681b8e6966b61da447bb41a260cddc9e83766eb8c37c6a637f28edaa945f4
MD5 de0409028f1cd267d13a612284fb6365
BLAKE2b-256 bf9bf47250c733d78561c880d03079354422180ae83eb37c91ab4c6e7e2e8c86

See more details on using hashes here.

File details

Details for the file trendsmcp-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: trendsmcp-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for trendsmcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8b26cdcffc537e7ad27a6f790cc6213b9abc68f9fce1cae667bdc5a2ecc0468
MD5 94184d245eada99151c302c4b69337f2
BLAKE2b-256 21db2a82d8e063a33b65f201c42fa58d5df3809edab9faa1b96c49a2a0fd8124

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page