A V job talks to Trends API with one POST to https://api.trendsapi.ai/api, a Bearer key, and a JSON body that names a mode. There is no official V library. net.http sends the request. json.decode reads the envelope, then parses the body string a second time. Pulled on 2026-10-18, Google Search for vlang scored 16.0 for the week of 2026-10-17, down 33.33% from 24.0. v programming scored 5.0, down 16.67% from 6.0. Those two tokens closed 11 points apart. YouTube for v programming scored 34.0, down 12.82% from 39.0. Do not copy bare vlang 16.0 onto a language-adoption alert that only watches the phrase token at 5.0. The same helper that stores those rows also pulls a live Google Trends board. A rank-8 calendar token that weekly Search printed at 44.0 versus 24.0 is documented in Indigenous Peoples Day live rank versus weekly Search.

How does a V client call Trends API?

POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json

{"mode":"get_growth","source":"google search","keyword":"vlang","percent_growth":["7D","30D","3M","12M"]}
import json
import net.http
import os

struct Envelope {
    status_code int    @[json: 'statusCode']
    body        string
}

fn trends_post(payload string) !string {
    api_key := os.getenv('TRENDSAPI_API_KEY')
    mut header := http.new_header()
    header.add_custom('Authorization', 'Bearer ${api_key}')!
    header.add(.content_type, 'application/json')
    resp := http.fetch(
        method: .post
        url:    'https://api.trendsapi.ai/api'
        header: header
        data:   payload
    )!
    envelope := json.decode(Envelope, resp.body)!
    // body is a JSON string; parse it a second time
    return envelope.body
}

fn main() {
    payload := '{"mode":"get_growth","source":"google search","keyword":"vlang","percent_growth":["7D","30D","3M","12M"]}'
    inner := trends_post(payload) or {
        eprintln(err)
        return
    }
    println(inner)
}

http.fetch and json.decode are in the V standard library. Docs live at:

https://modules.vlang.io/net.http.html
https://modules.vlang.io/json.html

The response envelope is {"statusCode": int, "body": string}. body is a JSON string and must be parsed a second time before reading recent_value. An Ada client that does the same double parse with AWS.Client and GNATCOLL.JSON is on Ada Trends API. A Zig client is on Zig Trends API.

What did get_growth return for V language tokens?

get_growth for vlang on google search tips on 2026-10-17. Store the exact strings. v programming is a different series. The compact name and the language phrase moved on the same 7D sign and different percents.

Keyword Period Recent date Recent Baseline date Baseline Growth
vlang 7D 2026-10-17 16.0 2026-10-10 24.0 -33.33%
vlang 14D 2026-10-17 16.0 2026-10-03 25.0 -36.0%
vlang 30D 2026-10-17 16.0 2026-09-19 28.0 -42.86%
vlang 3M 2026-10-17 16.0 2026-07-18 35.0 -54.29%
vlang 12M 2026-10-17 16.0 2025-10-18 94.0 -82.98%
vlang YTD 2026-10-17 16.0 2026-01-03 15.0 +6.67%
v programming 7D 2026-10-17 5.0 2026-10-10 6.0 -16.67%
v programming 14D 2026-10-17 5.0 2026-10-03 34.0 -85.29%
v programming 30D 2026-10-17 5.0 2026-09-19 43.0 -88.37%
v programming 3M 2026-10-17 5.0 2026-07-18 38.0 -86.84%
v programming 12M 2026-10-17 5.0 2025-10-18 29.0 -82.76%
v programming YTD 2026-10-17 5.0 2026-01-03 22.0 -77.27%
v language 7D 2026-10-17 9.0 2026-10-10 9.0 0.0%
v language 14D 2026-10-17 9.0 2026-10-03 37.0 -75.68%
v language 3M 2026-10-17 9.0 2026-07-18 45.0 -80.0%
v language YTD 2026-10-17 9.0 2026-01-03 26.0 -65.38%
vpm 7D 2026-10-17 80.0 2026-10-10 84.0 -4.76%
vpm 12M 2026-10-17 80.0 2025-10-18 89.0 -10.11%
vpm YTD 2026-10-17 80.0 2026-01-03 66.0 +21.21%

get_time_series for vlang on Google Search closed at 16 on 2026-10-17, matching get_growth 16.0. Adjacent weeks: 24 on 2026-10-10, 25 on 2026-10-03, 24 on 2026-09-26, 28 on 2026-09-19. Peak in this pull is 100 on 2025-07-26, with 94 on 2025-10-18 and 70 on 2025-10-11. Tip 16 is not that July high. 12M versus 94.0 is the week of 2025-10-18, the same Saturday a year earlier. YTD printed +6.67% versus 15.0, the opposite sign from 7D -33.33%. A job that alerts on YTD +6.67% while 7D sits at -33.33% is reading a low January baseline, not a new peak.

v programming closed at 5.0, down 16.67% from 6.0, matching series 5. Adjacent weeks: 6 on 2026-10-10, 34 on 2026-10-03, 62 on 2026-09-26, 43 on 2026-09-19. Peak in this pull is 100 on 2026-06-06, with 91 on 2026-05-16 and 86 on 2026-05-30. Tip 5 is a crash from 62 two Saturdays earlier. Same 7D sign as vlang, 11 points apart, phrase sat lower. Do not copy 16.0 onto v programming 5.0.

v language closed at 9.0, flat on 7D versus 9.0. 14D was 9.0 versus 37.0 (-75.68%). 12M was 9.0 versus 33.0 (-72.73%). That token sits between vlang 16.0 and v programming 5.0. Store all three.

Bare vpm closed at 80.0, down 4.76% from 84.0. 3M was 80.0 versus 87.0 (-8.05%). YTD was 80.0 versus 66.0 (+21.21%), the opposite 7D-to-YTD pattern from vlang. That three-letter string mixes other uses of VPM. There is no VPM package registry source on this API. Do not treat Search 80.0 as V package downloads.

Neighbor languages on the same pull, same source, same 7D window:

Keyword 7D recent 7D baseline 7D growth 12M recent 12M baseline 12M growth
vlang 16.0 24.0 -33.33% 16.0 94.0 -82.98%
v programming 5.0 6.0 -16.67% 5.0 29.0 -82.76%
zig programming 20.0 20.0 0.0% 20.0 32.0 -37.5%
rust programming 22.0 26.0 -15.38% 22.0 31.0 -29.03%
odin programming 18.0 22.0 -18.18% 18.0 27.0 -33.33%
nim programming 12.0 13.0 -7.69% 12.0 28.0 -57.14%
go programming 16.0 16.0 0.0% 16.0 50.0 -68.0%
crystal programming 5.0 4.0 +25.0% 5.0 24.0 -79.17%
d programming 8.0 11.0 -27.27% 8.0 22.0 -63.64%

Do not copy go programming 16.0 onto vlang 16.0. Those two tokens closed at the same 7D score and different 12M baselines (50.0 versus 94.0). crystal programming scored 5.0 versus 4.0 (+25.0%), the same close as v programming 5.0 and the opposite 7D sign. nim programming YTD printed growth 999999 versus 0.0. Report 12.0 versus 0.0. A Zig Trends API helper stores the systems-language neighbor on the same 7D window (20.0 versus 20.0). v programming YTD was 5.0 versus 22.0 (-77.27%). zig programming YTD was 20.0 versus 42.0 (-52.38%). Same calendar, different floors.

What did YouTube, News, and Wikipedia return?

YouTube for v programming closed higher than Search on the 0-100 score. Keyword Google News for vlang printed zeros. Wikipedia titles resolve on their own. Compare Wikipedia on volume.

YouTube for v programming tipped 34.0 on 2026-10-17, down 12.82% from 39.0, while Search fell 16.67% to 5.0. 14D was 34.0 versus 38.0 (-10.53%). 30D was 34.0 versus 34.0 (0.0%). 3M was 34.0 versus 77.0 (-55.84%). 12M was 34.0 versus 44.0 (-22.73%). YTD was 34.0 versus 35.0 (-2.86%). get_time_series closed at 34, matching get_growth. Adjacent weeks: 39 on 2026-10-10, 38 on 2026-10-03, 45 on 2026-09-26, 34 on 2026-09-19. Peak in this pull is 100 on 2022-04-23, with 93 on 2024-01-27 and 77 on 2026-07-18. Tip 34 is not that April 2022 peak. On 2026-06-06 Search printed 100 while YouTube printed 47. On 2026-07-18 YouTube printed 77 while Search printed 38. YouTube 34.0 is not Search 5.0. Do not treat the YouTube floor as language adoption while Search sits at 5.0 after a 100 close four months earlier.

YouTube for vlang tipped 18.0 versus 24.0 (-25.0%). 14D, 30D, 3M, 12M, and YTD baselined at 0.0 and printed growth 999999. Report 18.0 versus 0.0. YouTube vlang 18.0 sits below YouTube v programming 34.0 and above Search vlang 16.0.

Keyword Google News for v programming tipped 6.0 versus 4.0 (+50.0%), the opposite 7D sign from Search -16.67%. The payload marked data_quality low with a warning that the underlying signal is over 90% zeros. Later windows baselined at 0.0. Report 6.0 versus 0.0 for those. Keyword Google News for vlang returned 502 source_unavailable on the first call, then 0.0 versus 0.0 on every window on retry, also data_quality low. Store the zeros. Do not fill News from Search 16.0. Keyword News and the Google News Top News board are different feeds. Mode docs sit at https://trendsapi.ai/docs.

Wikipedia for V (programming language) collapsed 7D and 14D (collapsed_range: recent and baseline resolved to the same monthly point). September 2026 scored 59.5 with 3,128 pageviews versus August 45.6 with 2,398 (score +30.48%, volume +30.44%). 3M was 59.5 / 3,128 versus June 55.3 / 2,908 (volume +7.57%). 12M was 59.5 / 3,128 versus September 2025 77.2 / 4,057 (volume -22.9%). YTD was 59.5 / 3,128 versus January 67.4 / 3,543 (volume -11.71%). Peak in this pull is 100.0 / 5,254 in November 2023, with 92.3 / 4,848 in October 2025 and 91.7 / 4,820 in March 2024. Compare Wikipedia on volume. Do not join 3,128 views onto Search 16.0. Bare V resolved to a different page (September 18.8 / 12,763 views versus August 20.5 / 13,208). Short title has more September views than the language title (12,763 versus 3,128). Store both titles. Wikipedia source docs sit at https://trendsapi.ai/trends/wikipedia-trends.

There is no V package registry source on this API. npm covers npmjs. python covers PyPI. A V watchlist that wants package downloads has no third source to join onto Search 16.0.

How does a watchlist store live boards next to weekly scores?

get_top_trends has no keyword. Pair the live Google Trends board with get_growth on the exact board string. Live rank, 1-day rank_change, and 7-day rank_change are three feeds.

POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json

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

On 2026-10-18T10:01:33Z the live Google Trends board ranked indigenous peoples day at 8. The 1-day rank_change sort returned 25 rows (baseline 2026-10-17T02:01:35Z) and omitted it. The 7-day sort returned 2 rows (baseline 2026-10-11T02:01:41Z) and listed it at +141 from prev_rank 149. Weekly Search for that exact string scored 44.0 versus 24.0, up 83.33%. The helper that stores those rows is the blog in this batch: Indigenous Peoples Day live rank versus weekly Search. Board-shape notes for Google Trends live feeds sit at https://trendsapi.ai/trends/google-trends.

Free tier is 100 successful 200s per month. Only 200 responses count against quota. Five language tokens plus one live board is 6 calls. A Monday run that also pulls YouTube and Wikipedia for the programming phrase is 8 calls. Four weeks is 32 calls and still fits the free cap. Starter is 5,000, Pro 25,000, Business 100,000.

Envelope checklist

  1. POST https://api.trendsapi.ai/api with Authorization: Bearer <api_key>.
  2. Parse the transport JSON, then parse the body string a second time.
  3. Store vlang, v programming, v language, and vpm as separate series.
  4. Compare Wikipedia V (programming language) on volume (3,128 September views), not on 59.5.
  5. Pair get_top_trends rank with both rank_change windows and get_growth on the exact board string.

A Nim client that uses std/httpclient for the same envelope is on Nim Trends API.