Pass source google search for a weekly Search interest series, or source app downloads for Android installs by bundle ID. One phrase. One package name. Two calendars.
Live data as of 2026-10-15
Source google search on get_growth and get_time_series returns a weekly 0-100 Google Search interest series for one phrase. Source app downloads returns a 0-100 Android download-index series for an exact Google Play bundle ID, plus an independent install-count volume field and a running volume_cumulative total. Both pulls on October 15, 2026 used ChatGPT as the example: Search keyword chatgpt, downloads keyword com.openai.chatgpt. Search held 261 weekly points from 2021-10-16 through 2026-10-10 and closed 92.0, with no volume keys. app downloads held 161 points from 2025-10-18 through 2026-10-15 and closed 16.9, with series volume 12285585. Search 12M fell 3.16 percent from 95.0. app downloads 12M rose 244.9 percent from 4.9, while install volume rose 246.69 percent from 3543648.0. The live boards use type Google Trends and type Google Play, not those source strings.
The October 15, 2026 pull is the split that still matters next month: weekly Search interest versus Android install estimates, then two indexes that do not share a scale. get_time_series for chatgpt on source google search returned 261 weekly points from 2021-10-16 (value 0, no volume field) through 2026-10-10 (value 92). Peak 100 sat on 2025-09-20. The first non-zero week was 2022-12-10 at value 4. The series field is source google search. Growth metadata printed total_data_points 261. Search growth rows for chatgpt printed no volume_available, no volume_estimated, and no recent_volume.
get_time_series for com.openai.chatgpt on source app downloads returned 161 points from 2025-10-18 (value 4.9, volume 3543648, volume_cumulative 814373695) through 2026-10-15 (value 16.9, volume 12285585, volume_cumulative 1645930516). Peak 100.0 sat on 2026-03-27 at volume 72582351. The series field is datatype app downloads, not source. REST and MCP both printed datatype. Growth metadata printed total_data_points 161. Search starts in 2021. Downloads start in 2025. Quote both dates. The lag is the series, not a stale live board.
Search 7D matched 1W exactly: plus 27.78 percent from 72.0, recent_date 2026-10-10, baseline 2026-10-03. app downloads 7D was plus 1.81 percent from 16.6, recent_date 2026-10-15, with volume_growth plus 1.89 percent from 12057938.0. 30D matched 1M on Search: plus 12.2 percent from 82.0. app downloads 30D was minus 54.93 percent from 37.5, install volume minus 54.85 percent from 27208130.0. Search YTD was plus 50.82 percent from 61.0 on 2026-01-03. app downloads YTD was plus 322.5 percent from 4.0 on 2025-12-31, with volume_growth plus 325.35 percent from 2888365.0. Omitting percent_growth defaults to 12M on both and succeeded on both.
| Display name | Search close | Search 12M | Bundle ID | Downloads close | Downloads 12M index | Downloads 12M volume | Points |
|---|---|---|---|---|---|---|---|
| ChatGPT | 92.0 on 2026-10-10 | -3.16% from 95.0 | com.openai.chatgpt | 16.9 on 2026-10-15 | +244.9% from 4.9 | +246.69% (12285585 from 3543648) | 261 / 161 |
| 95.0 on 2026-10-10 | +2.15% from 93.0 | com.whatsapp | 4.6 on 2026-10-14 | +228.57% from 1.4 | +221.32% (18020246 from 5608198) | 261 / 164 | |
| Google Gemini | 16.0 on 2026-10-10 | -36.0% from 25.0 | com.google.android.apps.bard | 20.6 on 2026-10-15 | +758.33% from 2.4 | +743.75% (24247564 from 2873782) | 261 / 161 |
| Duolingo | 53.0 on 2026-10-10 | -11.67% from 60.0 | com.duolingo | 5.8 on 2026-10-14 | +262.5% from 1.6 | +256.91% (2635234 from 738355) | 261 / 162 |
| TikTok | 73.0 on 2026-10-10 | +14.06% from 64.0 | com.zhiliaoapp.musically | 5.6 on 2026-10-14 | +250.0% from 1.6 | +242.95% (10306694 from 3005333) | 261 / 168 |
| 58.0 on 2026-10-10 | -13.43% from 67.0 | com.instagram.android | 3.0 on 2026-10-11 | +130.77% from 1.3 | +132.27% (8676231 from 3735467) | 261 / 159 |
The 12M sign flip is not a ChatGPT quirk. Google Gemini, Duolingo, and Instagram each fell on branded Search and rose on app downloads over the same 12M window. WhatsApp Search was nearly flat at plus 2.15 percent while downloads rose 228.57 percent. TikTok rose on both, plus 14.06 percent on Search versus plus 250.0 percent on the download index. Quote both closes. Do not rescale one index onto the other.
app downloads can print index 0.0 while later weeks recover. com.openai.chatgpt on 2026-07-14 printed value 0.0 and volume 0. The 3M window used that date as baseline and printed growth 999999.0, with volume_growth 999999.0 from baseline_volume 0.0. A zero index is not proof the app vanished. Read volume and a longer window before treating 0.0 as missing data. Search volume is estimated when present, and it was absent on chatgpt. whatsapp Search printed volume_available true, recent_volume 289000000.0, and volume_growth null. instagram Search added volume_estimated true and omitted volume_growth with reason volume is derived from the trend value for this source, not an independent measurement. Presence of a volume key on one Search keyword does not promise it on the next.
Source names case-fold. App Downloads and APP DOWNLOADS on get_growth for com.openai.chatgpt returned the same 12M row as the lowercase label. Feed labels do not belong here. Source Google Play returned HTTP 400 invalid_source, message 'google play' is not a valid source., and listed 17 keyword sources plus all. Source Google Trends did the same, echoed as 'google trends'. The handler lowercased the rejected type string. It did not map it to source app downloads or source google search.
Close dates are not shared across bundle IDs. ChatGPT and Gemini closed 2026-10-15. WhatsApp, Duolingo, and TikTok closed 2026-10-14. Instagram closed 2026-10-11. Search closed 2026-10-10 on every phrase in this pull. Quote the date on the row, not a single as_of for the table.
Google Search chatgpt printed no volume. app downloads com.openai.chatgpt printed independent install counts. A comma call still mixes the first windows, then weights only the source that has volume. The trap is the shared keyword.
{"mode": "get_growth", "source": "google search, app downloads", "keyword": "com.openai.chatgpt", "percent_growth": ["7D", "30D", "12M", "YTD"]}
That comma call on October 15, 2026 returned sources_successful 2. trend_analysis printed uptrend_count 1, downtrend_count 1, and uptrend_ratio 1/2. Both 7D windows succeeded. app downloads 7D was plus 1.81 percent. Search 7D was minus 60.61 percent. The Search series on that call is the bundle ID com.openai.chatgpt, which closed 13.0 on 2026-10-10 from a 33.0 baseline. Branded chatgpt Search 7D was plus 27.78 percent from 72.0 to 92.0. The mixer scored a sign split because it searched Google for the package name. It never saw the 92.0 series.
volume_weighted_growth was plus 1.89 with has_volume_data true, sources_with_volume 1, weight_coverage 1/2 sources, and total_volume 12285585.0. app downloads contributed 12285585.0 (100.0 percent of the mix) at growth plus 1.89, weighted contribution plus 1.89. Google Search contributed nothing to that mix. The plus 1.89 is app downloads volume_growth, an independent install-count change. Search of the bundle ID printed no recent_volume and no volume_growth. The mixer did not invent Search units to fill the gap. Read source_results before treating 1.89 as a blended Search-plus-install number.
Omitting percent_growth on the same comma string defaults to 12M. That call returned sources_successful 2, uptrend_ratio 2/2, and volume_weighted_growth 246.69 from downloads alone. Search 12M on the bundle ID was 999999.0 from baseline 0.0. downloads 12M was plus 244.9 percent. The mixer counted both as uptrends. The 999999.0 Search percent is a zero baseline on a package-name query, not branded ChatGPT demand. Extra windows still sit on one get-growth request per source.
get_time_series rejects the comma. Source google search, app downloads returned HTTP 400 invalid_source and listed 16 keyword sources with no all. Source all returned the same 400 shape. One source per series call. Two sources belong on get-growth.
The schema warning is literal. If the request includes app downloads with other sources, keyword must still be the Android bundle ID. REST get_growth on source google search, app downloads with keyword chatgpt returned sources_successful 1 and sources_failed 1. Search closed 92.0. app downloads returned unavailable, message Data not available for this source. Display names belong on Search. Bundle IDs belong on downloads. Join them in the notebook, not in one keyword field.
A REST comma on com.zhiliaoapp.musically did succeed on both sources the same morning: sources_successful 2, uptrend_ratio 2/2, volume_weighted_growth 36.91 from TikTok downloads 7D volume_growth plus 36.91 at volume 10306694.0. Search of that bundle ID closed 34.0, 7D plus 13.33 percent. Phrase tiktok closed 73.0, 7D plus 5.8 percent. Same product, three series.
Source google search accepts an ordinary phrase. Source app downloads is documented as an Android bundle ID, the id= value on a Play Store URL. Live traffic enforced the second rule.
ChatGPT on app downloads returned HTTP 200 with envelope statusCode 404 no_data, message No time series data available for this keyword and source combination. The same string on Google Search folded with chatgpt: close 92.0, 12M minus 3.16 percent from 95.0, 261 points. Search keywords case-fold. Bundle IDs do not have a display-name alias. Prefer the Play Store package name in stored configs.
Phrase choice on Search still moves the close. google gemini closed 16.0, 12M minus 36.0 percent from 25.0. gemini closed 49.0, 12M plus 28.95 percent from 38.0, YTD plus 58.06 percent from 31.0. The Gemini Android series is com.google.android.apps.bard, close 20.6, volume 24247564.0, 12M plus 758.33 percent from 2.4. Join on the bundle ID plus one branded Search phrase, and write down which phrase.
whatsapp Search closed 95.0 with estimated volume 289000000.0. Search of com.whatsapp closed 46.0, 12M plus 109.09 percent from 22.0. duolingo Search closed 53.0, 12M minus 11.67 percent, estimated volume 7110000.0. Search of com.duolingo closed 9.0, 12M minus 86.15 percent, and 7D printed 999999.0 from baseline 0.0. The hyphen-free brand is the Search series. The package name is a different query.
Short windows on downloads can print 999999.0 whenever a baseline lands on a zero-volume day. WhatsApp 30D and Duolingo 30D both used baseline 2026-09-13 at value 0.0 / volume 0.0 and printed 999999.0. ChatGPT 3M used 2026-07-14 the same way. Prefer 12M and YTD, and quote recent_volume, when a short window looks like a lottery ticket. Follow-up for the downloads source alone lives on the Android app downloads API. Google Search history lives on google search data.
Single-source get_growth on a known bundle can still return no_data once, then succeed on retry. The first REST and MCP get_growth calls for com.openai.chatgpt on source app downloads returned 404 no_data. get_time_series for the same pair returned 161 points on the first try. A later get_growth printed the 16.9 / 12285585.0 close. Treat one 404 as "retry," not "this app has no Android series."
The 0-100 columns are independent indexes. ChatGPT Search close 92.0 is not 92 percent of downloads close 16.9. downloads 12M plus 244.9 percent from 4.9 is a jump on the install index, not a matching rise in Search demand. Search 12M on that name was minus 3.16 percent from 95.0. Quote both closes. Do not add the percents.
Two strings, two tools. REST uses mode get_growth or get_top_trends. MCP uses the matching tool names. The adjacent live board is Google Play, not a second app-downloads keyword source. Multi-source growth patterns sit on get_growth. Chart-versus-volume follow-up sits on app downloads versus Google Play.
{"mode": "get_growth", "source": "google search", "keyword": "chatgpt", "percent_growth": ["30D", "12M"]}
{"mode": "get_growth", "source": "app downloads", "keyword": "com.openai.chatgpt", "percent_growth": ["30D", "12M"]}
{"mode": "get_time_series", "source": "google search", "keyword": "chatgpt"}
{"mode": "get_time_series", "source": "app downloads", "keyword": "com.openai.chatgpt"}
{"mode": "get_top_trends", "type": "Google Trends"}
{"mode": "get_top_trends", "type": "Google Play"}
The MCP equivalents are get_growth(keyword="chatgpt", source="google search", percent_growth=["30D", "12M"]), get_growth(keyword="com.openai.chatgpt", source="app downloads", percent_growth=["30D", "12M"]), get_time_series(keyword="chatgpt", source="google search"), get_time_series(keyword="com.openai.chatgpt", source="app downloads"), get_top_trends(type="Google Trends"), and get_top_trends(type="Google Play"). Keep the two growth calls separate when the Search phrase is not the bundle ID.
Omitting limit is not required to learn the stamp. Type Google Trends with limit 1 returned as_of_ts 2026-10-15T06:01:31.543499+00:00, rank 1 rj mitte. Type GitHub with limit 1 returned the same stamp, rank 1 morluto/rea. Type Google Play with limit 1 returned as_of_ts 2026-09-13T12:01:38.463213+00:00, rank 1 WhatsApp Messenger. Rank is live chart order, not a sort of the 2026-10-15 ChatGPT download index. Rank 1 on that board is a display name. It is not a bundle ID.
REST type google search (the keyword source string, lowercase) returned HTTP 200, echoed type Google Trends, and matched rj mitte at rank 1. REST type Google Search did the same. REST type app downloads returned HTTP 400, error invalid_request, message Unknown type 'app downloads', plus 24 valid feed labels. llms.txt still describes feed labels as case-sensitive. The live handler accepted some lowercase aliases on October 15, 2026 and rejected others. Prefer the canonical spelling in stored configs. Do not pass source app downloads as a feed type.
REST omitting type is a different 400. POST https://api.trendsmcp.ai/api with mode get_top_trends and 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. get_growth bills one request per source plus keyword, with extra percent_growth windows included, so a two-source comma string is two units. get_time_series bills one request per source plus keyword. Keyword follow-up stays on source google search or source app downloads. The live boards stay on their type strings.
FAQ