Pass source google search for a weekly Google Search interest series, or source npm for a weekly download series. npm volume is independent. Search volume is estimated. Exact package names are case-sensitive on npm.
Live data as of 2026-10-13
Source google search on get_growth and get_time_series returns a weekly 0-100 Google Search interest series for one phrase. Source npm returns a weekly 0-100 download-index series for an exact package name, plus an independent download-count volume field. Both pulls on October 13, 2026 used the string react. Google Search held 261 weekly points from 2021-10-16 through 2026-10-10 and closed 28.0, with series volume 492920. npm held 260 weekly points from 2021-10-23 through 2026-10-10 and closed 83.8, with series volume 187877532. Search 12M fell 54.1 percent from 61.0. npm 12M rose 368.16 percent from 17.9, while download volume rose 306.7 percent from 46196105.0. The live boards use type Google Trends and type GitHub, not those source strings.
The October 13, 2026 pull is the split that still matters next month: weekly Search interest versus weekly npm downloads, then two indexes that do not share a scale. get_time_series for react on source google search returned 261 weekly points from 2021-10-16 (value 44, volume 774588) through 2026-10-10 (value 28, volume 492920). Peak 100 sat on 2026-05-16 at volume 1760428. The series field is source google search. Growth metadata printed total_data_points 261.
get_time_series for react on source npm returned 260 weekly points from 2021-10-23 (value 0.8, volume 9444789) through 2026-10-10 (value 83.8, volume 187877532). Peak 100.0 sat on 2026-10-03 at volume 222767611, the week before the close. The series field is datatype npm, not source. REST and MCP both printed datatype. Growth metadata printed total_data_points 260. Search starts one week earlier. npm does not backfill that first Search week.
Search 7D was minus 15.15 percent from 33.0, recent_date 2026-10-10, baseline 2026-10-03. npm 7D was minus 16.2 percent from 100.0, the drop off that series peak, with volume_growth minus 15.66 percent from 222767611.0. 30D flipped sign. Search 30D was minus 40.43 percent from 47.0. npm 30D was plus 50.18 percent from 55.8, download volume plus 47.16 percent from 127666991.0. Search YTD was minus 28.21 percent from 39.0 on 2026-01-03. npm YTD was plus 534.85 percent from 13.2 on 2026-01-03, with volume_growth plus 421.36 percent from 36036220.0. Omitting percent_growth defaults to 12M on both and succeeded on both.
| Keyword | Search close | Search 12M | Search YTD | npm close | npm 12M index | npm 12M downloads | Points |
|---|---|---|---|---|---|---|---|
| react | 28.0 on 2026-10-10 | -54.1% from 61.0 | -28.21% from 39.0 | 83.8 on 2026-10-10 | +368.16% from 17.9 | +306.7% (187877532 from 46196105) | 261 / 260 |
| vue | 54.0 on 2026-10-10 | -6.9% from 58.0 | -22.86% from 70.0 | 33.3 on 2026-10-10 | +187.07% from 11.6 | +145.09% (17460488) | 261 / 260 |
| typescript | 15.0 on 2026-10-10 | -71.7% from 53.0 | -40.0% from 25.0 | 84.0 on 2026-10-10 | +260.52% from 23.3 | +215.76% (307381940) | 261 / 260 |
| lodash | 6.0 on 2026-10-10 | -77.78% from 27.0 | -25.0% from 8.0 | 77.6 on 2026-10-10 | +176.16% from 28.1 | +116.54% (163294778) | 261 / 260 |
| langchain | 17.0 on 2026-10-10 | -75.71% from 70.0 | -60.47% from 43.0 | 82.5 on 2026-10-10 | +159.43% from 31.8 | +159.79% (3074799) | 261 / 260 |
The 12M sign flip is not a react quirk. vue, typescript, lodash, and langchain each fell on Search and rose on npm over the same 12M window. axios did the same at 12M (Search minus 20.69 percent from 29.0, npm plus 86.29 percent from 44.5) even though YTD Search was up 91.67 percent from 12.0. Quote both closes. Do not rescale one index onto the other.
npm can print index 0.0 while downloads remain. react on 2022-01-01 printed value 0.0 and volume 7655803. A zero index is not an empty registry week. Read volume before treating 0.0 as missing data. Search volume is estimated when present. react printed volume_available true, volume_estimated true, recent_volume 493000.0, and volume_growth null. The series integer on 2026-10-10 was 492920. typescript, lodash, and langchain printed no volume keys on Search growth in this pull. Presence of a volume key on one Search keyword does not promise it on the next.
Source names case-fold. NPM on get_growth for react returned the same 12M row as the lowercase label. Feed labels do not belong here. Source GitHub returned HTTP 400 invalid_source, message 'github' is not a valid source., and listed 16 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 npm or source google search.
Google Search react printed estimated volume. npm react printed independent download counts. A comma call still mixes them.
{"mode": "get_growth", "source": "google search, npm", "keyword": "react", "percent_growth": ["7D", "30D", "12M", "YTD"]}
That comma call on October 13, 2026 returned sources_successful 2. trend_analysis printed uptrend_count 0, downtrend_count 2, and uptrend_ratio 0/2. Both 7D windows succeeded, so the mixer never skipped ahead to 30D. Google Search 7D was minus 15.15 percent. npm 7D index was minus 16.2 percent, with volume_growth minus 15.66. The 0/2 tally used those first windows. Search 12M minus 54.1 percent never entered that ratio as a second vote. npm 12M plus 368.16 percent never entered either.
volume_weighted_growth was minus 15.66 with has_volume_data true, sources_with_volume 2, weight_coverage 2/2 sources, and total_volume 188370532.0. npm contributed 187877532.0 (99.74 percent of the mix) at growth minus 15.66, weighted contribution minus 15.619. Google Search contributed 493000.0 (0.26 percent) at growth minus 15.15, weighted contribution minus 0.0397. The minus 15.66 is npm volume_growth, an independent download-count change. The minus 15.15 is Search index growth. Search volume_growth was null, with the reason that volume is derived from the trend value. The mixer still treated 493000 estimated Search units as 0.26 percent of a download-count denominator, then treated npm's 188 million downloads as the rest.
get_time_series rejects the comma. Source google search, npm returned HTTP 400 invalid_source and listed 16 keyword sources with no all. One source per series call. Two sources belong on get-growth.
npm growth rows printed volume_available true and a real volume_growth. react 30D index plus 50.18 percent sat next to download-count plus 47.16 percent (187877532.0 from 127666991.0). 12M index plus 368.16 percent sat next to download-count plus 306.7 percent (187877532.0 from 46196105.0). Those two percents are not interchangeable. The 0-100 column is a normalized index. The volume column is weekly downloads.
Google Search volume is estimated when present. react printed volume_available true, volume_estimated true, recent_volume 493000.0, and volume_growth null. vue printed estimated Search volume 1370000.0. typescript printed no Search volume keys at all, while npm typescript printed 307381940.0 weekly downloads. A missing Search volume key is not a missing npm series.
Keyword format is the other split. Source google search accepts an ordinary phrase. Source npm is documented as an exact npmjs.com package name, case-sensitive. Live traffic enforced that. Keyword React on source npm returned no_data. Keyword react.js returned no_data. Source google search folded React onto react (28.0, 12M minus 54.1 percent) and treated react.js as a different series (27.0, 12M minus 49.06 percent). Scoped names work on npm. @babel/core closed 82.5 with 189388655.0 downloads, 12M plus 216.09 percent from 26.1. The same string on Google Search closed 1.0, with 12M printed as 999999.0 from 0.0. That sentinel is not a 999999-fold rise in Search demand. Prefer the registry spelling in stored configs.
next is the English-word trap. npm next closed 87.9 with 67261197.0 downloads, 12M plus 439.26 percent from 16.3. Google Search next closed 64.0 with estimated volume 9900000.0, 12M plus 1.59 percent from 63.0. That Search series is the ordinary English word, not the Next.js package. Confirm the series length and the close before assuming two labels hit the same library.
The 0-100 columns are independent indexes. react Search close 28.0 is not 28 percent of npm close 83.8. npm 12M plus 368.16 percent from 17.9 is a jump on the download index, not a 4.7x rise in Search demand. Search 12M on that name was minus 54.1 percent from 61.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. Google Search history lives on the Google search data page. Weekly download follow-up lives on npm trends. The adjacent live board is npm vs GitHub, not a second npm keyword source.
{"mode": "get_growth", "source": "google search, npm", "keyword": "react", "percent_growth": ["30D", "12M"]}
{"mode": "get_time_series", "source": "google search", "keyword": "react"}
{"mode": "get_time_series", "source": "npm", "keyword": "react"}
{"mode": "get_top_trends", "type": "Google Trends"}
{"mode": "get_top_trends", "type": "GitHub"}
The MCP equivalents are get_growth(keyword="react", source="google search, npm", percent_growth=["30D", "12M"]), get_time_series(keyword="react", source="google search"), get_time_series(keyword="react", source="npm"), get_top_trends(type="Google Trends"), and get_top_trends(type="GitHub"). REST 1M is not required here. Both sources are weekly, so 7D succeeded on both.
Omitting limit is not required to learn the stamp. Type Google Trends with limit 1 returned as_of_ts 2026-10-13T06:01:40.853496+00:00, rank 1 hurricane isaias. Type GitHub with limit 1 returned the same stamp, rank 1 morluto/rea. Rank is live chart order, not a sort of the 2026-10-10 npm index. Rank 1 on that board is a repository name. It is not an npm package keyword.
REST type google search (the keyword source string, lowercase) returned HTTP 200, echoed type Google Trends, and matched hurricane isaias at rank 1. REST type npm and type NPM returned HTTP 400, error invalid_request, message Unknown type 'npm' (or 'NPM'), plus 24 valid feed labels. REST type steam and type youtube returned the same 400 shape. type youtube trending aliased to YouTube Trending. llms.txt still describes feed labels as case-sensitive. The live handler accepted some lowercase aliases on October 13, 2026 and rejected others. Prefer the canonical spelling in stored configs. Do not pass source npm 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 npm. The live boards stay on their type strings.
FAQ