gtrendsR is the R interface to Google Trends. CRAN in this session listed 1.5.2, published 22 Aug 2025. Reverse imports on that page include globaltrends and trendyy. gtrends(keyword = "NHL", geo = "CA") returns interest-over-time and geographic tables as R objects. ggplot2 helpers plot them. That is a local scrape client in R's idiom. It is not a hosted API. Trends API is the HTTP exit. The POST is on the API reference.

gtrends() is the whole product

The package description is retrieval and display of what Google Trends returns online. Hits over time. Maps. Related tables when Google sends them. NEWS entries over several 1.4.x releases are Google-side breakages. That changelog is the stop: the maintainer chases Google, the caller waits for CRAN.

Hosted notebooks can lag CRAN. Microsoft's Power BI service R-package list still showed 1.5.1 in the public docs checked for this page, while CRAN is 1.5.2. Pin the CRAN tarball, not a service matrix, if the job must match a local session.

Python's closest cousins are trendspy and archived pytrends. Same wire, different language. Replacing library(gtrendsR) with pip install trendspy does not change the 429.

R-shaped output

An R list with interest_over_time is convenient in a quarto doc. It is awkward in a polyglot warehouse. Trends API returns one envelope. statusCode plus a JSON body string. jsonlite::fromJSON parses it. The series uses date and value (0-100).

# Conceptual: httr2 POST, then jsonlite on the body string
# mode = get_time_series, source = google search, keyword = NHL

Do not send gtrendsR's time argument as Trends API percent_growth. Windows such as 12M and YTD are Trends API presets. They are documented on the growth reference, not in the gtrendsR manual.

Same unofficial wire as pytrends

gtrendsR's GitHub issues still report empty frames and status errors when Google changes a widget. That is expected for a CRAN wrapper of an unofficial page. It is not an SLA.

{
  "mode": "get_time_series",
  "source": "google search",
  "keyword": "NHL"
}

Same body from R or from Node. The Node-side unofficial client is google-trends-api. The shopping list across languages is modern pytrends replacements.

Keep gtrendsR when the analysis stays in R and Google-only is acceptable. Leave when the same numbers must come from a service account shared with Python.