GeneralMills/pytrends is a public archive. GitHub marked it archived by the owner on April 17, 2025 and set the tree read-only. Stars do not change that. PyPI still installs version 4.9.2 and the README still asks for maintainers. An archived scrape client is not a Google Trends API. Trends API is POST https://api.trendsapi.ai/api with a Bearer key. body is a JSON string and must be parsed a second time. Request shape: the API reference. Plan text: pricing.
What GitHub archive means on April 17, 2025
Archive is a repository setting. Issues stay visible. Pull requests do not merge. New maintainers cannot push to that remote without the owner un-archiving it. Forks are a different project with a different name. Pinning pytrends==4.9.2 after that date is pinning a frozen scrape.
Last PyPI release stays 4.9.2
4.9.2 is the wheel pip resolves. The project description still calls itself an unofficial API and warns that it works until Google changes a backend. That warning aged into the archive banner. A lockfile that "already works in CI" is a clock, not a contract.
Open issues will not get merges
TooManyRequestsError threads predate the archive and continued after it. The code path that raises the exception is the same _get_data helper. Closing a tab on GitHub does not close the exception in production. Reading those issues is research. Waiting for a patch on that repo is not a plan.
A Bearer POST does not inherit that repo
POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json
{"mode":"get_growth","source":"google search","keyword":"bitcoin","percent_growth":["12M"]}
This call does not load pytrends.request. It does not inherit the archive, the cookie jar, or the issue tracker. Google web notes: the Google Trends guide. The official Google alpha, if a project is approved, is a third path documented on Search Central.