"Google Trends API" in a README is usually a scrape. The unofficial class is large: pytrends, trendspy, SerpApi, DataForSEO explore, Apify Actors, ScrapingBee URL fetches, Bright Data brd_json. They share one upstream, the public site. The official class is one product, announced 24 July 2025, still behind an application. A hosted multi-source POST is a third class. Shape: the API reference. Caps: pricing.

The unofficial class

Every member inherits Explore semantics: 0-100 inside the chosen range, gprop or equivalent for YouTube and Shopping, related queries when the vendor parsed that widget, 429s when Google dislikes the session. Paying SerpApi or Bright Data moves the 429 off the laptop. It does not change the scale. It does not make the vendor Google.

What Google published in July 2025

Consistently scaled interest. Rolling 1800 days. Daily, weekly, monthly, yearly. Region and sub-region. Compare more terms than the website. Pull the latest period without rewriting history. That list is also a list of things unofficial clients cannot honestly promise.

Scale mismatch

A notebook that binds value from pytrends to value from an official pull will lie. One is an index inside a window. One is a consistent scale Google defined for the alpha. Label the column with the producer. Do not "normalize" official values back to 0-100 unless that transform is written down.

Access mismatch

pip install and a SERP key are minutes. The official form is a queue with no published SLA. A deadline that needs data this week is still unofficial or another vendor. A research project that can wait, and that needs joinable history, should apply. Running both during the wait is rational. Calling the scrape "official-grade" is not.