Skip to the content.

Google Trends API

Interest over time, by region, rising queries and Trending Now with search volume. From $0.003 / result, pay per result, no browser, no login.

▶ Run it on Apify · Python example · All scrapers

Get Google Trends data in seconds, as clean JSON, CSV or Excel. This Google Trends scraper calls the same data endpoints as the trends.google.com website — no headless browser — so runs start instantly, cost a fraction of a cent and almost never fail.

✅ Interest over time for any keyword (with average, peak, latest value and growth %) ✅ Interest by region: countries, states/regions, cities, US metro areas — ranked ✅ Related queries: top and rising searches, including “Breakout” keywords ✅ Trending now: hundreds of trending searches per country — search volume, growth %, start time, related queries, category, news links — for the past 4 h, 24 h, 48 h or 7 days ✅ Compare up to 5 keywords on the same scale — or rank unlimited keywords on one scale ✅ Several countries in one run to compare markets ✅ Web, YouTube, Google News, Google Shopping and Image search ✅ Any category, any country, any period from the past hour to 2004 ✅ Paste Google Trends URLs straight from your browser ✅ You never pay for empty results


  This Actor Browser-based scrapers
Speed 30 keywords in ~100 s minutes, page by page
Reliability (measured) 30/30 queries, 1 blocked call out of 157 frequent timeouts
Rank more than 5 keywords on one scale Yes (anchor method) No
Several countries per run Yes One per run
Ready-made insights (avg, peak, growth %) Yes Raw data only
Trending now with volume, growth, related queries and news Yes, any country, 19 categories Partial
Charged for empty results Never Often


  1. Add your keywords — one query per line. Put up to 5 terms on one line, separated by commas, to compare them: iphone, samsung, pixel. Or paste Google Trends URLs copied from your browser.
  2. Choose location(s), period and data — e.g. US, GB, DE… (empty = Worldwide), Past 12 months, all data types.
  3. Click Start and download your dataset as JSON, CSV, Excel, XML or HTML, or fetch it through the API.

Rank 100+ keywords on one scale

Google only compares 5 terms at a time. Turn on “Rank all terms on one scale”: the Actor splits your list into batches sharing one anchor term and rescales every batch, so all keywords land on one comparable 0-100 score. Perfect for keyword research and product selection.


📥 Input example

{
  "searchTerms": ["pokemon cards", "iphone, samsung, pixel"],
  "geos": ["US", "GB"],
  "timeRange": "today 12-m",
  "dataTypes": ["interestOverTime", "interestByRegion", "relatedQueries"],
  "keywordRanking": false,
  "trendingNowGeos": ["US"]
}

📤 Output examples

Interest over time (with ready-made summary):

{
  "type": "interestOverTime",
  "searchTerms": ["iphone", "samsung"],
  "geo": "US",
  "timeRange": "today 12-m",
  "summary": {
    "iphone": { "average": 61.4, "max": 100, "maxDate": "2026-09-14T00:00:00Z", "latest": 58, "changePct": 12.5 },
    "samsung": { "average": 22.1, "max": 31, "maxDate": "2026-02-01T00:00:00Z", "latest": 20, "changePct": -4.0 }
  },
  "timeline": [
    { "date": "2025-11-02T00:00:00Z", "label": "Nov 2 – 8, 2025", "values": { "iphone": 55, "samsung": 21 }, "isPartial": false }
  ]
}

Interest by region (most interested first):

{ "type": "interestByRegion", "geo": "US", "resolution": "REGION",
  "regions": [{ "geoCode": "US-CA", "geoName": "California", "values": { "iphone": 100 }, "hasData": true }] }

Related & rising queries:

{ "type": "relatedQueries", "term": "pokemon cards",
  "top": [{ "query": "pokemon cards value", "value": 100, "formattedValue": "100", "breakout": false, "link": "https://trends.google.com/…" }],
  "rising": [{ "query": "pokemon 30th celebration", "value": 4650, "formattedValue": "Breakout", "breakout": true, "link": "https://trends.google.com/…" }] }

Keyword ranking (unlimited terms, one scale):

{ "type": "keywordRanking", "anchorTerm": "bitcoin",
  "ranking": [{ "term": "bitcoin", "score": 100, "averageIndex": 42.3, "rank": 1 }, { "term": "solana", "score": 18.7, "averageIndex": 7.9, "rank": 2 }],
  "notRanked": [] }

Trending now (full list, biggest first):

{ "type": "trendingNow", "rank": 1, "geo": "US", "timeWindowHours": 24, "title": "world series", "searchVolume": 2000000, "growthPct": 1000,
  "startedAt": "2026-10-31T19:00:00Z", "isActive": true, "categories": ["Sports"], "relatedQueries": ["dodgers", "world series game 7"],
  "news": [{ "title": "…", "url": "https://…", "source": "…", "picture": "https://…" }], "exploreLink": "https://trends.google.com/trends/explore?q=world%20series&geo=US&date=now%207-d" }

💰 Pricing — pay only for results

What you run Results Cost (Starter plan)
1 keyword, all data 3 ≈ $0.0075
3 keywords compared, all data 5 ≈ $0.0125
100 keywords, interest over time 100 ≈ $0.25
Rank 50 keywords on one scale 1 ≈ $0.0025
Trending now, 1 country, top 50 50 ≈ $0.125

Platform usage and proxies are included. Higher Apify plans get lower prices per result. Set a maximum cost per run and the Actor stops cleanly when it is reached. Empty results and failed queries are never charged.


Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("victorrodi/google-trends-api").call(
    run_input={
        "searchTerms": ["bitcoin, ethereum"],
        "geo": "US",
        "timeRange": "today 3-m",
    }
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item["type"], item.get("summary"))

JavaScript / Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('victorrodi/google-trends-api').call({ searchTerms: ['chatgpt, gemini, claude'], geo: 'GB' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL (run and get results in one call)

curl -X POST "https://api.apify.com/v2/acts/victorrodi~google-trends-api/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" -d '{"searchTerms": ["air fryer"], "geo": "US"}'

Also works with Make, Zapier, n8n, Google Sheets, Slack, Airbyte, LangChain and MCP / AI agents through Apify integrations.

🤖 Use it from AI agents (Claude, ChatGPT, Cursor…)

This Actor is available to AI assistants through the Apify MCP server. Add the server to Claude Desktop, Claude Code, Cursor or any MCP client, then simply ask:

“Use the Google Trends Scraper to compare ‘iphone, samsung, pixel’ in the US over the past 12 months and tell me which one is growing.”

“What is trending on Google in the UK right now in Technology? Use victorrodi/google-trends-api.”

The structured output (summary with growth %, ranked regions, rising queries) is designed to be read directly by LLMs.


🛡️ Reliability

More scrapers from the same team (Google News, Flights, Autocomplete, YouTube, Airbnb, Shopify, Telegram…): trendpulse-scrapers.


📌 Tips


❓ FAQ

Is there an official Google Trends API? Google opened an alpha API to a small group of testers only. This Actor gives you the same data today, without an application or quota.

Can I schedule Google Trends reports? Yes. Save your input as a Task, add a Schedule (daily, weekly…) and connect the dataset to Google Sheets, Slack or email.

How many keywords can I track? Up to 500 queries per run, each with up to 5 compared terms — and keyword ranking puts any number of terms on one scale.

Why do values only go up to 100? Google Trends publishes a relative interest index, not absolute search volumes. 100 is the peak within the request.

Can I get data for a city or a US state? Yes: set the location to a region code such as US-CA or BR-SP, and choose region detail Cities.

Is scraping Google Trends legal? This Actor collects public, aggregated and anonymous statistics. It does not collect personal data. Make sure your use complies with Google’s terms and the laws that apply to you.


💬 Support

Need a field, a new data type or found an issue? Open an issue in the Issues tab — it is answered fast. Feature requests are welcome.

More code examples and a pytrends migration guide: github.com/Vicshock/google-trends-api.