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.