Google Trends breakout detection via API

Breakout queries on Google Trends are terms whose search interest spiked faster than historical baselines predict. Detecting them programmatically requires two signals: the live Google Trends leaderboard and week-over-week growth on individual keywords. This page defines spike thresholds, API call patterns, and false-positive filters.

Breakout queries are the highest-value signal in trend monitoring. They mark terms moving faster than their historical curve predicts, often hours or days before mainstream coverage. The Google Trends website labels these with a Breakout tag on relative charts. An API pipeline can approximate the same signal by combining live leaderboard polling with growth math on weekly search data.

For normalized Google Search time series and MCP setup, see Google Trends data for AI assistants.

Two signals that define a breakout

No single API field returns a Breakout boolean. Detection requires combining a presence signal and a velocity signal.

SignalSourceWhat it catches
Presenceget_top_trends type Google TrendsTerms entering or climbing the live leaderboard
Velocityget_growth source google searchTerms whose weekly interest jumped vs baseline

A term on the leaderboard with flat growth is likely a sustained high-volume query, not a breakout. A term with 300% weekly growth that never appears on the leaderboard may be too niche to matter. Strong breakouts show both.

Step 1: Poll the live leaderboard

{
  "mode": "get_top_trends",
  "type": "Google Trends",
  "limit": 25
}

Response shape:

{
  "as_of_ts": "2026-07-23T06:00:00Z",
  "type": "Google Trends",
  "limit": 25,
  "data": [[1, "query one"], [2, "query two"]]
}

Store each poll in a key-value store keyed by as_of_ts. Compare the current data array against the previous snapshot.

Rank-entry rule: Flag any term that was absent from the prior top-25 list.

Rank-jump rule: Flag any term that moved up five or more positions since the last poll.

A 30-minute poll interval balances freshness against quota. Hourly polling misses fast-moving news cycles. Five-minute polling burns 8,640 requests per month on leaderboard calls alone.

Step 2: Confirm with growth thresholds

For each flagged candidate, call get_growth:

{
  "mode": "get_growth",
  "source": "google search",
  "keyword": "candidate term",
  "percent_growth": ["7D", "30D", "12M"]
}

Interpret the results array:

PeriodBreakout thresholdInterpretation
7Dgrowth > 150%Sharp short-term spike
30Dgrowth > 100%Sustained acceleration
12Mgrowth > 50%Not purely seasonal replay

A candidate passing all three thresholds is a high-confidence breakout. A candidate with high 7D growth but negative 12M growth may be a dead-cat bounce on a declining topic.

Example growth response field:

{
  "period": "7D",
  "growth": 284.5,
  "direction": "increase",
  "recent_value": 78,
  "baseline_value": 20
}

The recent_value and baseline_value fields are normalized 0-100 scores, not absolute volumes. Cross-check absolute scale with volume fields on get_time_series when available.

Step 3: Pull context from the time series

Before alerting, fetch five years of weekly history:

{
  "mode": "get_time_series",
  "source": "google search",
  "keyword": "candidate term"
}

Scan the returned array for prior spikes at the same calendar week in previous years. A term that hit value 90 in the same week of 2024 and 2025 is seasonal. A term with no prior activity above value 20 before this month is a genuine breakout.

This step costs one additional request per confirmed candidate. Skip it for terms with fewer than 12 months of data points in the response.

Batching and quota planning

WorkflowRequests per dayMonthly total
Leaderboard poll every 30 min48~1,440
5 growth confirmations per day5150
5 time series context pulls5150

The free tier at 100 requests per month cannot sustain continuous leaderboard polling. Practical free-tier patterns:

Paid tiers scale request limits. Batch growth confirmations into a single cron run rather than firing one job per candidate.

MCP query patterns for breakout research

Inside Claude, Cursor, or any MCP-connected assistant, natural-language prompts route to the same tools:

The assistant chains leaderboard, growth, and time series calls in one conversation. For production alerting, the REST patterns above run on a scheduler without an LLM in the loop.

Cross-platform confirmation

Google breakouts that also spike on TikTok, Reddit, or news volume are more likely to sustain than search-only blips. After confirming a Google breakout, optional get_growth calls on additional sources add confidence:

{
  "mode": "get_growth",
  "source": "google search, tiktok, reddit, news volume",
  "keyword": "candidate term",
  "percent_growth": ["7D", "30D"]
}

One request returns growth across four sources. A term growing on all four simultaneously is a cross-platform breakout. A term spiking only on Google may reflect a localized news event or autocomplete artifact.

For broader real-time feed coverage beyond Google, see the real-time trends API.

Common questions

A breakout query is a search term whose interest rose sharply relative to its own recent baseline. On the Google Trends website, breakouts appear with a Breakout label when growth exceeds the chart maximum. Programmatically, teams approximate breakouts by combining live leaderboard presence with get_growth results above 100% over 7 days or 30 days on weekly Google Search data.
Poll get_top_trends with type Google Trends on a fixed interval. Store the previous ranked list. Terms that appear for the first time or jump more than five rank positions trigger a candidate alert. Confirm each candidate with get_growth on the keyword over 7D and 30D periods. Candidates with growth above 150% on both windows are strong breakout signals.
One get_top_trends call counts as one request regardless of limit. A 30-minute poll schedule uses 48 requests per day for the leaderboard alone. Each growth confirmation on a candidate keyword adds one get_growth request. Confirming 10 candidates per day adds 10 requests. On the free tier at 100 requests per month, hourly leaderboard polling plus selective growth checks fits within quota.
Seasonal terms like holiday names spike predictably each year. Compare the current get_growth 12M result against the same calendar week in prior years using get_time_series. If the term shows a similar spike at the same week last year, classify it as seasonal rather than a true breakout. Terms with no prior-year activity at this level pass the filter.