A Hare 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 Hare library. net covers sockets. HTTP is C FFI: @symbol binds libcurl, then encoding::json parses the envelope and the body string a second time. Pulled on 2026-10-21, Google Search for hare programming scored 8.0 for the week of 2026-10-17, up 100.0% from 4.0. hare language scored 18.0, up 63.64% from 11.0. Those two tokens closed 10 points apart, language phrase above programming. YouTube for hare programming scored 7.0, flat versus 7.0. Do not copy bare hare Search 65.0 onto a language-adoption alert that only watches the phrase token at 8.0. The same helper that stores those rows also pulls a live Google Trends board. A rank-20 name that weekly Search printed at 50.0 versus 8.0 is documented in Love of Your Life live rank versus weekly Search.

How does a Hare 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":"hare programming","percent_growth":["7D","30D","3M","12M"]}
use encoding::json;
use fmt;
use os;
use strings;

type curl = opaque;
type curlslist = opaque;

@symbol("curl_easy_init") fn curl_easy_init() nullable *curl;
@symbol("curl_easy_setopt") fn curl_easy_setopt(c: *curl, opt: int, ...) int;
@symbol("curl_easy_perform") fn curl_easy_perform(c: *curl) int;
@symbol("curl_easy_cleanup") fn curl_easy_cleanup(c: *curl) void;
@symbol("curl_slist_append") fn curl_slist_append(list: nullable *curlslist, s: *const char) *curlslist;
@symbol("curl_slist_free_all") fn curl_slist_free_all(list: *curlslist) void;

export fn main() void = {
    const key = os::getenv("TRENDSAPI_API_KEY");
    const payload = "{\"mode\":\"get_growth\",\"source\":\"google search\",\"keyword\":\"hare programming\",\"percent_growth\":[\"7D\",\"30D\",\"3M\",\"12M\"]}";
    const c = curl_easy_init()!;
    const auth = fmt::asprintf("Authorization: Bearer {}", key)!;
    let headers = curl_slist_append(null, strings::to_c(auth));
    headers = curl_slist_append(headers, "Content-Type: application/json");
    // CURLOPT_URL 10002, CURLOPT_HTTPHEADER 10023, CURLOPT_POSTFIELDS 10015
    curl_easy_setopt(c, 10002, "https://api.trendsapi.ai/api");
    curl_easy_setopt(c, 10023, headers);
    curl_easy_setopt(c, 10015, payload);
    curl_easy_perform(c);
    fmt::println("parse the envelope, then parse body a second time")!;
    curl_slist_free_all(headers);
    curl_easy_cleanup(c);
};

curl_easy_setopt is a C symbol. Bind it with @symbol. encoding::json is in the Hare stdlib. json::loads on the transport bytes, then json::loads again on the body string. Docs live at:

https://docs.harelang.org/encoding/json
https://docs.harelang.org/net
https://curl.se/libcurl/c/curl_easy_setopt.html
https://harelang.org

Link curl from the build:

hare build -lcurl trends.ha

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

What did get_growth return for Hare language tokens?

get_growth for hare programming on google search tips on 2026-10-17. Store the exact strings. hare language is a different series. The language phrase sat 10 points above the programming phrase on the same 7D sign.

Keyword Period Recent date Recent Baseline date Baseline Growth
hare programming 7D 2026-10-17 8.0 2026-10-10 4.0 +100.0%
hare programming 14D 2026-10-17 8.0 2026-10-03 47.0 -82.98%
hare programming 30D 2026-10-17 8.0 2026-09-19 0.0 vs 0.0
hare programming 3M 2026-10-17 8.0 2026-07-18 48.0 -83.33%
hare programming 12M 2026-10-17 8.0 2025-10-18 0.0 vs 0.0
hare programming YTD 2026-10-17 8.0 2026-01-03 0.0 vs 0.0
hare language 7D 2026-10-17 18.0 2026-10-10 11.0 +63.64%
hare language 14D 2026-10-17 18.0 2026-10-03 43.0 -58.14%
hare language 30D 2026-10-17 18.0 2026-09-19 45.0 -60.0%
hare language 3M 2026-10-17 18.0 2026-07-18 51.0 -64.71%
hare language 12M 2026-10-17 18.0 2025-10-18 35.0 -48.57%
hare language YTD 2026-10-17 18.0 2026-01-03 25.0 -28.0%
harelang 7D 2026-10-17 0.0 2026-10-10 0.0 0.0%
harelang 30D 2026-10-17 0.0 2026-09-19 76.0 -100.0%
hare compiler 7D 2026-10-17 0.0 2026-10-10 0.0 0.0%
hare 7D 2026-10-17 65.0 2026-10-10 62.0 +4.84%
hare 12M 2026-10-17 65.0 2025-10-18 66.0 -1.52%
hare YTD 2026-10-17 65.0 2026-01-03 72.0 -9.72%

get_time_series for hare programming on Google Search closed at 8 on 2026-10-17, matching get_growth 8.0. Adjacent weeks: 4 on 2026-10-10, 47 on 2026-10-03, 83 on 2026-09-26, 0 on 2026-09-19. Peak in this pull is 100 on 2026-01-17, with 92 on 2026-06-20, 83 on 2026-09-26, and 85 on 2022-04-30. Tip 8 is not that January high. 12M versus 0.0 is the week of 2025-10-18. The payload printed growth 999999 on 30D, 12M, and YTD because those baselines were 0.0. Report 8.0 versus 0.0. 7D printed +100.0% versus 4.0, the opposite sign from 14D -82.98% versus 47.0 and 3M -83.33% versus 48.0. A job that alerts on 7D +100.0% while 3M sits at -83.33% versus 48.0 is reading a one-week bounce off 4.0, not a new peak.

hare language closed at 18.0, up 63.64% from 11.0. Same 7D sign as hare programming, 10 points above, language sat higher. 14D was 18.0 versus 43.0 (-58.14%). 3M was 18.0 versus 51.0 (-64.71%). Do not copy 8.0 onto hare language 18.0. That split is the opposite of C3, where the programming phrase sat above the language phrase.

harelang closed at 0.0 versus 0.0 on 7D. The payload marked data_quality low with a warning that the underlying signal is over 90% zeros. 30D printed 0.0 versus 76.0 (-100.0%). Later windows were 0.0 versus 0.0. That concatenated string is not package-download volume.

hare compiler closed at 0.0 versus 0.0 on every window, also data_quality low. Do not copy compiler 0.0 onto programming 8.0.

Bare hare closed at 65.0, up 4.84% from 62.0, with estimated Search volume 361,000 versus 344,000. 12M was 65.0 versus 66.0 (-1.52%). YTD was 65.0 versus 72.0 (-9.72%). That four-character string mixes the animal, other products, and the language. Do not treat Search 65.0 as Hare language adoption. There is no Hare package registry source on this API.

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

Keyword 7D recent 7D baseline 7D growth 12M recent 12M baseline 12M growth
hare programming 8.0 4.0 +100.0% 8.0 0.0 vs 0.0
hare language 18.0 11.0 +63.64% 18.0 35.0 -48.57%
jai programming 18.0 12.0 +50.0% 18.0 0.0 vs 0.0
odin programming 19.0 23.0 -17.39% 19.0 27.0 -29.63%
zig programming 20.0 21.0 -4.76% 20.0 27.0 -25.93%
rust programming 23.0 28.0 -17.86% 23.0 33.0 -30.3%
nim programming 13.0 7.0 +85.71% 13.0 31.0 -58.06%
vlang 15.0 12.0 +25.0% 15.0 81.0 -81.48%
v programming 5.0 7.0 -28.57% 5.0 28.0 -82.14%
go programming 15.0 19.0 -21.05% 15.0 50.0 -70.0%
crystal programming 5.0 9.0 -44.44% 5.0 25.0 -80.0%
d programming 9.0 14.0 -35.71% 9.0 22.0 -59.09%
c3 programming 9.0 5.0 +80.0% 9.0 40.0 -77.5%

hare programming 8.0 sat 11 points below odin programming 19.0 and 12 points below zig programming 20.0. hare language 18.0 sat 1 point below odin and 2 points below zig. Do not copy zig 20.0 onto hare programming 8.0. A prior calendar-day pull on the same Saturday tip printed odin programming at 17.0 versus 14.0. Today that neighbor reprinted to 19.0 versus 23.0. zig programming reprinted from 19.0 versus 14.0 to 20.0 versus 21.0. c3 programming reprinted from 10.0 versus 7.0 to 9.0 versus 5.0. Store the session pull. Same-tip reprints are not a new week. A Zig Trends API helper stores the systems-language neighbor on the same 7D window. A V Trends API helper stores vlang.

What did YouTube, News, and Wikipedia return?

YouTube for hare programming closed near Search on the 0-100 score. Keyword Google News for both Hare phrases printed zeros. Wikipedia titles resolve on their own. Compare Wikipedia on volume.

YouTube for hare programming tipped 7.0 on 2026-10-17, flat versus 7.0, while Search rose 100.0% to 8.0. The payload marked data_quality low. 14D, 30D, 3M, 12M, and YTD baselined at 0.0. Report 7.0 versus 0.0 for those. get_time_series closed at 7, matching get_growth. Adjacent weeks: 7 on 2026-10-10, then 0, 0, 0. Peak in this pull is 100 on 2024-03-09, with 98 on 2025-07-12 and 68 on 2022-05-07. Those three non-zero YouTube points sit years apart. On 2024-03-09 YouTube printed 100 while Search printed 0. On 2026-01-17 Search printed 100 while YouTube printed 0. YouTube 7.0 is not Search 8.0. Do not treat the YouTube floor as language adoption while Search sits at 8.0 after a 100 close nine months earlier.

YouTube for hare language closed at 30.0, up 42.86% from 21.0, 23 points above programming YouTube 7.0 and 12 points above language Search 18.0. 14D was 30.0 versus 80.0 (-62.5%). 12M was 30.0 versus 54.0 (-44.44%). YTD baselined at 0.0. Report 30.0 versus 0.0. Do not copy language YouTube 30.0 onto programming YouTube 7.0.

Keyword Google News for hare programming printed 0.0 versus 0.0 on every window, also data_quality low. Store the zeros. Keyword Google News for hare language printed 0.0 versus 0.0 on every window, also data_quality low. Do not fill News from Search 8.0. Keyword News and the Google News Top News board are different feeds. Mode docs sit at https://trendsapi.ai/docs.

Wikipedia for Hare (programming language) returned 404 no_data. Store the miss. Short title Hare resolved to a different page. September 2026 scored 52.0 with 28,606 pageviews versus August 67.7 with 34,877 (volume -17.98%). 3M was 52.0 / 28,606 versus June 62.3 / 32,698. 12M was 52.0 / 28,606 versus September 2025 48.8 / 27,320 (volume +4.71%). YTD was 52.0 / 28,606 versus January 57.4 / 30,758. 7D and 14D collapsed (collapsed_range: recent and baseline resolved to the same monthly point). Peak in this pull is 100.0 / 47,804 in July 2023. Compare Wikipedia on volume. Do not join 28,606 views onto Search 8.0. Do not treat short-title Hare as the language page. The language title 404 is the finding. Wikipedia source docs sit at https://trendsapi.ai/trends/wikipedia-trends.

There is no Hare package registry source on this API. npm covers npmjs. python covers PyPI. A Hare watchlist that wants package downloads has no third source to join onto Search 8.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. The rank snapshot can stamp at the same second as the mover snapshot, or two hours earlier.

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-21T10:01:42Z the live Google Trends board ranked love of your life at 20. The 1-day rank_change sort stamped the same second, returned 25 rows (baseline 2026-10-20T02:01:38Z), and omitted that token. The 7-day sort returned 0 rows (baseline 2026-10-14T02:01:40Z) with a held-or-fell note. Weekly Search for that exact string scored 50.0 versus 8.0, up 525.0%. The helper that stores those rows is the blog in this batch: Love of Your Life 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 hare, hare programming, hare language, and harelang as separate series.
  4. Compare Wikipedia Hare (programming language) as a 404, not as short-title Hare at 28,606 September views.
  5. Pair get_top_trends rank with both rank_change windows and get_growth on the exact board string.

A C3 client that uses libcurl plus cJSON for the same envelope is on C3 Trends API.