migration guide · pytrends to Trends API

The managed pytrends alternative

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.

get_growth · google search
# 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"] }
200 OKnormalized 0-100
response
{
  "search_term": "bitcoin",
  "data_source": "google search",
  "results": [
    { "period": "3M", "growth": 18.4, "direction": "increase" },
    { "period": "12M", "growth": 96.2, "direction": "increase" }
  ]
}
application/jsontimestamped
Why it exists

pytrends alternative trend data, without the plumbing

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.

Use cases

What people build with it

Migrate an existing pipeline

Replace the scraping stack with one POST. Most migrations finish in an afternoon.

SEO research

Keyword interest over time without rate-limit babysitting or proxy bills.

Market research

Demand signals across Google plus 14 other platforms in the same response schema.

Scheduled reporting

Trend pulls that keep working when Google changes a header.

Comparison

How it compares

pytrends (archived)Trends API
429 rate-limit errorsconstantnever
Proxy rotationoften requirednever
Breaks on Google changesyes, regularlyno, managed infrastructure
Platforms covered1 (Google only)15 sources + 21 feeds
Growth windowscompute yourself3M/6M/12M/5Y built in
Maintenance statusarchivedactively maintained
Free tierfree but blocked100 requests/month
Three modes, one endpoint
get_time_series

Historical trend series for a keyword on this source, normalized 0-100.

get_growth

Growth percentages over 3M / 6M / 12M / 5Y windows.

get_top_trends

21 live trending feeds across platforms, no keyword needed.

FAQ

Common questions

Why was pytrends archived?

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.

Is Trends API a drop-in pytrends replacement?

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.

What do I get that pytrends never offered?

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.

Is there a free tier?

100 requests per month, no credit card. Enough to migrate and validate a pipeline before paying anything.

Can I still use Python?

Yes. Plain requests works, and there is a first-party Python client on GitHub.

Keep exploring

Related trend sources

Start pulling pytrends alternative trends in 60 seconds.

100 requests a month free. No credit card, no sales call. One key works for every source.

Get a free API key