pytrends is archived and Google blocks the endpoints it scraped. Trends API is the managed replacement: the same Google Trends data, served as stable JSON from one endpoint, plus 14 other platforms in the same schema.
# one POST, every source POST https://api.trendsapi.ai/api Authorization: Bearer YOUR_API_KEY { "mode": "get_growth", "source": "google search", "keyword": "bitcoin", "percent_growth": ["3M", "12M"] }
{
"search_term": "bitcoin",
"data_source": "google search",
"results": [
{ "period": "3M", "growth": 18.4, "direction": "increase" },
{ "period": "12M", "growth": 96.2, "direction": "increase" }
]
}pytrends worked by scraping unofficial Google Trends endpoints. Google flags and blocks that traffic at the protocol level, so users ended up rotating residential proxies, catching 429s, and rerunning failed jobs at 2am. The maintainers archived the project; the demand for the data did not go away.
Migration is mechanical. Where pytrends needed build_payload, interest_over_time and retry logic, Trends API needs one POST with your keyword. The response is a normalized time series with growth windows already computed, and the same call shape works for TikTok, YouTube, Reddit, Amazon and 11 other sources.
Replace the scraping stack with one POST. Most migrations finish in an afternoon.
Keyword interest over time without rate-limit babysitting or proxy bills.
Demand signals across Google plus 14 other platforms in the same response schema.
Trend pulls that keep working when Google changes a header.
| pytrends (archived) | Trends API | |
|---|---|---|
| 429 rate-limit errors | constant | never |
| Proxy rotation | often required | never |
| Breaks on Google changes | yes, regularly | no, managed infrastructure |
| Platforms covered | 1 (Google only) | 15 sources + 21 feeds |
| Growth windows | compute yourself | 3M/6M/12M/5Y built in |
| Maintenance status | archived | actively maintained |
| Free tier | free but blocked | 100 requests/month |
Historical trend series for a keyword on this source, normalized 0-100.
Growth percentages over 3M / 6M / 12M / 5Y windows.
21 live trending feeds across platforms, no keyword needed.
Google explicitly flags and blocks scrapers at the protocol level. Maintaining a scraping client became a losing game of whack-a-mole, so the maintainers archived the project. The demand for the data did not go away, only the reliable access did.
Conceptually yes, mechanically different. Instead of build_payload() you make one POST with source "google search" and your keyword. The response is a normalized time series with growth windows already computed. Most migrations take under an hour.
Cross-platform coverage (TikTok, YouTube, Reddit, Amazon, npm, Steam and more in the same schema), built-in growth percentages, 21 live trending feeds, an MCP server for AI assistants, and infrastructure that does not break when Google changes something.
100 requests per month, no credit card. Enough to migrate and validate a pipeline before paying anything.
Yes. Plain requests works, and there is a first-party Python client on GitHub.
100 requests a month free. No credit card, no sales call. One key works for every source.
Get a free API key