A C3 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 C3 library. std::net covers sockets. HTTP is C FFI: extern fn binds libcurl, then cJSON parses the envelope and the body string a second time. Pulled on 2026-10-20, Google Search for c3 programming scored 10.0 for the week of 2026-10-17, up 42.86% from 7.0. c3 language scored 7.0, up 16.67% from 6.0. Those two tokens closed 3 points apart. YouTube for c3 programming scored 31.0, up 63.16% from 19.0. Do not copy bare c3 Search 79.0 onto a language-adoption alert that only watches the phrase token at 10.0. The same helper that stores those rows also pulls a live Google Trends board. A rank-12 name that weekly Search printed at 4.0 versus 3.0 is documented in Barbara Palvin live rank versus weekly Search.
How does a C3 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":"c3 programming","percent_growth":["7D","30D","3M","12M"]}
module trends;
import std::io;
import libc;
def CURL = void*;
def CURLSLIST = void*;
def CJSON = void*;
extern fn CURL curl_easy_init();
extern fn CInt curl_easy_setopt(CURL curl, CInt option, ...) @cname("curl_easy_setopt");
extern fn CInt curl_easy_perform(CURL curl);
extern fn void curl_easy_cleanup(CURL curl);
extern fn CURLSLIST curl_slist_append(CURLSLIST list, char* str);
extern fn void curl_slist_free_all(CURLSLIST list);
extern fn CJSON cjson_parse(char* value) @cname("cJSON_Parse");
extern fn CJSON cjson_get(CJSON object, char* key) @cname("cJSON_GetObjectItemCaseSensitive");
extern fn char* cjson_string(CJSON item) @cname("cJSON_GetStringValue");
extern fn void cjson_delete(CJSON item) @cname("cJSON_Delete");
fn void main()
{
char* key = getenv("TRENDSAPI_API_KEY");
char* payload = "{\"mode\":\"get_growth\",\"source\":\"google search\",\"keyword\":\"c3 programming\",\"percent_growth\":[\"7D\",\"30D\",\"3M\",\"12M\"]}";
CURL curl = curl_easy_init();
char[256] auth;
snprintf(&auth, 256, "Authorization: Bearer %s", key);
CURLSLIST headers = curl_slist_append(null, &auth);
headers = curl_slist_append(headers, "Content-Type: application/json");
// CURLOPT_URL 10002, CURLOPT_HTTPHEADER 10023, CURLOPT_POSTFIELDS 10015
curl_easy_setopt(curl, 10002, "https://api.trendsapi.ai/api");
curl_easy_setopt(curl, 10023, headers);
curl_easy_setopt(curl, 10015, payload);
curl_easy_perform(curl);
io::printn("parse the envelope, then parse body a second time");
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_easy_setopt and cJSON_Parse are C symbols. Bind them with extern fn and @cname when the C name is not snake_case. Docs live at:
https://c3-lang.org/all/
https://curl.se/libcurl/c/curl_easy_setopt.html
https://github.com/DaveGamble/cJSON
Link curl from project.json:
"linked-libraries": ["curl", "cjson"]
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 C client that does the same double parse without the C3 wrapper is on C Trends API. An Odin client is on Odin Trends API.
What did get_growth return for C3 language tokens?
get_growth for c3 programming on google search tips on 2026-10-17. Store the exact strings. c3 language is a different series. The compact phrase and the language phrase moved on the same 7D sign and different percents. The first Search call for c3 language returned 502 source_unavailable. The retry succeeded. Store the miss and the retry.
| Keyword | Period | Recent date | Recent | Baseline date | Baseline | Growth |
|---|---|---|---|---|---|---|
| c3 programming | 7D | 2026-10-17 | 10.0 | 2026-10-10 | 7.0 | +42.86% |
| c3 programming | 14D | 2026-10-17 | 10.0 | 2026-10-03 | 25.0 | -60.0% |
| c3 programming | 30D | 2026-10-17 | 10.0 | 2026-09-19 | 39.0 | -74.36% |
| c3 programming | 3M | 2026-10-17 | 10.0 | 2026-07-18 | 34.0 | -70.59% |
| c3 programming | 12M | 2026-10-17 | 10.0 | 2025-10-18 | 41.0 | -75.61% |
| c3 programming | YTD | 2026-10-17 | 10.0 | 2026-01-03 | 25.0 | -60.0% |
| c3 language | 7D | 2026-10-17 | 7.0 | 2026-10-10 | 6.0 | +16.67% |
| c3 language | 14D | 2026-10-17 | 7.0 | 2026-10-03 | 33.0 | -78.79% |
| c3 language | 30D | 2026-10-17 | 7.0 | 2026-09-19 | 38.0 | -81.58% |
| c3 language | 3M | 2026-10-17 | 7.0 | 2026-07-18 | 41.0 | -82.93% |
| c3 language | 12M | 2026-10-17 | 7.0 | 2025-10-18 | 41.0 | -82.93% |
| c3 language | YTD | 2026-10-17 | 7.0 | 2026-01-03 | 37.0 | -81.08% |
| c3lang | 7D | 2026-10-17 | 100.0 | 2026-10-10 | 50.0 | +100.0% |
| c3 compiler | 7D | 2026-10-17 | 4.0 | 2026-10-10 | 2.0 | +100.0% |
| c3 | 7D | 2026-10-17 | 79.0 | 2026-10-10 | 74.0 | +6.76% |
| c3 | 12M | 2026-10-17 | 79.0 | 2025-10-18 | 85.0 | -7.06% |
| c3 | YTD | 2026-10-17 | 79.0 | 2026-01-03 | 69.0 | +14.49% |
get_time_series for c3 programming on Google Search closed at 10 on 2026-10-17, matching get_growth 10.0. Adjacent weeks: 7 on 2026-10-10, 25 on 2026-10-03, 28 on 2026-09-26, 39 on 2026-09-19. Peak in this pull is 100 on 2026-06-06, with 69 on 2026-05-23, 67 on 2026-06-13, and 67 on 2026-07-04. Tip 10 is not that June high. 12M versus 41.0 is the week of 2025-10-18, the same Saturday a year earlier. 7D printed +42.86% versus 7.0, the opposite sign from 14D -60.0% and 3M -70.59%. A job that alerts on 7D +42.86% while 3M sits at -70.59% versus 34.0 is reading a one-week bounce off 7.0, not a new peak.
c3 language closed at 7.0, up 16.67% from 6.0. Same 7D sign as c3 programming, 3 points below, phrase sat higher. 14D was 7.0 versus 33.0 (-78.79%). 3M was 7.0 versus 41.0 (-82.93%). Do not copy 10.0 onto c3 language 7.0.
c3lang closed at 100.0, up 100.0% from 50.0. The payload marked data_quality low with a warning that the underlying signal is over 90% zeros. 14D, 30D, 3M, 12M, and YTD baselined at 0.0 and printed growth 999999. Report 100.0 versus 0.0. That concatenated string is not package-download volume.
c3 compiler closed at 4.0, up 100.0% from 2.0, also data_quality low. Later windows baselined at 0.0. Report 4.0 versus 0.0. Do not copy compiler 4.0 onto programming 10.0.
Bare c3 closed at 79.0, up 6.76% from 74.0. 12M was 79.0 versus 85.0 (-7.06%). YTD was 79.0 versus 69.0 (+14.49%). That two-character string mixes the carbon allotrope, other products, and the language. Do not treat Search 79.0 as C3 language adoption. There is no C3 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 |
|---|---|---|---|---|---|---|
| c3 programming | 10.0 | 7.0 | +42.86% | 10.0 | 41.0 | -75.61% |
| c3 language | 7.0 | 6.0 | +16.67% | 7.0 | 41.0 | -82.93% |
| odin programming | 17.0 | 14.0 | +21.43% | 17.0 | 26.0 | -34.62% |
| zig programming | 19.0 | 14.0 | +35.71% | 19.0 | 28.0 | -32.14% |
| rust programming | 23.0 | 28.0 | -17.86% | 23.0 | 32.0 | -28.12% |
| nim programming | 14.0 | 10.0 | +40.0% | 14.0 | 43.0 | -67.44% |
| vlang | 15.0 | 14.0 | +7.14% | 15.0 | 79.0 | -81.01% |
| v programming | 5.0 | 7.0 | -28.57% | 5.0 | 28.0 | -82.14% |
| go programming | 16.0 | 19.0 | -15.79% | 16.0 | 50.0 | -68.0% |
| crystal programming | 5.0 | 8.0 | -37.5% | 5.0 | 25.0 | -80.0% |
| d programming | 8.0 | 12.0 | -33.33% | 8.0 | 22.0 | -63.64% |
c3 programming 10.0 sat 7 points below odin programming 17.0 and 9 points below zig programming 19.0. Do not copy zig 19.0 onto c3 10.0. A prior calendar-day pull on the same Saturday tip printed odin programming at 19.0 versus 18.0. Today that neighbor reprinted to 17.0 versus 14.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 c3 programming closed higher than Search on the 0-100 score. Keyword Google News for c3 programming printed zeros. Wikipedia titles resolve on their own. Compare Wikipedia on volume.
YouTube for c3 programming tipped 31.0 on 2026-10-17, up 63.16% from 19.0, while Search rose 42.86% to 10.0. The payload marked data_quality low. 14D, 30D, 3M, 12M, and YTD baselined at 0.0. Report 31.0 versus 0.0 for those. get_time_series closed at 31, matching get_growth. Adjacent weeks: 19 on 2026-10-10, then 0, 0, 0. Peak in this pull is 100 on 2024-08-03. That is the only non-zero YouTube point before the last two weeks. On 2024-08-03 Search printed 89 while YouTube printed 100. On 2026-06-06 Search printed 100 while YouTube printed 0. YouTube 31.0 is not Search 10.0. Do not treat the YouTube floor as language adoption while Search sits at 10.0 after a 100 close four months earlier.
Keyword Google News for c3 programming printed 0.0 versus 0.0 on every window, also data_quality low. Store the zeros. Keyword Google News for c3 language printed 3.0 versus 0.0 on every window, growth 999999, also data_quality low. Report 3.0 versus 0.0. Do not fill News from Search 10.0. Keyword News and the Google News Top News board are different feeds. Mode docs sit at https://trendsapi.ai/docs.
Wikipedia for C3 (programming language) returned 404 no_data. Store the miss. Short title C3 resolved to a different page. September 2026 scored 14.2 with 703 pageviews versus August 14.1 with 700 (volume +0.43%). 3M was 14.2 / 703 versus June 17.2 / 810. 12M was 14.2 / 703 versus September 2025 33.1 / 1,379 (volume -49.02%). YTD was 14.2 / 703 versus January 20.0 / 909. 7D and 14D collapsed (collapsed_range: recent and baseline resolved to the same monthly point). Peak in this pull is 100.0 / 3,770 in August 2025. Compare Wikipedia on volume. Do not join 703 views onto Search 10.0. Do not treat short-title C3 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 C3 package registry source on this API. npm covers npmjs. python covers PyPI. A C3 watchlist that wants package downloads has no third source to join onto Search 10.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-20T10:01:42Z the live Google Trends board ranked barbara palvin at 12. The 1-day rank_change sort stamped the same second, returned 21 rows (baseline 2026-10-19T02:01:34Z), and listed that token at +91 from previous rank 103, the largest 1d climb. The 7-day sort returned 0 rows (baseline 2026-10-13T02:01:46Z) with a held-or-fell note. Weekly Search for that exact string scored 4.0 versus 3.0, up 33.33%. The helper that stores those rows is the blog in this batch: Barbara Palvin 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
c3,c3 programming,c3 language, andc3langas separate series. - Compare Wikipedia
C3 (programming language)as a 404, not as short-titleC3at 703 September views. - 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.