A Clojure 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 Clojure library. clj-http sends the request. Cheshire parses the envelope, then parses the body string a second time. Pulled on 2026-09-20, Google Search for clojure programming scored 19.0 for the week of 2026-09-19, up 18.75% from 16.0. clojure language scored 20.0, up 11.11% from 18.0. YouTube for clojure programming scored 9.0, up 50.0% from 6.0. Do not treat babashka Search 20.0, up 42.86% from 14.0, as language adoption. The same helper that stores those rows also pulls a live Google Trends board; a rank-11 token that weekly Search printed at 25.0 is documented in amazon settlement live rank versus weekly Search.

How does a Clojure 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":"clojure programming","percent_growth":["7D","30D","3M","12M"]}
(ns trends.client
  (:require [clj-http.client :as http]
            [cheshire.core :as json]))

(defn trends-post [payload]
  (let [api-key (System/getenv "TRENDSAPI_API_KEY")
        resp (http/post "https://api.trendsapi.ai/api"
               {:headers {"Authorization" (str "Bearer " api-key)
                          "Content-Type" "application/json"}
                :body (json/generate-string payload)
                :as :json
                :throw-exceptions false})
        code (:status resp)]
    (when-not (= 200 code)
      (throw (ex-info (str "HTTP " code) {:status code})))
    (let [envelope (:body resp)
          inner (:body envelope)]
      ;; body is a JSON string; parse it a second time
      (json/parse-string inner true))))

(defn -main [& _]
  (println
   (trends-post
    {:mode "get_growth"
     :source "google search"
     :keyword "clojure programming"
     :percent_growth ["7D" "30D" "3M" "12M"]})))

The first mistake most clients make is treating the body field as an object after one parse. It is still a JSON string. clj-http with :as :json yields the envelope map. The second Cheshire parse yields results. Library docs:

https://github.com/dakrone/clj-http
https://github.com/dakrone/cheshire

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 Clojure-specific source on this API. npm covers npmjs package names. python covers PyPI project names. There is no Clojars source. A Clojure watchlist that needs package download counts has to pull those from somewhere else.

What did get_growth return for Clojure language tokens?

Pulled on 2026-09-20 with source set to google search. get_growth tips on 2026-09-19. The prior Saturday 2026-09-12 is the last full week in the same series. Store the phrase tokens next to the toolchain tokens. Do not copy babashka 20.0 or leiningen 3.0 onto clojure programming 19.0.

Keyword Period Recent Baseline date Baseline Growth
clojure programming 7D 19.0 2026-09-12 16.0 +18.75%
clojure programming 14D 19.0 2026-09-05 38.0 -50.0%
clojure programming 30D 19.0 2026-08-22 0.0 vs 0.0
clojure programming 3M 19.0 2026-06-20 51.0 -62.75%
clojure programming 12M 19.0 2025-09-20 0.0 vs 0.0
clojure programming YTD 19.0 2026-01-03 0.0 vs 0.0
clojure language 7D 20.0 2026-09-12 18.0 +11.11%
clojure language 14D 20.0 2026-09-05 43.0 -53.49%
clojure language 3M 20.0 2026-06-20 35.0 -42.86%
clojure language YTD 20.0 2026-01-03 34.0 -41.18%
clojure 7D 25.0 2026-09-12 23.0 +8.7%
clojurescript 7D 10.0 2026-09-12 10.0 0.0%
leiningen 7D 3.0 2026-09-12 2.0 +50.0%
babashka 7D 20.0 2026-09-12 14.0 +42.86%
clojure cli 7D 5.0 2026-09-12 6.0 -16.67%
nrepl 7D 7.0 2026-09-12 5.0 +40.0%
lisp programming 7D 39.0 2026-09-12 36.0 +8.33%
racket programming 7D 20.0 2026-09-12 19.0 +5.26%
scala programming 7D 22.0 2026-09-12 22.0 0.0%
elixir programming 7D 29.0 2026-09-12 27.0 +7.41%
haskell programming 7D 34.0 2026-09-12 30.0 +13.33%
rust programming 7D 16.0 2026-09-12 14.0 +14.29%
java programming 7D 21.0 2026-09-12 21.0 0.0%
python programming 7D 27.0 2026-09-12 20.0 +35.0%

clojure programming and YouTube for the same string closed in the same 7D direction, not the same magnitude. Search rose 18.75% from 16.0 to 19.0. YouTube rose 50.0% from 6.0 to 9.0. clojure language rose 11.11% to 20.0. Bare clojure scored 25.0, up 8.7% from 23.0. That shallower 7D move sits next to a 3M drop of 60.32% from 63.0. Do not copy 25.0 onto the programming phrase. clojurescript scored 10.0, flat versus 10.0, with 3M -79.59% versus 49.0. babashka scored 20.0, up 42.86% from 14.0. leiningen scored 3.0, up 50.0% from 2.0. clojure cli scored 5.0, down 16.67% from 6.0, with data_quality low. nrepl scored 7.0, up 40.0% from 5.0, also low. Do not treat a scripting-runtime 7D bounce or a REPL-tool 7D bounce as language adoption.

3M is a summer drop on the phrase tokens. clojure programming is 19.0 versus 51.0 on 2026-06-20 (-62.75%). clojure language is 20.0 versus 35.0 (-42.86%). racket programming 3M is 20.0 versus 63.0 (-68.25%). elixir programming 3M is 29.0 versus 91.0 (-68.13%). haskell programming 3M is 34.0 versus 62.0 (-45.16%). rust programming 3M is 16.0 versus 41.0 (-60.98%). python programming 3M is 27.0 versus 50.0 (-46.0%). clojure programming 30D, 12M, and YTD printed growth 999999 versus 0.0. Report 19.0 versus 0.0. Do not store 999999.

YTD signs split. clojure language is 20.0 versus 34.0 (-41.18%). Bare clojure is 25.0 versus 26.0 (-3.85%). clojurescript YTD is 10.0 versus 30.0 (-66.67%). lisp programming YTD is 39.0 versus 49.0 (-20.41%). python programming YTD is 27.0 versus 12.0 (+125.0%). haskell programming YTD is 34.0 versus 28.0 (+21.43%). java programming YTD is 21.0, flat versus 21.0. Do not copy python programming YTD +125.0% onto clojure programming.

get_time_series for clojure programming on Google Search closed at 19 on 2026-09-19, matching get_growth 19.0. Adjacent weeks: 16 on 2026-09-12, 38 on 2026-09-05, then 0 on 2026-08-29, 2026-08-22, 2026-08-15, and 2026-08-08. The series hit 100 on 2026-05-09, with 71 on 2026-04-04 and 74 on 2026-06-06. Tip 19 is the week after a 16 print, not that May high. The 2025-09-20 close was 0, which is why 12M printed versus 0.0.

The Haskell sibling of this helper is Haskell Trends API. The Python sibling is Python Trends API.

What did YouTube, News, and Wikipedia return?

YouTube for clojure programming tipped 9.0 on 2026-09-19, up 50.0% from 6.0 on 2026-09-12. 14D, 30D, 3M, 12M, and YTD printed growth 999999 versus 0.0. Report 9.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 9 on 2026-09-19, matching get_growth. Adjacent weeks: 6 on 2026-09-12, then 0 on 2026-09-05 and the August weeks in this pull. Peak in this pull is 100 on 2023-05-13, with 84 on 2025-05-17. Tip 9 is not that May peak. Do not copy YouTube 9.0 onto Search 19.0.

Keyword Google News for clojure programming returned HTTP 502 source_unavailable on two pulls during this session. Store the miss. Do not fill News from Search 19.0. Keyword News and the Google News Top News board are different feeds.

Wikipedia keyword Clojure resolved with August score 22.7 and 5,589 views versus July 17.4 / 5,083 (score +30.46%, volume +9.95%). 7D and 14D collapsed to the same monthly point. 3M volume was 5,589 versus 6,927 on 2026-05-01 (score 22.7 versus 36.8, volume -19.32%). 12M volume was 5,589 versus 5,994 on 2025-08-01 (score 22.7 versus 27.0, volume -6.76%). YTD volume was 5,589 versus 6,892 on 2026-01-01 (score 22.7 versus 36.4, volume -18.91%). get_time_series also printed April 53.8 / 8,548 views, November 2025 83.5 / 11,378, and a 2022-06-01 peak of 100.0 / 12,954. Report both score and volume. Tip 5,589 is not that 2022 peak. Compare Wikipedia on volume. Do not join pageviews onto Search 19.0. Notes for the Wikipedia source sit on Wikipedia Trends.

There is no Clojars source. npm and PyPI package names are not Clojure library names. A job that needs Clojars download counts has to pull those from somewhere else.

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-09-20T10:01:37Z ranked how do i register to vote 1, lizzie borden 2, and amazon settlement 11. The 1-day rank_change sort (151 rows, baseline 2026-09-19T02:01:45Z) listed amazon settlement with rank_change 18 from prev_rank 29. The 7-day sort returned 6 rows and omitted it. Weekly Search for amazon settlement was 25.0, up 733.33% from 3.0. get_time_series closed at 24 on 2026-09-19. Store both. Live rank can catch a token that weekly Search already moved and that the 7-day mover list still misses. The walk-through is amazon settlement live rank versus weekly Search.

A Clojure watchlist that stores six Search tokens (clojure programming, clojure language, clojurescript, babashka, lisp programming, scala programming) 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.

The Elixir sibling of this helper is Elixir Trends API. The Scala sibling is Scala Trends API.

Envelope checklist

  1. POST https://api.trendsapi.ai/api with Authorization: Bearer <api_key>.
  2. Modes are get_time_series, get_growth, and get_top_trends only.
  3. Parse body twice before reading results or dated points.
  4. Google Search uses the exact token typed. clojure, clojure programming, clojure language, babashka, and clojurescript are five series. Wikipedia titles are resolved names; confirm the title and compare on volume before joining. There is no Clojars source.
  5. Quota counts successful 200 responses: free 100/month, then 5,000 / 25,000 / 100,000 on paid tiers.

No Clojure library is required. A 40-line clj-http helper covers growth, series, and board pulls for jobs that already run under systemd or a cron timer.