Google Trends API for AI agents

The official Google Trends site has no public API. Trends MCP fills that gap: structured Google Search trend data delivered to any AI assistant via the Model Context Protocol. Absolute volume estimates, multi-source comparison, 5-year history - all in one clean JSON response.

Updated 2026-08-19

Google Trends has no official public API. Trends MCP supplies the research contract assistants actually need: Google Search interest as a 0-100 index, optional absolute volume, about 5 years of weekly history, and live trending-search feeds through get_top_trends. The keyword is an ordinary search phrase. The same MCP connection covers 25+ sources, so Google can sit next to YouTube, Amazon, and Reddit without pytrends. The free plan includes 100 requests per month. Starter is $19/month.

What "Google Trends as an API" means here

The consumer Trends site shows relative interest, related queries, and regional heat for a human clicking around. Agents need a stable JSON object they can difference, store, and compare. Trends MCP maps that job onto get_trends (history), get_growth (period percentages plus volume), and get_top_trends with type Google Trends (no keyword, live breakout list).

The source key is google search. That series is search-volume interest, not Search Console clicks, not Ads keyword planner bids, and not Discover feed impressions. A phrase can trend on Google while the team's site ranks nowhere. SEO still needs the Google Trends product page plus ranking tools.

Daily mode covers a short recent window when a story is moving hour by hour. Weekly mode is the default for the 5-year archive and for seasonality.

Keyword format for search volume

Pass the query as people type it: model context protocol, air fryer, nvidia earnings. Operators such as site: and exact-match quotes are not a supported Trends dialect here. Misspellings create separate series unless Google already folds them.

Geo and category filters from the Trends website are not extra JSON fields on the basic call. The series is a global-style search-interest index unless a specific geo parameter is documented for the account. Multi-source comparison is done by listing sources on get_growth, not by scraping several Trends tabs.

Related-query mining on the website is a different UI. Agents that need "what else is rising" should start from get_top_trends, then run get_growth on the phrases that appear.

How this differs from Google's own surfaces and from scrapers

There is no first-party Trends API key. Anything that claims "official Trends API" is wrapping the website, a Serp product, or a spreadsheet add-on. pytrends is the common Python wrapper: relative 0-100, no guaranteed volume, and breakage when Google changes markup. It is fine for a laptop experiment and a poor dependency inside a production agent.

Trends MCP is not Google Ads Keyword Planner. Planner numbers are account- and geo-scoped commercial estimates. The Trends MCP volume field is a directional companion to the 0-100 index for research, not a replacement for auction-time bid math.

SerpApi, Bright Data, and similar SERP vendors can return Trends widgets as one of many scrape targets. Teams should check current vendor pricing for those platforms. They typically sell Google results broadly. They do not, by themselves, give one MCP session covering 25+ consumer-demand sources.

Who calls a Trends API from an agent

Content teams batch a keyword list every Monday and keep phrases with positive 3M and 1Y Google growth. Equity researchers watch issuer names into events, then confirm on news sentiment. Ecommerce teams compare Google Search with Amazon on the same phrase to separate research from shopping. Developers building pytrends alternatives often need MCP or REST instead of a scrape library that will fail a CI job.

Cursor, Claude, and other MCP clients call the same tools a REST client would POST to https://api.trendsmcp.ai/api. The assistant does not need a Google account.

A practical batch looks like this. Store 30 phrases. Once a week, call get_growth with 3M and 1Y on google search. Keep phrases where both windows are positive and quality is not flagged. For the keepers, call get_trends weekly and archive the JSON. Once a day during a launch, switch those few phrases to data_mode='daily'. That pattern stays inside 100 requests per month for a small desk and scales on Starter at $19/month when the list grows.

Related-query rabbit holes on the Trends website are useful for humans and expensive for agents if they turn into hundreds of speculative phrases. Feed-first discovery via get_top_trends plus a hard cap on follow-up history calls keeps the month predictable.

Limits and caveats

Low-volume phrases return weak quality scores or misses. The 0-100 index is relative to that keyword's own peak in the window, which is why two keywords at 80 are not equal in absolute searches. Volume estimates should not be pasted into a media plan as if they were Keyword Planner.

Quota is 100 requests per month on the free plan, Starter $19/month. A crawl of 10,000 keywords overnight is a different product. Deduplicating the list and caching weekly snapshots is how research teams stay inside the month.

Comparison: programmatic Google Trends access

Trends MCP is one MCP connection covering 25+ sources. Google Search volume is a 0-100 index with optional absolute volume and about 5 years of weekly history. Live trending searches use get_top_trends without a keyword. Billing is 100 requests per month free, then $19/month on Starter.

The Google Trends website remains the path for interactive maps and related-query browsing. It has no public API.

pytrends remains a scrape client for scripts that accept breakage. Google Trends alternative pages on this site cover product-level substitutions. SERP vendors should be priced from their current public lists; this page does not quote those numbers.

get_trends

Retrieve about 5 years of weekly Google Search volume for any keyword as structured JSON. This is the programmatic stand-in for scraping the Google Trends website.

get_trends(keyword='model context protocol', source='google search', data_mode='weekly')

get_growth

Compute period-over-period Google Search growth with absolute volume estimates. That combination is missing from the official Trends site and from pytrends.

get_growth(keyword='model context protocol', source='google search', percent_growth=['3M', '1Y'])

get_ranked_trends

Get a programmatically queryable ranked list of the fastest-growing Google Search terms. Kept for compatibility; prefer get_top_trends for live breakouts and get_growth for scored lists.

get_ranked_trends(source='google search', sort='wow_pct_change', limit=30)

get_top_trends

Pull live Google Trends breakout topics in real time via API - the same data as the Google Trends 'trending searches' feed but structured for AI agents.

get_top_trends(type='Google Trends', limit=25)

Common questions

No. Google Trends has no official public API. The website shows relative interest with no supported programmatic contract. Trends MCP returns a structured alternative: a 0-100 search-volume index, optional absolute volume estimates, growth metrics, and a historical time series through the Model Context Protocol and REST.
pytrends is a Python library that scrapes the Google Trends website. It returns relative 0-100 scores, breaks when the frontend changes, and inherits IP rate limits. Trends MCP returns a managed series with absolute volume estimates where available, supports multi-source queries across 25+ sources in one session, and is built for assistants rather than one-off scrape scripts.
Yes. Trends MCP adds an absolute query-volume estimate beside the normalized 0-100 signal. Estimates are directional, suitable for comparing keyword momentum, not for setting a paid-search budget to the dollar.
A structured object with keyword, source, normalized_value (0-100), absolute_volume_estimate, growth_pct per requested period, time_series as date/value pairs, and data_quality_score.
Calls count against the Trends MCP plan. The free plan includes 100 requests per month. Starter is $19/month. Unlike pytrends scraping, there is no separate Google bot-detection layer for the caller to manage. Exhausting the monthly quota returns a rate-limit style error until the period resets.