Pass source google search for a Google Search interest series, or source tiktok for a hashtag-volume series with independent volume. The live boards use different type strings and different row shapes.
Live data as of 2026-09-26
A Google Search vs TikTok comparison on Trends MCP is two keyword sources plus two live boards. Source google search on get_growth or get_time_series returns a 0-100 Google Search interest series for one phrase. Source tiktok returns a 0-100 hashtag-volume series with independent volume. On September 26, 2026, nfl closed 53.0 on Google Search (recent_date 2026-09-19, 260 weekly points from 2021-10-02, series volume 410750000) and 38.3 on TikTok (recent_date 2026-09-23, 30 daily points from 2026-08-25, recent_volume 274763050.0). Omitting percent_growth on TikTok nfl defaults to 12M and returned HTTP 400 growth_calculation_failed. Type Google Trends and type TikTok Trending Hashtags are separate get_top_trends feeds. Mixing those type strings into source is a 400.
The September 26, 2026 pull is the split that still matters next month: Google Search interest is a five-year weekly strip, while TikTok hashtag volume is about one month of daily rows. get_time_series for nfl on source google search returned 260 weekly points from 2021-10-02 (value 42, volume 325500000) through 2026-09-19 (value 53, volume 410750000). The series peak was 100 on 2024-01-20 at volume 775000000. Every row carried a volume key.
get_time_series for nfl on source tiktok returned 30 daily points from 2026-08-25 through 2026-09-23. The field name on those rows was datatype tiktok, not source. Opening row: value 8.1, volume 162655090. Close: value 38.3, volume 274763050. Peak index 100.0 fell on 2026-09-14 at volume 503895193. On 2026-08-27 the index printed 0.0 while volume stayed 132716272. Index 0.0 is not a missing day.
Volume is not guaranteed on Google Search. chatgpt on source google search returned 260 weekly points from 2021-10-02 through 2026-09-19, close 66, first non-zero week 2022-12-10 at 4, peak 100 on 2025-11-08, and no volume key on any row. matcha returned 261 weekly points from 2021-09-18 through 2026-09-12, close 82.0, peak 100.0 on 2026-08-08, also with no volume. Those matcha dates stamped 00:00:00+00:00. The nfl dates did not. Same source string, different close dates. matcha on Google Search is one week behind nfl.
| Keyword | Google close | Google 7D | Google points | TikTok close | TikTok 7D index | TikTok 7D volume | TikTok points |
|---|---|---|---|---|---|---|---|
| nfl | 53.0 on 2026-09-19 | +26.19% from 42.0 | 260 | 38.3 on 2026-09-23 | -13.74% from 44.4 | -7.68% from 297625459.0 | 30 |
| nike | 54.0 on 2026-09-19 | -15.62% from 64.0 | 260 | 43.7 on 2026-09-23 | +341.41% from 9.9 | +26.33% from 9753470.0 | 30 |
| booktok | 64.0 on 2026-09-19 | -11.11% from 72.0 | 260 | 35.3 on 2026-09-23 | +10.66% from 31.9 | +0.81% from 70081915.0 | 30 |
| matcha | 82.0 on 2026-09-12 | -5.75% from 87.0 | 261 | 23.6 on 2026-09-23 | 999999.0 from 0.0 | +17.34% from 9804687.0 | 30 |
Same string, different grain, different close dates. nfl rose 26.19% on Google Search the week TikTok index fell 13.74%. Quote both. Do not average them. TikTok index moves faster than TikTok volume. nike index printed +341.41% from 9.9 while volume only grew 26.33%. Prefer volume when it is present.
matcha 7D on TikTok printed index growth 999999.0 from baseline 0.0 on 2026-09-16, while volume grew 17.34% from 9804687.0 to 11505006.0. Skip 999999.0 in a forecast. Quote 17.34% volume, or quote the 0.0 opening index as a floor, not as a multiplier. matcha 30D index fell 69.94% from 78.5 while volume fell 25.57% from 15457371.0. Google Search nfl 30D was +211.76% from 17.0 to 53.0, 12M +1.92% from 52.0, YTD -11.67% from 60.0 on 2026-01-03. TikTok 12M returned date_out_of_range with data_start 2026-08-25. Store 7D, 14D, or 30D on this source until the strip is longer.
Comma get_growth for nfl on google search, tiktok returned sources_successful 2 and trend_analysis.uptrend_ratio 1/2. volume_weighted_growth printed 12.62 with weight_coverage 2/2 sources and total_volume 685763050.0. Google Search took 59.93% of the weight at estimated volume 411000000.0. TikTok took 40.07% at 274763050.0. That mix is estimated Google Search volume plus independent TikTok volume. matcha did not mix. Its weighted growth was 17.34 with weight_coverage 1/2 sources because Google Search contributed no volume. booktok was the same TikTok-only weight, 0.81 from 70649212.0. A comma call is not a blended index.
Source tiktok for chatgpt returned HTTP 404 no_data on September 26, 2026. Source google search for the same string returned 260 weekly points closing 66.0, 7D -20.48% from 83.0, 12M -33.33% from 99.0. Same string is not guaranteed on both sources. Check each source before joining.
Google Search volume is present on some keywords and missing on others. When it is present, get_growth flags it. The nfl 7D row set volume_available true, volume_estimated true, recent_volume 411000000.0, and volume_growth null. The omitted-reason string was volume is derived from the trend value for this source, not an independent measurement. The matching get_time_series close was 410750000, not 411000000.0. Growth rounded the series volume. Quote the series row when the exact integer matters.
TikTok volume on the same nfl 7D row had no volume_estimated flag. It printed volume_growth -7.68 from 297625459.0 to 274763050.0. That is a second measurement, not a rescale of the 0-100 index. nike showed the gap: index +341.41% versus volume +26.33%. booktok index +10.66% versus volume +0.81%. Do not treat Google Search estimated volume as comparable to TikTok volume in a weighted mix. For nfl the comma call did that mix anyway. Read volume_estimated and weight_coverage before using volume_weighted_growth.
chatgpt and matcha on Google Search had no volume at all. Their comma weights collapsed to TikTok. halloween on source tiktok returned unavailable, Data not available for this source, while source google search closed 13.0, 7D 0.0% from 13.0, 30D +85.71% from 7.0, 260 points. Rank 12 on type TikTok Trending Hashtags that morning was halloween. A board hashtag is not a promise that source tiktok has a series.
Keyword format is the second durable split. Source tiktok treats the string as a hashtag. Source google search treats it as a search phrase. On September 26, 2026, #nfl on TikTok echoed search_term nfl and matched the unprefixed 7D row exactly: 38.3 from 44.4, -13.74%, volume 274763050.0 from 297625459.0, 30 points. The hash was stripped before lookup. Comma #nfl weighted growth used TikTok only (1/2 sources) because #nfl on Google Search had no volume.
#nfl on Google Search did not strip. It closed 32.0 on 2026-09-19, 7D +540.0% from 5.0, 260 points. Plain nfl closed 53.0, 7D +26.19% from 42.0, with estimated volume. Those are two Google Search series. If the intent is the search phrase people type without a hash, send nfl to Google Search. If the intent is the hashtag, send nfl or #nfl to TikTok and expect the same row.
nfl is the join that works because the TikTok board prints hashtag strings. Omitting limit on type TikTok Trending Hashtags returned limit 25, count 25, offset 0, as_of_ts 2026-09-26T06:01:37.265957+00:00, rank 1 nfl. The same string on source tiktok closed 38.3 on 2026-09-23, and on source google search closed 53.0 on 2026-09-19. Board rank 1 is not Google Search index 53.0. It is a hashtag that also exists as a search phrase. Rank 2 on that board was usa. Rank 5 was tiktokshop. Those strings are hashtags. They are not Google Search queries.
Two strings, two tools. REST uses mode get_growth or get_top_trends. MCP uses the matching tool names. Google Search history lives on the Google search data page. The hashtag-versus-board split is documented with TikTok search vs TikTok Trending Hashtags. Keyword Google Search versus the live Google Trends board is Google Search vs Google Trends. Window defaults live on get-growth.
{"mode": "get_growth", "source": "google search, tiktok", "keyword": "nfl", "percent_growth": ["7D", "30D", "12M"]}
{"mode": "get_time_series", "source": "google search", "keyword": "nfl"}
{"mode": "get_time_series", "source": "tiktok", "keyword": "nfl"}
{"mode": "get_top_trends", "type": "Google Trends"}
{"mode": "get_top_trends", "type": "TikTok Trending Hashtags"}
The MCP equivalents are get_growth(keyword="nfl", source="google search, tiktok", percent_growth=["7D", "30D", "12M"]), get_time_series(keyword="nfl", source="google search"), get_time_series(keyword="nfl", source="tiktok"), get_top_trends(type="Google Trends"), and get_top_trends(type="TikTok Trending Hashtags"). REST 1W matched 7D on Google Search nfl: 53.0 from 42.0, +26.19%, baseline 2026-09-12, 260 points. REST 2W matched 14D: 53.0 from 20.0, +165.0%, baseline 2026-09-05. REST 1W matched 7D on TikTok nfl: 38.3 from 44.4, -13.74%. REST 1M matched 30D: 38.3 from 8.1, +372.84%, volume 274763050.0 from 162655090.0, +68.92%.
Omit percent_growth on TikTok nfl returned HTTP 400, error growth_calculation_failed, message No growth window could be calculated. The default window is 12M. That preset printed date_out_of_range against data_start 2026-08-25. Store 7D, 14D, or 30D. Source Google Search (capital G and S) case-folded and returned HTTP 200 on an explicit 12M call, echoing the nfl 12M row of 53.0 from 52.0, +1.92%. Store the lowercase source string in configs.
get_time_series on google search, tiktok returned invalid_source with 16 names and no all. Multi-source strings belong on get_growth only. get_growth with source Google Trends and keyword nfl returned HTTP 400, error invalid_source, message 'google trends' is not a valid source., plus 16 valid sources and all. The handler lowercased the rejected type string. It did not map it to source google search.
Omitting limit on type Google Trends returned limit 25, count 25, offset 0, and the same as_of_ts 2026-09-26T06:01:37.265957+00:00 as the TikTok hashtag board. Rank 1 was latin pop. Rank 2 was hurricane polo. Rank 3 was the love hypothesis. Those rows are search phrases. They are not hashtags. REST type google search (the keyword source string, lowercase) returned HTTP 200, echoed type Google Trends, and matched the first three phrases. REST type google trends did the same. REST type tiktok trending hashtags echoed TikTok Trending Hashtags with rank 1 nfl. llms.txt still describes feed labels as case-sensitive. The live handler accepted those lowercase strings on September 26, 2026. Prefer the canonical spelling in stored configs.
get_top_trends with type tiktok returned HTTP 400, error invalid_request, message Unknown type 'tiktok', plus 24 valid feed labels that include Google Trends and TikTok Trending Hashtags. Source tiktok is not a feed type. Type Google Trends is not a growth source. Type google search is the trap: it aliases the live board instead of erroring.
country GB with limit 3 on Google Trends returned HTTP 200, echoed country GB, and stamped as_of_ts 2026-09-26T06:04:09.163683+00:00. Rank 1 was truro bonfire night cancellation. Rank 2 was the blame. Rank 3 was presley gerber. That stamp is later than the default board's 06:01:37 snapshot, and rank 1 is a different phrase. Country is supported on Google Trends. Omit country for the default board. Do not join a GB phrase list to the omitted-country snapshot as one chart.
REST omitting type is a different 400. POST https://api.trendsmcp.ai/api with mode get_top_trends and limit 5, no type, returned HTTP 200 with envelope statusCode 400, error invalid_request, message The 'type' parameter is required, then the same 24-name list. llms.txt still names that miss missing_parameter. Read statusCode inside the JSON, not only the HTTP line.
get_top_trends MCP pricing is 1 credit per 10 requested rows, max 10 credits per call. REST counts 1 request per call. Free boards still cap at the top 10. The 25-row pulls on this page are the paid default, which is also what the handler returns when limit is omitted on a paid key. Keyword follow-up stays on source google search or source tiktok. The live boards stay on their type strings.
FAQ