Reliable Google Trends API avatar

Reliable Google Trends API

Pricing

from $2.00 / 1,000 trend results

Go to Apify Store
Reliable Google Trends API

Reliable Google Trends API

Google Trends scraper & pytrends alternative without 429 errors: interest over time, by region, related & rising queries for up to 5 keywords; web, YouTube, News, Images, Shopping. Proxy rotation, retries, ok/partial/failed status. Failed & invalid queries free. MCP-ready.

Pricing

from $2.00 / 1,000 trend results

Rating

0.0

(0)

Developer

Offladder

Offladder

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Reliable Google Trends API: Google Trends Scraper & pytrends Alternative (No 429 Errors)

Reliable Google Trends API gets Google Trends data without the 429 errors: interest over time, interest by region, related queries and related topics for up to 5 compared keywords per query. It covers Web Search, YouTube, Google News, Images and Shopping. Use it as a drop-in pytrends alternative or a Google Trends scraper from Python, Node.js, cURL, n8n, Make or Zapier. Every query comes back with an explicit ok / partial / failed status, never a silent empty row, and failed queries are free.

  • Interest over time: 0–100 timeline for 1–5 keywords, for any timeframe (now 7-d, today 12-m, today 5-y, all, or 2024-01-01 2024-12-31).
  • Interest by region: country, region (state), metro (DMA) or city breakdown.
  • Related queries: top and rising (breakout) searches for each keyword.
  • Related topics: optional. Google often withholds these from automated sessions, so they're off by default, and the row is marked partial if they're missing.
  • Comparisons and filters: geo (US, GB, US-CA …), category, and property (web / youtube / news / images / froogle).
  • Bulk keywords: send hundreds of queries in one run. Each one is retried independently.

Why is it more reliable?

pytrends is archived and often fails with 429 Too Many Requests. This Actor handles that for you with:

  • Cookie warmup and token refresh
  • Rotating Apify Proxy sessions, with a new session after each block
  • Per-widget retries with backoff
  • Automatic residential-proxy fallback when datacenter IPs keep getting blocked

Measured results (34-query gate runs on the Apify platform, including repeated queries):

ModeSuccessPlatform cost per run
Datacenter proxy only34/34 (100%)$0.0017
Datacenter + residential fallback (default)34/34 (100%)$0.0013
Residential forced34/34 (100%)~$0.0067

Local testing also passed: 70 of 70 queries. Every run writes a RUN_SUMMARY record to the key-value store with the success rate and the counts of blocks and retries.

Pricing (pay per event)

  • $0.02 per run start at the default 1 GB memory (Apify charges the start event per GB of memory)
  • $0.002 per successful trend result. One result is one query with every section you asked for, covering up to 5 compared keywords. That works out to $2 per 1,000 queries.
  • Failed queries cost $0.

You pay only for data you receive. Platform usage is included.

Quick start

Input:

{
"searchTerms": ["coffee", "chatgpt, claude, gemini"],
"geo": "US",
"timeframe": "today 12-m",
"property": "web",
"interestOverTime": true,
"interestByRegion": true,
"relatedQueries": true
}

Each searchTerms entry is one query; separate keywords with commas to compare up to 5. To set different options for each query, use customQueries:

{ "customQueries": [ { "keywords": "bitcoin, ethereum", "geo": "GB", "timeframe": "today 5-y", "property": "news" } ] }

Output example

{
"row_type": "result",
"status": "ok",
"keywords": ["coffee"],
"query": { "geo": "", "timeframe": "today 12-m", "category": 0, "property": "web" },
"interest_over_time": [
{ "time": "2025-10-12T00:00:00+00:00", "values": { "coffee": 60 }, "is_partial": false }
],
"interest_by_region": [
{ "geo_code": "SG", "geo_name": "Singapore", "values": { "coffee": 100 } }
],
"related_queries": {
"coffee": {
"top": [ { "query": "best coffee", "value": 100 } ],
"rising": [ { "query": "...", "formatted_value": "+2,400%" } ]
}
},
"errors": []
}

You can export the data as JSON, CSV, Excel, XML or RSS, or pull it through the API.

API & integration examples

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("eligible_fame/reliable-google-trends").call(run_input={
"searchTerms": ["air fryer, instant pot"], "geo": "US", "timeframe": "today 5-y"})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["status"], row["keywords"], len(row.get("interest_over_time", [])))

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('eligible_fame/reliable-google-trends').call({ searchTerms: ['coffee'], geo: 'GB' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].interest_over_time);

cURL (synchronous run that returns dataset items)

curl -X POST "https://api.apify.com/v2/acts/eligible_fame~reliable-google-trends/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["coffee, tea"],"geo":"US","timeframe":"today 3-m"}'

No-code: use the Apify app in n8n, Make or Zapier: Run Actor, then Get dataset items. You can also schedule a daily run in Apify Schedules and use a webhook to send the results to Google Sheets, Slack or your database.

Use it from AI agents and MCP clients (Claude, Cursor, ChatGPT, n8n AI Agent)

Give an LLM agent fresh Google Trends data through Apify's MCP server (https://mcp.apify.com). The agent passes keywords, gets back the timeline, regions and rising queries as JSON, and can then reason over them: "is interest in 'air fryer' still growing in the UK?"

Add only this Actor as an MCP tool (Claude Desktop, Cursor, VS Code, Windsurf):

{
"mcpServers": {
"google-trends": { "url": "https://mcp.apify.com?tools=eligible_fame/reliable-google-trends" }
}
}

On first connection the client opens an Apify sign-in (OAuth). Alternatively add the header "Authorization": "Bearer <APIFY_TOKEN>". With the default server the agent can also find it with search-actors ("google trends") and run it via call-actor.

Prompt examples for an agent

  • "Use reliable-google-trends to compare 'chatgpt, claude, gemini' worldwide over today 12-m and summarise who is gaining."
  • "Get rising related queries for 'protein coffee' in US over now 7-d and suggest 5 blog titles."

Tips for agents

  • One query = up to 5 comma-separated keywords. Values are relative (0–100) within that query.
  • Switch off sections you don't need (interestByRegion: false) for faster runs; the price per successful query stays the same.
  • Each row has status (ok / partial / failed) and an errors list. failed rows and error rows are free.
  • Set maxTotalChargeUsd in the MCP callOptions to cap spend. Pay-per-event pricing also supports Apify agentic payments (e.g. Skyfire).

Input validation (what you are and aren't charged for)

  • Invalid queries (unknown timeframe like "last week", geo written out as "United States", an empty line, a non-object in customQueries) produce a free row_type: "error" row (status: "invalid") with code INVALID_QUERY and a fix-it message. Valid queries in the same run still run.
  • If no query is usable, or every output section is switched off, the run stops with INVALID_INPUT before any result is charged.
  • Common mistakes are fixed automatically: searchTerms sent as one text block, more than 5 terms (the first 5 are kept), numbers sent as strings, keywords used instead of searchTerms.

Use cases

  • SEO and content: find keyword seasonality and rising queries.
  • E-commerce and dropshipping: validate products and compare demand across countries.
  • Market research and investing: track brand demand and compare competitors.
  • Data science: build time-series features for forecasting.
  • AI agents: give an LLM fresh Trends data through the API or MCP.

FAQ

Is this an official Google Trends API? No. Google's official Trends API is in invite-only alpha. This Actor reads the same public data you see at trends.google.com.

Why are values 0–100 and not search volumes? Google Trends only publishes relative interest. 100 is the peak inside your query's time and geo window. Only compare keywords that were in the same query.

What happens when Google blocks a request? The Actor rotates to a new proxy session, refreshes tokens and retries. If retries keep failing, it falls back to residential proxies. If a query still fails, it's marked failed and you aren't charged.

Can I migrate from pytrends? Yes. build_payload + interest_over_time() becomes searchTerms + interestOverTime. The timeframe, geo and category (cat) values use the same format.

Does it use captcha solving? No. It only uses normal proxy rotation and retries.

Is scraping Google Trends legal? The Actor collects publicly available, aggregated, non-personal data. You're responsible for how you use it under Google's terms and the laws that apply to you.