Docs

MCP & API Reference

Query behavioral trend data across search, social, and commerce platforms. Use MCP to query via an AI assistant like Claude or ChatGPT, or the REST API to integrate directly into your code.

Base URL
https://api.trendsmcp.ai/api
Method
POST /
Auth
Authorization: Bearer <key>
Format
application/json

Get your free API key

100 free requests per month. No credit card, no setup fee.

API calls served
MR AK JL TS +
Loved by developers
MR
Marco R.
Quant Developer

Replaced my manual Google Trends scraper in an afternoon. The data is clean and the latency is surprisingly low for a free tier.

2 weeks ago
JL
Jamie L.
SEO Lead @ Growth Agency

We use it for keyword trend reports. The free daily limit keeps us batching queries for weekly digests. Upgrading is there when we need more headroom.

3 weeks ago
SR
Stella R.
Product Designer
3 weeks ago
AK
Aisha K.
Full-stack Developer

Hooked it into my MCP server in like 20 minutes. The JSON response is well-structured and the docs are solid. Exactly what I needed.

5 days ago
DP
Daniel P.
Data Engineer @ Fintech

We pipe weekly series into BigQuery for a few brand cohorts. Compared to maintaining our old Selenium job, this is boring in the best way. Uptime has been solid.

Yesterday
NS
Nina S.
Product Manager, B2B SaaS

Great for slide-ready trend screenshots when leadership asks why we are prioritizing a feature. I wish the dashboard had saved views, but the API side is great.

4 days ago
MA
Miguel A.
Frontend Developer
4 days ago
TW
Tom W.
Indie Maker

Running it from Cursor with the MCP config took one try. I am not a trends person, but my side project now emails me when a niche keyword spikes hard week over week.

1 week ago
RK
Ravi K.
Research Analyst

Using the growth endpoints to sanity-check retail names before I write up notes. Occasionally the normalization differs from what I see in the raw Google UI, but it is consistent run to run.

6 days ago
LC
Laura C.
ML Engineer

Pulling multi-source ranked lists into a notebook is straightforward. Error payloads are actually readable when I fat-finger a parameter, which matters more than people admit.

10 days ago
KN
Keiko N.
Graduate Student
10 days ago
BH
Ben H.
Freelance DevOps

Does what it says. I knocked a star because onboarding assumed I already knew MCP wiring; a copy-paste block for Claude Desktop would have saved me 15 minutes.

2 months ago
EM
Elena M.
Growth PM

We track TikTok hashtag momentum against paid spend in a Looker sheet. Not glamorous work, but it is the first tool my team did not argue about during rollout.

12 days ago
JF
Jordan F.
Backend Developer

Retries are predictable and I have not seen weird HTML in responses (looking at you, scrapers). Would pay for a team key rotation flow, but for now we rotate manually.

18 days ago
SO
Sam O.
Hedge Fund Associate

Quick checks on retail buzz before we dig into filings. Not a silver bullet, but it is faster than opening twelve browser tabs and reconciling by hand.

3 weeks ago
VL
Victor L.
IT Support
3 weeks ago
GV
Greta V.
Content Strategist

Helpful for spotting whether a topic is a one-day meme or sticking around. I still cross-check with Search Console, but this gets me 80% of the signal in one call.

9 days ago
YT
Yuki T.
DevRel Contractor

I demo this in workshops when people ask how to ground LLM answers in something fresher than training data. The MCP angle lands well with engineers who hate glue code.

1 month ago
CD
Chris D.
Agency Tech Lead

Solid for client reporting. Billing is clear enough that finance stopped asking me what line item this is. Minor nit: peak hours can feel a touch slower, still acceptable.

22 days ago
AM
Amir M.
Open Source Maintainer

I wired this behind a small CLI for contributors who want trend context in issues. Keeping the surface area tiny matters for OSS, and the schema has not churned on me yet.

16 days ago
KL
Kendra L.
BI Analyst

Daily pulls for a 30-day window go straight into our internal scoreboard. Stakeholders finally stopped debating whose screenshot of Trends was newer.

8 days ago
BT
Brooke T.
Demand Gen
8 days ago
PG
Priya G.
Startup Founder

We are pre-revenue, so free tier discipline matters. I hit the cap once during a brainstorm where everyone wanted to try random keywords. Learned to batch smarter.

11 days ago
HW
Henrik W.
Solutions Architect

Security review passed without drama: HTTPS, scoped keys, no bizarre third-party redirects in the chain we could find. That is rarer than vendors think.

27 days ago
IZ
Isaac Z.
Mobile Developer

I do not need this daily, but when App Store rank shifts look weird, having Reddit and news context in one place saves me from context switching across six apps.

19 days ago
VA
Vera A.
Journalist / Newsletter Writer

I use it to see if a story is genuinely blowing up or just loud on one platform. It is not a replacement for reporting, but it keeps my ledes honest.

14 days ago
QB
Quinn B.
Staff Engineer

We moved off a brittle Playwright script that broke every time Google shuffled markup. Same data shape every week now, which is all I wanted from life.

3 days ago
AC
Alan C.
Hobbyist Developer
3 days ago
FS
Fatima S.
E-commerce Director

Seasonal demand spikes line up with what we see in Amazon search interest here. Merch team stopped sending me screenshots from random tools that never matched.

5 days ago
OR
Owen R.
Analytics Consultant

Solid for client decks. I docked one star only because I still export to Sheets manually; a direct connector would be nice someday.

7 days ago
MJ
Marcus J.
Game Studio Producer

Steam concurrents plus Reddit chatter in one workflow beats our old spreadsheet ritual before milestone reviews.

13 days ago
LN
Leah N.
UX Researcher

Quick pulse on whether a feature name is confusing people in search before we ship copy. Cheap sanity check compared to a full survey.

17 days ago
DW
Diego W.
SRE

Monitored from Grafana via a thin wrapper. p95 stayed under our SLO budget last month. One noisy day during a holiday but nothing alarming.

24 days ago
TC
Tessa C.
Brand Strategist

Narrative fights in meetings got shorter once we could point at the same trend line everyone agreed on. Sounds silly until you have lived through it.

20 days ago
UH
Uma H.
PhD Candidate, CS

Using normalized series as a weak prior in a forecasting experiment. Citation-friendly timestamps in the payload made reproducing runs less painful.

29 days ago
XE
Xavier E.
IT Manager

Approved for our pilot group after a quick vendor review. Would love SAML, not a blocker for our size.

33 days ago
DK
Daria K.
Operations Consultant
33 days ago
NP
Nina P.
Creator Economy Analyst

YouTube search interest plus TikTok hashtags in one place helps me explain why a sponsor should care about a vertical without hand-waving.

15 days ago
GK
Gabe K.
Automation Engineer

Cron job hits the API before standup; Slack gets a compact summary. Took an afternoon to wire, has been stable for two quarters.

41 days ago
SY
Sofia Y.
Policy Researcher

Useful for public-interest topics where search interest is a rough proxy for attention. I still triangulate with primary sources; this is one signal among several.

26 days ago
RB
Raj B.
Cloud Architect

Runs in a VPC egress-only subnet with allowlisted domains. Fewer exceptions to explain to auditors than our last vendor.

35 days ago
CF
Clara F.
Community Manager

Spotting when a topic is about to flood Discord saves my team from reactive moderation fires. Not perfect, but directionally right often enough.

21 days ago
MZ
Mei Z.
Research Associate
21 days ago
WL
Wes L.
Fractional CMO

For lean teams the ROI story writes itself. I would not build an in-house scraper for this anymore unless compliance forced it.

31 days ago
IK
Ingrid K.
Technical Writer

Examples in the docs match what the MCP actually returns. You would be surprised how rare that is in this category.

6 days ago
JV
Jon V.
Night-shift NOC Tech

Pager stayed quiet. When something upstream flaked once, the error string told me which parameter to fix without opening logs first.

45 days ago
AE
Avery E.
University Lab Manager

Students use it for coursework demos. Budget is tight so free tier matters; we coach them to cache aggressively.

38 days ago
ZM
Zoe M.
Investor Relations Associate

Helps prep talking points when retail interest in our name swings after earnings. Not material disclosure, just context for Q&A prep.

23 days ago
HT
Hassan T.
Web Performance Lead

Response sizes stay small enough for mobile hotspots. I hate APIs that dump megabytes for a sparkline.

4 days ago

What are you working on?

How will you connect?

Add to your AI in 30 seconds

An API key is required to connect. Get your free key above, then copy the pre-filled config for your client.

Cursor

Cursor SettingsTools & MCPAdd a Custom MCP Server

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

+ Add to Cursor
Or paste into Mac / Linux — ~/.cursor/mcp.json
Windows — %USERPROFILE%\.cursor\mcp.json

↑ Get your free key above first — the config won't work without it.

Claude Desktop

UserSettingsDeveloperEdit Config — add inside mcpServers

"trends-mcp": {
  "command": "npx",
  "args": [
    "-y",
    "mcp-remote",
    "https://api.trendsmcp.ai/mcp",
    "--header",
    "Authorization:${AUTH_HEADER}"
  ],
  "env": {
    "AUTH_HEADER": "Bearer YOUR_API_KEY"
  }
}

Mac — ~/Library/Application Support/Claude/claude_desktop_config.json
Windows — %APPDATA%\Claude\claude_desktop_config.json

Fully quit and restart Claude Desktop after saving.

Claude Code (CLI)

claude mcp add --transport http trends-mcp https://api.trendsmcp.ai/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Windsurf

SettingsAdvanced SettingsCascadeAdd custom server +

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

Mac / Linux — ~/.codeium/windsurf/mcp_config.json
Windows — %USERPROFILE%\.codeium\windsurf\mcp_config.json
Or: Command Palette → Windsurf: Configure MCP Servers

VS Code

Extensions sidebar → search @mcp trends-mcpInstall — or paste manually into .vscode/mcp.json inside servers

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

Paste into .vscode/mcp.json, or:
Command Palette (⇧⌘P / Ctrl+Shift+P) → MCP: Add Server

Authentication

Every request must include your API key as a Bearer token in the Authorization header. Get a free key at trendsmcp.ai. 100 requests/month, no credit card. How calls are counted is defined below (same rules for REST and MCP).

Never expose your API key in client-side code or public repositories.
curl -X POST https://api.trendsmcp.ai/api \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source":"google search","keyword":"bitcoin"}'
import requests

res = requests.post(
    "https://api.trendsmcp.ai/api",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"source": "google search", "keyword": "bitcoin"}
)
res.raise_for_status()
data = res.json()
const res = await fetch("https://api.trendsmcp.ai/api", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ source: "google search", keyword: "bitcoin" })
});
const data = await res.json();

What counts as a request

Each successful hit against the data API uses one unit of your monthly quota.

Get Trends Historical time series for a keyword

One source + keyword per HTTP request or MCP tool call counts as one request.

Get Growth Point-to-point growth & momentum

One source + keyword per call counts as one request, including every entry in percent_growth in that same call.

Get Top Trends Live leaderboards across platforms

Counted per feed (type) and per page. Example with limit 25: offset 0 is one request, offset 25 is another for the same type. Different feeds are separate. If one response includes several feeds, each feed is counted per page on its own.

Data Sources

Two types of sources are available, accessed via different operations. Keyword sources return a historical time series or growth metric for a specific keyword. Live feeds return the top-ranked items on a platform right now — no keyword needed.

Keyword sources — Get Trends & Get Growth

Pass the source value below in your request body alongside keyword. Scores are normalized to a 0–100 scale where the pipeline supports it.

sourceDescriptionKeyword format
google searchGoogle search volumeAny keyword or phrase
google imagesGoogle image search volumeAny keyword or phrase
google newsGoogle News search volumeAny keyword or phrase
google shoppingGoogle Shopping search volumeAny keyword or phrase
youtubeYouTube search volumeAny keyword or phrase
tiktokTikTok hashtag volumeHashtag or topic
redditSubreddit subscriber metrics (not post or mention volume). Get Trends: time series of subscriber levels. Get Growth: subscriber growth across the periods you request.Subreddit name only, no r/ prefix (e.g. wallstreetbets). Typical window is about the last 30 days.
amazonAmazon product search volumeProduct name or category
wikipediaWikipedia page viewsArticle title or topic
news volumeNews article mention volumeAny keyword or phrase
news sentimentNews sentiment score (positive / negative)Any keyword or phrase
webtrafficWebsite traffic / domain popularity estimatesDomain or site identifier as supported by the pipeline
app downloadsMobile app download / install estimates (Android track)Package id or app identifier; some responses include rank or price fields when available
npmnpm package weekly downloadsExact package name e.g. react
steamSteam concurrent players (monthly)Game display name e.g. Elden Ring

Live feeds — Get Top Trends

Pass the type value below with mode: "top_trends". No keyword needed. Returns the current ranked leaders on that platform (e.g. the top 25 trending hashtags on TikTok right now).

typePlatform / feed
Google TrendsTop trending search terms on Google right now
Google News Top NewsTop news stories from Google News
TikTok Trending HashtagsTop trending hashtags on TikTok
YouTube TrendingTop trending videos on YouTube
X (Twitter) TrendingTop trending topics on X
Reddit Hot PostsHottest posts on Reddit's front page
Reddit World NewsTop posts in r/worldnews
Wikipedia TrendingMost-viewed Wikipedia articles today
Amazon Best Sellers Top RatedAmazon top-rated best sellers across all categories
Amazon Best Sellers by CategoryAmazon best sellers filtered by product category
App Store Top FreeTop free apps on the iOS App Store
App Store Top PaidTop paid apps on the iOS App Store
Google PlayTop apps on Google Play
Top WebsitesMost-visited websites globally by traffic rank
Spotify Top PodcastsTop podcasts on Spotify

MCP / AI

AI Prompts

When using Trends MCP through an AI assistant (Claude, ChatGPT, Cursor, etc.), include "using TrendsMCP" or "via TrendsMCP" in your prompt so the AI routes to the MCP instead of a web search.

Get Growth Point-to-point growth & momentum
Year-over-year momentum"Using TrendsMCP, how has Google Search interest in GLP-1 grown over the past 12 months?"
Multi-period snapshot"Via TrendsMCP, show me 3M, 6M, and 1Y growth for Anthropic on Google Search."
YTD brand tracking"Using TrendsMCP, what's the YTD Google Search growth for Duolingo?"
Cross-source momentum"Via TrendsMCP, compare 6-month growth for weight loss drugs across Google, TikTok, and Amazon."
News sentiment shift"Using TrendsMCP, how has news sentiment for Meta changed over the past 6 months?"
Custom date range"Via TrendsMCP, show Google Search growth for AI agents from Jan 2025 to Jan 2026."
Subreddit subscriber growth"Using TrendsMCP, what's the subscriber growth for subreddit wallstreetbets on Reddit over the last 30 days?"
Shopping demand signal"Via TrendsMCP, show me 12M Google Shopping growth for running shoes."
Get Top Trends Live leaderboards across platforms
Google trending now"Using TrendsMCP, what's trending on Google right now?"
TikTok hashtags"Via TrendsMCP, show me the top TikTok trending hashtags today."
Reddit front page"Using TrendsMCP, what are the hottest Reddit posts right now?"
Wikipedia trending"Via TrendsMCP, what are the top trending Wikipedia articles today?"
X / Twitter topics"Using TrendsMCP, show me what's trending on X right now."
App Store charts"Via TrendsMCP, what apps are topping the App Store Free charts today?"
Amazon best sellers (top rated)"Using TrendsMCP, what are the top-rated Amazon best sellers right now?"
Amazon by category"Via TrendsMCP, show Amazon best sellers for category Electronics."
YouTube trending"Via TrendsMCP, what's trending on YouTube right now?"

Live leaderboards: MCP tools require one feed (type) per call. The REST Get Top Trends request can omit type to return every feed in one response.

Routing

All requests go to a single POST / endpoint. The operation is selected by the fields you include in the request body.

OperationRequired fields
Get Trends source + keyword (no percent_growth)
Get Growth source + keyword + percent_growth
Get Top Trends mode: "top_trends"
POST /

Get Growth

Calculates point-to-point percentage growth for a keyword over one or more time windows. Supports preset strings ("12M", "YTD", etc.) or exact custom date pairs.

Quota: 1 request per source + keyword (all percent_growth periods in that call). Full rules

Request body

FieldTypeRequiredDescription
source string Required Data source. See Data Sources.
keyword string Required Keyword, brand, or topic.
percent_growth array Required Array of preset strings or custom date objects. See below.
data_mode string Optional Same semantics as Get Trends: applies where supported (often Google sources); ignored or N/A for many pipelines. Not exposed on MCP tools.

Growth period presets

7D14D30D1M2M3M 6M9M12M1Y18M24M 2Y36M3Y48M60M5Y MTDQTDYTD

Custom date range object

FieldTypeDescription
namestringOptional label returned in results.
recentstringMore recent date, YYYY-MM-DD.
baselinestringBaseline/comparison date, YYYY-MM-DD.

Response fields

FieldTypeDescription
search_termstringThe keyword queried.
data_sourcestringThe source used.
resultsarrayOne object per period requested.
  periodstringPeriod identifier, e.g. "12M" or custom name.
  growthnumberPercentage change, positive or negative.
  directionstring"increase" or "decrease".
  recent_datestringISO 8601 date of the recent data point.
  baseline_datestringISO 8601 date of the baseline point.
  recent_valuenumberNormalized score at the recent date.
  baseline_valuenumberNormalized score at the baseline date.
  volume_availablebooleanWhether absolute volume exists for this source.
  recent_volumenumber | nullAbsolute volume at the recent date.
  baseline_volumenumber | nullAbsolute volume at the baseline date.
  volume_growthnumber | nullVolume growth %, if available.
metadataobjecttotal_data_points, calculations_completed, all_successful.
{
  "source":         "google search",
  "keyword":        "nike",
  "percent_growth": ["12M", "3M", "YTD"]
}
{
  "source":  "amazon",
  "keyword": "nike",
  "percent_growth": [
    {
      "name":     "Last Year",
      "recent":   "2025-12-31",
      "baseline": "2024-12-31"
    }
  ]
}
{
  "search_term": "nike",
  "data_source": "google search",
  "results": [
    {
      "period":           "12M",
      "growth":           -12.31,
      "direction":        "decrease",
      "recent_date":      "2026-03-21",
      "baseline_date":    "2025-03-22",
      "recent_value":     57,
      "baseline_value":   65,
      "volume_available": true,
      "recent_volume":    24158298,
      "baseline_volume":  27548936,
      "volume_growth":    -12.31
    }
  ],
  "metadata": {
    "total_data_points":      261,
    "calculations_completed": 1,
    "all_successful":         true
  }
}
POST /

Get Top Trends

Returns ranked items from live platform feeds stored for Trends MCP. On the REST API, omit type to aggregate every feed in one response (same semantics the handler uses internally). On MCP, the get_top_trends tool requires an explicit type per call. There is no single MCP invocation that returns all feeds at once.

Quota: per feed (type) and per page (limit / offset). Full rules

Feed labels must match the strings below exactly (including spacing and capitalization).

Request body

FieldTypeDefaultDescription
modestringSet to "top_trends".
typestringall (REST)REST: optional; omit for all feeds. MCP: required (one feed per tool call).
limitinteger25Max items per feed (up to 200).
offsetinteger0REST: skip this many rows per feed for pagination (when the backend supports it for that feed).

Available feeds

Amazon Best Sellers by Category Amazon Best Sellers Top Rated App Store Top Free App Store Top Paid Google News Top News Google Play Google Trends Reddit Hot Posts Reddit World News Top Websites Spotify Top Podcasts TikTok Trending Hashtags Wikipedia Trending X (Twitter) Trending YouTube Trending
{
  "mode":  "top_trends",
  "type":  "Google Trends",
  "limit": 10
}
{
  "as_of_ts": "2026-03-26T22:22:25Z",
  "type":     "Google Trends",
  "limit":    10,
  "count":    10,
  "data": [
    [1, "chuck norris"],
    [2, "project hail mary"],
    [3, "bachelorette cancelled"]
    // ... [rank, name] pairs
  ]
}

Errors

Errors return JSON with an error string and message. HTTP status may be 4xx/5xx depending on the failure; some upstream gaps are reported as data_unavailable (or similar) with a generic message rather than not_found.

StatusError codeMeaning
400missing_parameterRequired field missing from request body
400invalid_sourceUnrecognized source value (message may list allowed values)
401Missing or invalid API key
404not_foundNo series or entity matched this keyword/source (when the pipeline classifies it that way)
variesdata_unavailablePipeline could not return data (temporary gap, unsupported query, or empty upstream). HTTP status is not always 404; read message.
429rate_limitedMonthly request limit reached. Upgrade for more.
500internal_errorUnexpected server error

Additional codes can appear as the data layer evolves; treat message as the operator-facing detail.

400 Response
{
  "error":   "missing_parameter",
  "message": "The 'keyword' parameter is required."
}

Protected by reCAPTCHA — Privacy & Terms