An F# 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 F# library. FsHttp sends the request. System.Text.Json parses the envelope, then parses the body string a second time. Pulled on 2026-09-23, Google Search for f# programming scored 26.0 for the week of 2026-09-19, up 136.36% from 11.0. Bare f# scored 62.0, up 1.64% from 61.0. f sharp scored 93.0, up 20.78% from 77.0. fsharp scored 63.0, down 3.08% from 65.0. Do not copy 93.0 or 62.0 onto f# programming 26.0. Do not treat f# compiler Search 11.0, up 83.33% from 6.0, as language adoption. The same helper that stores those rows also pulls a live Google Trends board; a rank-5 token that weekly Search printed at 20.0 versus 12.0 is documented in measles live rank versus weekly Search.
How does an F# 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":"f# programming","percent_growth":["7D","30D","3M","12M"]}
open System
open System.Text.Json
open FsHttp
let trendsPost (payload: string) =
let raw =
http {
POST "https://api.trendsapi.ai/api"
header "Authorization" ("Bearer " + Environment.GetEnvironmentVariable "TRENDSAPI_API_KEY")
header "Content-Type" "application/json"
body
text payload
}
|> Request.send
|> Response.toText
use envelope = JsonDocument.Parse raw
// body is a JSON string; parse it a second time
let inner = envelope.RootElement.GetProperty("body").GetString()
JsonDocument.Parse inner
[<EntryPoint>]
let main _ =
let payload =
"""{"mode":"get_growth","source":"google search","keyword":"f# programming","percent_growth":["7D","30D","3M","12M"]}"""
use parsed = trendsPost payload
printfn "%s" (parsed.RootElement.ToString())
0
FsHttp and System.Text.Json.JsonDocument are the HTTP and JSON packages used here. Package docs live at:
https://github.com/fsprojects/FsHttp
https://learn.microsoft.com/dotnet/api/system.text.json.jsondocument
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 with HttpClient is on C# Trends API. A Python client is on Python Trends API.
What did get_growth return for F# language tokens?
get_growth for f# programming on google search tips on 2026-09-19. Store the exact strings. Bare f#, spelled-out f sharp, concatenated fsharp, and f# language are different series. The compiler token closed lower than the programming phrase.
| Keyword | Period | Recent date | Recent | Baseline date | Baseline | Growth |
|---|---|---|---|---|---|---|
| f# programming | 7D | 2026-09-19 | 26.0 | 2026-09-12 | 11.0 | +136.36% |
| f# programming | 14D | 2026-09-19 | 26.0 | 2026-09-05 | 0.0 | 999999 |
| f# programming | 30D | 2026-09-19 | 26.0 | 2026-08-22 | 0.0 | 999999 |
| f# programming | 3M | 2026-09-19 | 26.0 | 2026-06-20 | 68.0 | -61.76% |
| f# programming | 12M | 2026-09-19 | 26.0 | 2025-09-20 | 64.0 | -59.38% |
| f# programming | YTD | 2026-09-19 | 26.0 | 2026-01-03 | 0.0 | 999999 |
| f# language | 7D | 2026-09-19 | 23.0 | 2026-09-12 | 11.0 | +109.09% |
| f# language | 14D | 2026-09-19 | 23.0 | 2026-09-05 | 27.0 | -14.81% |
| f# language | 3M | 2026-09-19 | 23.0 | 2026-06-20 | 46.0 | -50.0% |
| f# language | YTD | 2026-09-19 | 23.0 | 2026-01-03 | 0.0 | 999999 |
| f# | 7D | 2026-09-19 | 62.0 | 2026-09-12 | 61.0 | +1.64% |
| f# | YTD | 2026-09-19 | 62.0 | 2026-01-03 | 50.0 | +24.0% |
| fsharp | 7D | 2026-09-19 | 63.0 | 2026-09-12 | 65.0 | -3.08% |
| fsharp | 14D | 2026-09-19 | 63.0 | 2026-09-05 | 92.0 | -31.52% |
| f sharp | 7D | 2026-09-19 | 93.0 | 2026-09-12 | 77.0 | +20.78% |
| f sharp | YTD | 2026-09-19 | 93.0 | 2026-01-03 | 45.0 | +106.67% |
| f# compiler | 7D | 2026-09-19 | 11.0 | 2026-09-12 | 6.0 | +83.33% |
| f# compiler | 3M | 2026-09-19 | 11.0 | 2026-06-20 | 51.0 | -78.43% |
get_time_series for f# programming on Google Search closed at 26 on 2026-09-19, matching get_growth 26.0. Adjacent weeks: 11 on 2026-09-12, then 0 on 2026-09-05, 2026-08-29, and 2026-08-22. Peak in this pull is 100 on 2023-05-13, with 99 on 2024-01-13 and 85 on 2026-05-16 and 2026-06-13. Tip 26 is not that May 2023 high. 14D, 30D, and YTD printed growth 999999 versus 0.0. Report 26.0 versus 0.0. A job that alerts on 7D +136.36% while 3M sits at -61.76% versus 68.0 is reading a bounce off a summer of zeros, not a new peak.
Bare f# closed at 62.0, up 1.64% from 61.0. 14D was 62.0 versus 64.0 (-3.12%). 3M was 62.0 versus 79.0 (-21.52%). 12M was 62.0 versus 64.0 (-3.12%). YTD was 62.0 versus 50.0 (+24.0%). Do not copy 62.0 onto f# programming 26.0.
fsharp closed at 63.0, down 3.08% from 65.0, the opposite 7D sign from f# programming. 14D was 63.0 versus 92.0 (-31.52%). 30D was 63.0 versus 57.0 (+10.53%). YTD was 63.0 versus 43.0 (+46.51%). Concatenated spelling and the programming phrase do not share a 7D sign.
f sharp closed at 93.0, up 20.78% from 77.0. 30D was 93.0 versus 53.0 (+75.47%). 3M was 93.0 versus 66.0 (+40.91%). 12M was 93.0 versus 63.0 (+47.62%). YTD was 93.0 versus 45.0 (+106.67%). That spelled-out string is a different series from the language phrase. Do not copy 93.0 onto f# programming 26.0.
f# language closed at 23.0, up 109.09% from 11.0. 14D was 23.0 versus 27.0 (-14.81%). 7D and 14D signs diverge. 30D was 23.0 versus 29.0 (-20.69%). 12M was 23.0 versus 30.0 (-23.33%). YTD printed growth 999999 versus 0.0. Report 23.0 versus 0.0.
f# compiler closed at 11.0, up 83.33% from 6.0. The payload marked data_quality low. 14D, 30D, 12M, and YTD printed growth 999999 versus 0.0. Report 11.0 versus 0.0. 3M was 11.0 versus 51.0 (-78.43%). Do not treat a compiler 7D +83.33% as language adoption. The programming phrase closed at 26.0.
fsharp programming returned 502 source_unavailable on three tries in this session. Store the miss. Do not fill that string from f# programming 26.0.
Neighbor languages on the same pull, same source, same 7D window:
| Keyword | 7D recent | 7D baseline | 7D growth | 3M recent | 3M baseline | 3M growth |
|---|---|---|---|---|---|---|
| f# programming | 26.0 | 11.0 | +136.36% | 26.0 | 68.0 | -61.76% |
| ocaml programming | 27.0 | 16.0 | +68.75% | 27.0 | 45.0 | -40.0% |
| haskell programming | 36.0 | 37.0 | -2.7% | 36.0 | 65.0 | -44.62% |
| elixir programming | 28.0 | 32.0 | -12.5% | 28.0 | 95.0 | -70.53% |
| clojure programming | 19.0 | 10.0 | +90.0% | 19.0 | 49.0 | -61.22% |
| rust programming | 16.0 | 18.0 | -11.11% | 16.0 | 42.0 | -61.9% |
| zig programming | 13.0 | 8.0 | +62.5% | 13.0 | 53.0 | -75.47% |
| python programming | 49.0 | 38.0 | +28.95% | 49.0 | 91.0 | -46.15% |
| java programming | 21.0 | 23.0 | -8.7% | 21.0 | 46.0 | -54.35% |
| scala programming | 23.0 | 25.0 | -8.0% | 23.0 | 32.0 | -28.12% |
| csharp programming | 21.0 | 8.0 | +162.5% | 21.0 | 0.0 | 999999 |
| csharp | 52.0 | 54.0 | -3.7% | 52.0 | 61.0 | -14.75% |
Do not copy ocaml programming 27.0 or haskell programming 36.0 onto f# programming 26.0. csharp scored 52.0 versus 54.0 (-3.7%) while csharp programming scored 21.0 versus 8.0 (+162.5%). 3M, 12M, and YTD for csharp programming printed growth 999999 versus 0.0. Report 21.0 versus 0.0. Do not copy 52.0 onto 21.0, and do not copy 21.0 onto f# programming 26.0. python programming YTD was 49.0 versus 21.0 (+133.33%). f# programming YTD was 26.0 versus 0.0. Same calendar, different YTD shape. clojure programming YTD printed growth 999999 versus 0.0. Report 19.0 versus 0.0. ocaml programming 12M was 27.0 versus 27.0 (0.0%). An OCaml Trends API helper stores that neighbor on the same 7D window.
What did YouTube, News, and Wikipedia return?
YouTube for f# programming printed a growth-versus-series mismatch. Keyword Google News printed zeros. Wikipedia titles resolve on their own. Compare Wikipedia on volume.
YouTube get_growth for f# programming tipped 5.0 on 2026-09-19 versus 0.0 on 7D through YTD. Growth printed 999999. Report 5.0 versus 0.0. The payload marked data_quality low with a warning that the underlying signal is over 90% zeros. get_time_series closed at 0 on 2026-09-19. Adjacent week: 0 on 2026-09-12. Growth 5.0 disagreed with series close 0. Store both. Non-zero weeks in this pull are 62 on 2022-04-02, 96 on 2023-06-17, and 100 on 2023-09-16. Tip 0 is not that 2023 spike. YouTube 5.0 is not Search 26.0. Do not treat a sparse YouTube print as language adoption while Search sits at 26.0 after a 100 close in May 2023.
Keyword Google News for f# programming tipped 0.0 versus 0.0 on 7D, 14D, 30D, 3M, 12M, and YTD. The payload marked data_quality low with a warning that the underlying signal is over 90% zeros. Store the zeros. Do not fill News from Search 26.0. Keyword News and the Google News Top News board are different feeds. Mode docs sit at https://trendsapi.ai/docs.
Wikipedia for F Sharp (programming language) resolved to F sharp (programming language). 7D and 14D collapsed (collapsed_range: recent and baseline resolved to the same monthly point). August 2026 scored 14.0 with 13 pageviews versus July 16.1 with 15 (score -13.04%, volume -13.33%). 3M was 14.0 / 13 versus May 4.3 / 4 (volume +225.0%). 12M was 14.0 / 13 versus August 2025 11.8 / 11 (volume +18.18%). YTD was 14.0 / 13 versus January 16.1 / 15 (volume -13.33%). Peak in this pull is 100.0 / 93 in May 2024, with 26.9 / 25 in April 2024 and 16.1 / 15 in January 2026. Keyword F# returned 404 no_data. Store the miss. Compare Wikipedia on volume. Do not join 13 views onto Search 26.0. Wikipedia source docs sit at https://trendsapi.ai/trends/wikipedia-trends.
There is no NuGet registry source on this API. npm covers npmjs. python covers PyPI. An F# watchlist that wants package downloads has no third source to join onto Search 26.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-09-23T10:01:38Z the live Google Trends board ranked measles at 5. The 1-day rank_change sort returned 4 rows (baseline 2026-09-22T10:01:34Z) and omitted it. The 7-day sort returned 5 rows (baseline 2026-09-16T02:01:36Z) and omitted it. Weekly Search for that exact string scored 20.0 versus 12.0, up 66.67%. measles outbreak scored 12.0, up 140.0% from 5.0. The helper that stores those rows is the blog in this batch: measles 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. Six language tokens plus one live board is 7 calls. A Monday run that also pulls YouTube and Wikipedia for the programming phrase is 9 calls. Four weeks is 36 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
f# programming,f# language,f#,fsharp,f sharp, andf# compileras separate series. - Compare Wikipedia
F sharp (programming language)on volume (13 August views), not on 14.0. - Pair
get_top_trendsrank with bothrank_changewindows andget_growthon the exact board string.
A Haskell client that uses http-conduit for the same envelope is on Haskell Trends API.