A Groovy 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 Groovy plugin. java.net.http.HttpClient sends the request. JsonSlurper parses the envelope, then parses the body string a second time. Pulled on 2026-10-09, Google Search for groovy scored 23.0 for the week of 2026-10-03, down 20.69% from 29.0. groovy programming scored 12.0, up 140.0% from 5.0. apache groovy scored 23.0, down 67.14% from 70.0. Do not copy 12.0 onto 23.0. Do not treat a shared close of 23.0 as a shared 7D. The same helper that stores those rows also pulls a live Google Trends board; a rank-1 token that weekly Search printed at 0.0 versus 0.0 is documented in Hurricane Isaias live rank versus weekly Search.

How does a Groovy 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":"groovy","percent_growth":["7D","30D","3M","12M"]}
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse

def apiKey = System.getenv('TRENDSAPI_API_KEY')
def payload = JsonOutput.toJson([
    mode: 'get_growth',
    source: 'google search',
    keyword: 'groovy',
    percent_growth: ['7D', '30D', '3M', '12M']
])
def client = HttpClient.newHttpClient()
def request = HttpRequest.newBuilder(URI.create('https://api.trendsapi.ai/api'))
    .header('Authorization', "Bearer ${apiKey}")
    .header('Content-Type', 'application/json')
    .POST(HttpRequest.BodyPublishers.ofString(payload))
    .build()
def envelope = new JsonSlurper().parseText(
    client.send(request, HttpResponse.BodyHandlers.ofString()).body()
)
// body is a JSON string; parse it a second time
def inner = new JsonSlurper().parseText(envelope.body as String)
println inner.results

The first mistake most clients make is treating the body field as an object after one parse. It is still a JSON string. Parse the envelope, then parse body a second time. Library docs:

https://docs.groovy-lang.org/latest/html/gapi/groovy/json/JsonSlurper.html
https://docs.oracle.com/en/java/javase/21/docs/api/java.net.http/java/net/http/HttpClient.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 Groovy-specific source on this API. npm covers npmjs package names. python covers PyPI project names. A watchlist that needs Maven Central download counts has to pull those from somewhere else. A Java sibling of this helper is on Java Trends API. A Kotlin sibling is on Kotlin Trends API.

What did get_growth return for Groovy language tokens?

get_growth for groovy on google search tips on 2026-10-03. Store the exact strings. The short token, the programming phrase, the Apache product name, the Gradle token, and the Jenkins token are different series.

Keyword Period Recent date Recent Baseline date Baseline Growth
groovy 7D 2026-10-03 23.0 2026-09-26 29.0 -20.69%
groovy 14D 2026-10-03 23.0 2026-09-19 26.0 -11.54%
groovy 30D 2026-10-03 23.0 2026-09-05 26.0 -11.54%
groovy 3M 2026-10-03 23.0 2026-07-04 30.0 -23.33%
groovy 12M 2026-10-03 23.0 2025-10-04 24.0 -4.17%
groovy YTD 2026-10-03 23.0 2026-01-03 22.0 +4.55%
groovy programming 7D 2026-10-03 12.0 2026-09-26 5.0 +140.0%
groovy programming 14D 2026-10-03 12.0 2026-09-19 0.0 12.0 vs 0.0
groovy programming 30D 2026-10-03 12.0 2026-09-05 0.0 12.0 vs 0.0
groovy programming 3M 2026-10-03 12.0 2026-07-04 27.0 -55.56%
groovy programming 12M 2026-10-03 12.0 2025-10-04 0.0 12.0 vs 0.0
groovy programming YTD 2026-10-03 12.0 2026-01-03 0.0 12.0 vs 0.0
apache groovy 7D 2026-10-03 23.0 2026-09-26 70.0 -67.14%
apache groovy 14D 2026-10-03 23.0 2026-09-19 62.0 -62.9%
apache groovy 30D 2026-10-03 23.0 2026-09-05 33.0 -30.3%
apache groovy 3M 2026-10-03 23.0 2026-07-04 49.0 -53.06%
apache groovy 12M 2026-10-03 23.0 2025-10-04 0.0 23.0 vs 0.0
apache groovy YTD 2026-10-03 23.0 2026-01-03 0.0 23.0 vs 0.0
gradle 7D 2026-10-03 11.0 2026-09-26 23.0 -52.17%
gradle 12M 2026-10-03 11.0 2025-10-04 30.0 -63.33%
gradle YTD 2026-10-03 11.0 2026-01-03 15.0 -26.67%
maven 7D 2026-10-03 16.0 2026-09-26 24.0 -33.33%
maven 12M 2026-10-03 16.0 2025-10-04 29.0 -44.83%
maven YTD 2026-10-03 16.0 2026-01-03 18.0 -11.11%
jenkins 7D 2026-10-03 47.0 2026-09-26 68.0 -30.88%
jenkins 12M 2026-10-03 47.0 2025-10-04 59.0 -20.34%
jenkins YTD 2026-10-03 47.0 2026-01-03 44.0 +6.82%
grails 7D 2026-10-03 49.0 2026-09-26 100.0 -51.0%
grails 12M 2026-10-03 49.0 2025-10-04 41.0 +19.51%
grails YTD 2026-10-03 49.0 2026-01-03 36.0 +36.11%

get_time_series for groovy on Google Search closed at 23 on 2026-10-03, matching get_growth 23.0. Adjacent weeks: 29 on 2026-09-26, 26 on 2026-09-19, 27 on 2026-09-12, 26 on 2026-09-05. Peak in this pull is 100 on 2026-02-21, with 82 on 2026-02-14, 57 on 2026-02-28, and 41 on 2026-04-18. Tip 23 is not a new series high. It is not 100. 12M printed -4.17% versus 24.0. YTD printed +4.55% versus 22.0. 7D printed -20.69% versus 29.0. A job that alerts "Groovy is down" off a one-week -20.69% while YTD is still +4.55% is reading a tip, not a year.

groovy programming closed at 12, matching growth 12.0, up 140.0% from 5.0. Adjacent weeks: 5 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-02-21, with 61 on 2026-02-14, 51 on 2026-02-07, and 54 on 2024-11-30. 14D, 30D, 12M, and YTD printed growth 999999 versus 0.0. Report 12.0 versus 0.0. 7D signs diverge: short token -20.69% versus programming phrase +140.0%. 3M signs agree: short token -23.33% versus programming -55.56%. Do not copy 12.0 onto groovy 23.0. Do not alert language adoption off a programming-phrase 7D spike while the short token sits at 23.

apache groovy closed at 23.0, matching the short token close, down 67.14% from 70.0. Adjacent weeks: 70 on 2026-09-26, 62 on 2026-09-19, 100 on 2026-09-12, 33 on 2026-09-05. Peak in this pull is 100 on 2026-09-12, with 95 on 2026-06-06, 93 on 2026-06-27, and 86 on 2026-06-20. Same recent 23.0, different 7D: -67.14% versus -20.69%, because the baselines are 70.0 and 29.0. 12M printed 23.0 versus 0.0. Do not join those two 23.0 closes into one series.

gradle closed at 11.0, down 52.17% from 23.0. 3M was 11.0 versus 46.0 (-76.09%). 12M was 11.0 versus 30.0 (-63.33%). maven closed at 16.0, down 33.33% from 24.0. 3M was 16.0 versus 89.0 (-82.02%). 12M was 16.0 versus 29.0 (-44.83%). There is no Maven Central source and no Gradle plugin source. jenkins closed at 47.0, down 30.88% from 68.0. 12M was 47.0 versus 59.0 (-20.34%). YTD was 47.0 versus 44.0 (+6.82%). grails closed at 49.0, down 51.0% from 100.0. 12M was 49.0 versus 41.0 (+19.51%). YTD was 49.0 versus 36.0 (+36.11%). A job that alerts "Groovy is down" off Grails 7D is reading the web-framework series. Do not copy 49.0 onto groovy 23.0.

Neighbors this session: java programming Search 18.0, down 33.33% from 27.0, 12M 18.0 versus 33.0 (-45.45%), YTD 18.0 versus 22.0 (-18.18%). kotlin Search 26.0, down 39.53% from 43.0, 12M 26.0 versus 60.0 (-56.67%), YTD 26.0 versus 31.0 (-16.13%). scala Search 59.0, down 14.49% from 69.0, 12M 59.0 versus 64.0 (-7.81%), YTD 59.0 versus 58.0 (+1.72%). scala is also a place-name series. A Scala client that does the same double parse is on Scala Trends API. A MATLAB webwrite sibling is on MATLAB Trends API.

How do YouTube, News, and Wikipedia disagree with Search?

YouTube get_growth for groovy closed at 60.0 versus 54.0 (+11.11%). get_time_series closed at 60, matching growth. Adjacent weeks: 54 on 2026-09-26, 55 on 2026-09-19, 58 on 2026-09-12, 57 on 2026-09-05. Peak in this pull is 100 on 2022-08-27, with 75 on 2022-08-20, 71 on 2026-03-07, and 69 on 2025-11-08. Tip 60 is not a new YouTube series high. Search at 23 is also not a new Search high. 12M YouTube was 60.0 versus 65.0 (-7.69%). YTD YouTube was 60.0 versus 49.0 (+22.45%). 7D signs diverge: YouTube +11.11% versus Search -20.69%. Do not fill YouTube from Search 23.0.

Google News get_growth closed at 17.0 versus 0.0. get_time_series closed at 17 on 2026-10-03, matching growth. Adjacent weeks: 0 on 2026-09-26, 0 on 2026-09-19, 0 on 2026-09-12, 82 on 2026-09-05. Peak in this pull is 100 on 2024-07-13 and 100 on 2026-08-22, with 85 on 2022-12-10, 82 on 2026-09-05, and 74 on 2022-04-16. Tip 17 is not a new News high. data_quality was low. 7D, 14D, 3M, 12M, and YTD printed growth 999999 versus 0.0. Report 17.0 versus 0.0. 30D was 17.0 versus 82.0 (-79.27%). Keyword News and the Google News Top News board are different feeds. Source docs for Search sit at Google Trends.

Wikipedia get_growth for groovy resolved to Groovy. 7D and 14D returned collapsed_range. September 2026 scored 0.0 with 978 pageviews versus August 2.0 with 1,085 pageviews (score -100.0%, volume -9.86%). 3M was 0.0 / 978 versus June 3.0 / 1,144, volume -14.51%. 12M was 0.0 / 978 versus September 2025 9.0 / 1,471, volume -33.51%. YTD volume was 978 versus 1,718 (-43.07%). Nine hundred seventy-eight September views is not a high-traffic language article. Apache Groovy on source wikipedia returned 404 no_data. Wikipedia 12M volume falling 33.51% while Search 12M is -4.17%. Compare Wikipedia on volume. Do not join 978 pageviews onto Search 23.0. Source docs for Wikipedia sit at Wikipedia Trends.

How does a Groovy job pull a live board?

POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json

{"mode":"get_top_trends","type":"Google Trends","limit":25}
def boardPayload = JsonOutput.toJson([
    mode: 'get_top_trends',
    type: 'Google Trends',
    limit: 25
])
def boardRequest = HttpRequest.newBuilder(URI.create('https://api.trendsapi.ai/api'))
    .header('Authorization', "Bearer ${apiKey}")
    .header('Content-Type', 'application/json')
    .POST(HttpRequest.BodyPublishers.ofString(boardPayload))
    .build()
def boardEnvelope = new JsonSlurper().parseText(
    client.send(boardRequest, HttpResponse.BodyHandlers.ofString()).body()
)
def boardInner = new JsonSlurper().parseText(boardEnvelope.body as String)
println boardInner.data

get_top_trends takes a feed type, not a keyword. Pair the live snapshot with sort=rank_change on 1d and 7d. On 2026-10-09T10:01:37Z the live Google Trends board ranked hurricane isaias at 1. Weekly Search for that string closed at 0.0 versus 0.0. A helper that only stores 7D Search for groovy at 23.0 misses that board. Mode docs live at Docs.

What belongs in a Groovy watchlist?

Store groovy, groovy programming, apache groovy, gradle, and jenkins as separate Search series. Add YouTube groovy because 7D already disagrees in sign with Search (+11.11% versus -20.69%). Add Wikipedia volume for the resolved Groovy title, not the 0-100 score. Skip a Maven Central column: that source does not exist. Do not store grails 49.0 as Groovy language adoption. Do not store scala 59.0 as language adoption without a second, language-specific string. Six Search keywords plus one live Google Trends board is 7 calls. Four weekly runs fit the free 100-request cap. Starter is 5,000, Pro 25,000, Business 100,000. Only successful 200 responses count.