trendsmcp
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.
Install
pip install trendsmcp
1. Get a free API key
- Open Get API key
- Enter your email — no credit card
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd4681b8e6966b61da447bb41a260cddc9e83766eb8c37c6a637f28edaa945f4
|
|
| MD5 |
de0409028f1cd267d13a612284fb6365
|
|
| BLAKE2b-256 |
bf9bf47250c733d78561c880d03079354422180ae83eb37c91ab4c6e7e2e8c86
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8b26cdcffc537e7ad27a6f790cc6213b9abc68f9fce1cae667bdc5a2ecc0468
|
|
| MD5 |
94184d245eada99151c302c4b69337f2
|
|
| BLAKE2b-256 |
21db2a82d8e063a33b65f201c42fa58d5df3809edab9faa1b96c49a2a0fd8124
|