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
POSThttps://api.trendsapi.ai/apiwithAuthorization: Bearer <api_key>.- Parse the transport JSON, then parse the
bodystring a second time. - Store
vlang,v programming,v language, andvpmas separate series. - Compare Wikipedia
V (programming language)on volume (3,128 September views), not on 59.5. - Pair
get_top_trendsrank with bothrank_changewindows andget_growthon the exact board string.
A Nim client that uses std/httpclient for the same envelope is on Nim Trends API.