get_time_series is the chart mode. Send mode get_time_series, exactly one source, and a keyword. There is no percent_growth field. The HTTP call is POST https://api.trendsapi.ai/api with a Bearer key. The envelope body is a JSON string that decodes to an array, not an object with results. Parse it. Mode notes sit on the API reference.
One source, one keyword
POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json
{"mode":"get_time_series","source":"google search","keyword":"bitcoin"}
source must be a keyword source: google search, youtube, tiktok, python, steam, and the rest of the MCP list. It is not a live type such as Google Trends. Mixing those fields is a 400.
get_trends on REST runs this same path. Details sit on the alias page.
The point array
A 27 Aug 2026 pull for bitcoin on google search returned weekly objects:
{"date":"2026-08-22","value":35,"keyword":"bitcoin","source":"google search"}
value is the 0-100 index. 100 is the peak of that series. In this pull the peak was 2022-06-18. Those points had no volume key. Official docs still list volume as number or null when the source has an absolute count. Do not treat a missing volume as a zero score. That rule is on volume versus score.
When to switch to get_growth
If the next line of code is latest / first - 1, stop. get_growth already does that comparison and can return several windows in one POST. Keep get_time_series for plots, custom math, and exports.
A live board with no keyword is get_top_trends. Caps stay on pricing.