An Ada 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 Ada library. AWS.Client sends the request. GNATCOLL.JSON.Read reads the envelope, then parses the body string a second time. Pulled on 2026-10-17, Google Search for ada scored 96.0 for the week of 2026-10-10, down 4.0% from 100.0. ada programming scored 17.0, down 48.48% from 33.0. Those two tokens closed 79 points apart. YouTube for ada scored 84.0, down 5.62% from 89.0. Do not copy bare ada 96.0 onto a language-adoption alert that only watches the phrase token at 17.0. The same helper that stores those rows also pulls a live Google Trends board; a rank-23 token that weekly Search still printed at 29.0 versus 14.0 is documented in Street Fighter movie live rank versus weekly Search.
How does an Ada 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":"ada programming","percent_growth":["7D","30D","3M","12M"]}
with Ada.Environment_Variables;
with AWS.Client;
with AWS.Headers;
with AWS.Response;
with GNATCOLL.JSON;
function Post_Inner (Payload : String) return GNATCOLL.JSON.JSON_Value is
Headers : AWS.Headers.List;
begin
AWS.Headers.Add
(Headers, "Authorization",
"Bearer " & Ada.Environment_Variables.Value ("TRENDSAPI_API_KEY", ""));
AWS.Headers.Add (Headers, "Content-Type", "application/json");
declare
Resp : constant AWS.Response.Data :=
AWS.Client.Post
(URL => "https://api.trendsapi.ai/api",
Data => Payload,
Content_Type => "application/json",
Headers => Headers);
Envelope : constant GNATCOLL.JSON.JSON_Value :=
GNATCOLL.JSON.Read (AWS.Response.Message_Body (Resp));
begin
-- body is a JSON string; parse it a second time
return GNATCOLL.JSON.Read (Envelope.Get ("body"));
end;
end Post_Inner;
Inner : constant GNATCOLL.JSON.JSON_Value := Post_Inner
("{"
& """mode"": ""get_growth"","
& """source"": ""google search"","
& """keyword"": ""ada programming"","
& """percent_growth"": [""7D"", ""30D"", ""3M"", ""12M""]"
& "}");
Ada.Text_IO.Put_Line (Inner.Write);
The first mistake most clients make is treating the body field as an object after one parse. It is still a JSON string. AWS.Client.Post returns the envelope bytes. GNATCOLL.JSON.Read then parses body a second time. Library docs:
https://docs.adacore.com/aws-docs/aws/aws-client.html
https://docs.adacore.com/gnatcoll-docs/json.html
Free tier allows 100 successful requests per month. Only HTTP 200 responses count against quota. Starter is 5,000, Pro is 25,000, Business is 100,000. There is no Ada-specific source on this API. npm covers npmjs package names. python covers PyPI project names. There is no Alire source. A watchlist that needs Alire download counts has to pull those from somewhere else. A D sibling of this helper is on D Trends API. A Fortran sibling is on Fortran Trends API.
What did get_growth return for Ada language tokens?
get_growth for ada on google search tips on 2026-10-10. Store the exact strings. The short token, the programming phrase, and the ada language phrase are different series. Bare alire is not the package manager. Bare gnat is not the compiler.
| Keyword | Period | Recent date | Recent | Baseline date | Baseline | Growth |
|---|---|---|---|---|---|---|
| ada | 7D | 2026-10-10 | 96.0 | 2026-10-03 | 100.0 | -4.0% |
| ada | 14D | 2026-10-10 | 96.0 | 2026-09-26 | 94.0 | +2.13% |
| ada | 30D | 2026-10-10 | 96.0 | 2026-09-12 | 96.0 | 0.0% |
| ada | 3M | 2026-10-10 | 96.0 | 2026-07-11 | 90.0 | +6.67% |
| ada | 12M | 2026-10-10 | 96.0 | 2025-10-11 | 71.0 | +35.21% |
| ada | YTD | 2026-10-10 | 96.0 | 2026-01-03 | 67.0 | +43.28% |
| ada programming | 7D | 2026-10-10 | 17.0 | 2026-10-03 | 33.0 | -48.48% |
| ada programming | 14D | 2026-10-10 | 17.0 | 2026-09-26 | 47.0 | -63.83% |
| ada programming | 30D | 2026-10-10 | 17.0 | 2026-09-12 | 30.0 | -43.33% |
| ada programming | 3M | 2026-10-10 | 17.0 | 2026-07-11 | 48.0 | -64.58% |
| ada programming | 12M | 2026-10-10 | 17.0 | 2025-10-11 | 32.0 | -46.88% |
| ada programming | YTD | 2026-10-10 | 17.0 | 2026-01-03 | 21.0 | -19.05% |
| ada language | 7D | 2026-10-10 | 13.0 | 2026-10-03 | 31.0 | -58.06% |
| ada language | 14D | 2026-10-10 | 13.0 | 2026-09-26 | 39.0 | -66.67% |
| ada language | 30D | 2026-10-10 | 13.0 | 2026-09-12 | 29.0 | -55.17% |
| ada language | 3M | 2026-10-10 | 13.0 | 2026-07-11 | 55.0 | -76.36% |
| ada language | 12M | 2026-10-10 | 13.0 | 2025-10-11 | 38.0 | -65.79% |
| ada language | YTD | 2026-10-10 | 13.0 | 2026-01-03 | 24.0 | -45.83% |
| alire | 7D | 2026-10-10 | 23.0 | 2026-10-03 | 27.0 | -14.81% |
| alire | 12M | 2026-10-10 | 23.0 | 2025-10-11 | 15.0 | +53.33% |
| alire | YTD | 2026-10-10 | 23.0 | 2026-01-03 | 29.0 | -20.69% |
| gnat | 7D | 2026-10-10 | 70.0 | 2026-10-03 | 72.0 | -2.78% |
| gnat | 12M | 2026-10-10 | 70.0 | 2025-10-11 | 82.0 | -14.63% |
| gnat | YTD | 2026-10-10 | 70.0 | 2026-01-03 | 41.0 | +70.73% |
| zig programming | 7D | 2026-10-10 | 19.0 | 2026-10-03 | 17.0 | +11.76% |
| zig programming | 12M | 2026-10-10 | 19.0 | 2025-10-11 | 33.0 | -42.42% |
| rust programming | 7D | 2026-10-10 | 26.0 | 2026-10-03 | 18.0 | +44.44% |
| rust programming | 12M | 2026-10-10 | 26.0 | 2025-10-11 | 31.0 | -16.13% |
| nim programming | 7D | 2026-10-10 | 13.0 | 2026-10-03 | 32.0 | -59.38% |
| nim programming | 12M | 2026-10-10 | 13.0 | 2025-10-11 | 25.0 | -48.0% |
| crystal programming | 7D | 2026-10-10 | 4.0 | 2026-10-03 | 27.0 | -85.19% |
| d programming | 7D | 2026-10-10 | 10.0 | 2026-10-03 | 33.0 | -69.7% |
| go programming | 7D | 2026-10-10 | 16.0 | 2026-10-03 | 31.0 | -48.39% |
| go programming | 12M | 2026-10-10 | 16.0 | 2025-10-11 | 48.0 | -66.67% |
ada closed at 96.0, down 4.0% from 100.0. ada programming closed at 17.0, down 48.48% from 33.0. Same Saturday tip, same 7D sign, 79 points apart. The phrase token fell harder. ada language scored 13.0, down 58.06% from 31.0. 3M on that phrase was 13.0 versus 55.0 (-76.36%). 12M was 13.0 versus 38.0 (-65.79%). YTD was 13.0 versus 24.0 (-45.83%). Do not copy the short token 96.0 onto either phrase. 12M on ada was +35.21% versus 71.0 while 7D was -4.0%. 14D on ada was +2.13% versus 94.0, the opposite sign from 7D. Do not copy the 12M or 14D sign onto the 7D drop.
Bare alire scored 23.0, down 14.81% from 27.0. 12M was 23.0 versus 15.0 (+53.33%). YTD was 23.0 versus 29.0 (-20.69%). That is the place-name series, not Alire download volume. There is no Alire source. A job that alerts "Alire is down 14.81%" off Search 23.0 is reading a different series. Bare gnat scored 70.0, down 2.78% from 72.0. 12M was 70.0 versus 82.0 (-14.63%). YTD was 70.0 versus 41.0 (+70.73%). YTD on gnat is the opposite sign from 7D. That is the insect series, not GNAT compiler volume. Wikipedia for keyword GNAT resolved to the insect page. Keyword GNAT (software) returned 404 no_data.
zig programming scored 19.0, up 11.76% from 17.0. 12M was 19.0 versus 33.0 (-42.42%). YTD was 19.0 versus 38.0 (-50.0%). Yesterday the same Saturday tip printed Zig at 20.0 versus 18.0 (+11.11%). Both ends reprinted down by 1.0. Store the session pull. rust programming scored 26.0, up 44.44% from 18.0. 12M was 26.0 versus 31.0 (-16.13%). YTD was 26.0 versus 28.0 (-7.14%). Yesterday Rust reprinted 27.0 versus 18.0. nim programming scored 13.0, down 59.38% from 32.0. 12M was 13.0 versus 25.0 (-48.0%). YTD was 13.0 versus 29.0 (-55.17%). Yesterday Nim printed 12.0 versus 6.0 (+100.0%). The 2026-10-03 baseline reprinted from 6.0 to 32.0 and flipped the 7D sign. crystal programming scored 4.0, down 85.19% from 27.0. Yesterday Crystal reprinted 4.0 versus 26.0. d programming scored 10.0, down 69.7% from 33.0. Yesterday D reprinted 11.0 versus 34.0. go programming scored 16.0, down 48.39% from 31.0. 12M was 16.0 versus 48.0 (-66.67%). YTD was 16.0 versus 32.0 (-50.0%). Do not copy 26.0, 19.0, 13.0, 4.0, 10.0, or 16.0 onto ada programming 17.0.
get_time_series for ada on Google Search closed at 96 on 2026-10-10, matching get_growth 96.0. Adjacent weeks: 100 on 2026-10-03, 94 on 2026-09-26, 98 on 2026-09-19, 96 on 2026-09-12, 98 on 2026-09-05. The series has 260 weekly points from 2021-10-23 through 2026-10-10. Peak in this pull is 100 on 2026-10-03. Tip 96 is not that prior-week peak.
get_time_series for ada programming closed at 17 on 2026-10-10, matching get_growth 17.0. Adjacent weeks: 33 on 2026-10-03, 47 on 2026-09-26, 32 on 2026-09-19, 30 on 2026-09-12, 31 on 2026-09-05. Peak in this pull is 100 on 2026-06-06. The phrase token sat at 47 two weeks before the tip, then printed 33 and 17. Same week as the short token's close of 96. On 2026-06-06 Search ada programming printed 100 while Search ada printed 95. On 2026-10-03 Search ada printed 100 while Search ada programming printed 33. A Zig sibling of this helper is on Zig Trends API. A Rust sibling is on Rust Trends API.
What did YouTube, News, and Wikipedia return?
YouTube get_growth for ada tipped 84.0 on 2026-10-10, down 5.62% from 89.0, a slightly deeper 7D drop than Search -4.0%. 14D was 84.0 versus 84.0 (0.0%). 30D was 84.0 versus 87.0 (-3.45%). 3M was 84.0 versus 86.0 (-2.33%). 12M was 84.0 versus 88.0 (-4.55%). YTD was 84.0 versus 90.0 (-6.67%). YTD signs disagree with Search +43.28%. get_time_series closed at 84 on 2026-10-10, matching get_growth. Adjacent weeks: 89 on 2026-10-03, 84 on 2026-09-26, 86 on 2026-09-19, 87 on 2026-09-12, 82 on 2026-09-05. Peak in this pull is 100 on 2026-04-25. On 2026-10-03 Search printed 100 while YouTube printed 89. On 2026-06-06 Search programming printed 100 while YouTube ada printed 82. YouTube 84.0 is not Search 96.0. Do not copy the YouTube 7D of -5.62% onto a Search drop of -4.0% as if they were one series.
YouTube for ada programming tipped 20.0 on 2026-10-10, up 900.0% from 2.0. Opposite 7D sign from Search programming -48.48%. 14D was 20.0 versus 35.0 (-42.86%). 30D, 3M, 12M, and YTD baselined at 0.0 and printed growth 999999. Report 20.0 versus 0.0. get_time_series closed at 20, matching get_growth. Adjacent weeks: 2 on 2026-10-03, 35 on 2026-09-26, 0 on 2026-09-19, 0 on 2026-09-12, 0 on 2026-09-05. Peak in this pull is 100 on 2026-07-18. On 2026-07-18 YouTube programming printed 100 while Search programming printed 40. On 2026-06-06 Search programming printed 100 while YouTube programming printed 0. YouTube programming 20.0 is not Search programming 17.0 and is not bare YouTube 84.0.
Keyword Google News for ada programming printed 0.0 on every window (7D, 14D, 30D, 3M, 12M, YTD). data_quality was low. Absence of News coverage for the phrase token is a finding. Do not fill those zeros from Search 17.0 or from News ada 55.0. Keyword Google News for ada tipped 55.0 on 2026-10-10, up 103.7% from 27.0, the opposite 7D sign from Search -4.0%. 14D was 55.0 versus 22.0 (+150.0%). 30D was 55.0 versus 20.0 (+175.0%). 3M was 55.0 versus 10.0 (+450.0%). 12M was 55.0 versus 14.0 (+292.86%). YTD was 55.0 versus 8.0 (+587.5%). get_time_series closed at 55, matching get_growth. Adjacent weeks: 27 on 2026-10-03, 22 on 2026-09-26, 17 on 2026-09-19, 20 on 2026-09-12, 90 on 2026-09-05. Peak in this pull is 100 on 2026-08-22. Tip 55 is not that August peak. On 2026-08-22 News printed 100 while Search printed 88 and Search programming printed 24. Keyword News and the Google News Top News board are different feeds.
Wikipedia resolved three Ada titles. Keyword Ada (programming language) resolved with September score 26.3 and 12,126 views versus August 16.6 / 10,492 (score +58.43%, volume +15.57%). 3M volume was 12,126 versus 12,011 in June (+0.96%) with score 26.3 versus 25.6. 12M volume was 12,126 versus 16,434 on 2025-09-01 (-26.21%) while the score went 26.3 versus 52.0 (-49.42%). YTD volume was 12,126 versus 15,657 (-22.55%) with score 26.3 versus 47.3 (-44.4%). 7D and 14D collapsed to the same monthly point. Report both score and volume.
Keyword Ada is a different page. September score 27.8 with 1,279 views versus August 27.2 / 1,267 (score +2.21%, volume +0.95%). 12M volume was 1,279 versus 1,194 (+7.12%). YTD volume was 1,279 versus 1,441 (-11.24%). Keyword Ada Lovelace is a third page. September score 28.6 with 427 views versus August 12.0 / 328 (score +138.33%, volume +30.18%). 12M volume was 427 versus 630 (-32.22%). The language title has more September views than the short title (12,126 versus 1,279). The short title has more views than the Lovelace page (1,279 versus 427). Opposite of D, Crystal, and Nim, where the short title held the traffic. Same long-title split as Erlang. Keyword GNAT resolved to the insect page with September 13,858 views. Keyword GNAT (software) 404. Compare Wikipedia on volume. Do not join any of those pages onto Search 96.0. Notes for the Wikipedia source sit on Wikipedia Trends.
How does a watchlist store live boards next to weekly scores?
get_top_trends has no keyword. It returns a ranked board. Pair it with get_growth for the tokens that appear, using the exact board string.
{"mode":"get_top_trends","type":"Google Trends","limit":25}
{"mode":"get_top_trends","type":"Google Trends","sort":"rank_change","window":"1d","limit":25}
The Google Trends board at 2026-10-17T10:01:37Z ranked rj mitte 1 and street fighter movie 23. The 1-day rank_change sort (16 rows, baseline 2026-10-16T02:01:33Z) placed street fighter movie at +34 from previous rank 57. The 7-day sort returned 0 rows (baseline 2026-10-10T02:01:34Z) with a note that the board turned over completely. Weekly Search for street fighter movie was 29.0 versus 14.0 on 7D. Live rank 23 with a 1d climber is not weekly Search 29.0 versus 14.0. The walk-through is Street Fighter movie live rank versus weekly Search.
An Ada watchlist that stores five Search tokens (ada, ada programming, ada language, zig programming, rust programming) plus one YouTube series plus one Google Trends board uses 7 successful 200s. Four runs per 30-day month is 28 calls and fits the free cap of 100. Daily polling of that set is about 210 calls and needs Starter (5,000). Modes and sources for the modes live at https://trendsapi.ai/docs. Google Search board strings are not always valid get_growth keywords. Pair get_top_trends rank, rank_change, and get_growth before writing an alert. Source notes for Search sit on Google Trends.
Envelope checklist
POST https://api.trendsapi.ai/apiwithAuthorization: Bearer <api_key>.- Modes are
get_time_series,get_growth, andget_top_trendsonly. - Parse
bodytwice before readingresultsor dated points. - Google Search uses the exact token typed.
ada,ada programming, andada languageare three series.alireandgnatwithout a language qualifier are other series. Wikipedia titles are resolved names; confirm the title and compare on volume before joining. - Quota counts successful 200 responses: free 100/month, then 5,000 / 25,000 / 100,000 on paid tiers.
No Ada library is required. A 30-line AWS.Client helper covers growth, series, and board pulls for jobs that already run under systemd or a cron timer.