Crawlora
ProductPlatformsUse CasesDocsPricingCompareContact
Sign inTry Playground Console
Crawlora

Structured public web data APIs for search, maps, geocoding, streaming, travel, real estate, marketplaces, apps, social, audio, crypto, finance, and AI workflows with managed execution and credit-based usage.

Product

Web Scraping APIFeaturesPlatformsTravel APIsReal Estate APIsPricing

Platforms

Google SearchGoogle MapsGoogle TrendsBing SearchAmazonLinkedInApple PodcastsZillowTripAdvisorShopifyAll platforms

Developers

DocsGetting StartedAPI ExamplesPlaygroundSDKsGitHub

Use cases

SERP MonitoringSERP Rank Checker APIGoogle Maps LeadsProperty Market IntelligenceAmazon Product MonitoringCrypto Market ResearchAI Agent Web DataAll use cases

Resources

Free Web ScraperAnti-Bot CheckerKeyword ResearchBlogChangelogAll free tools

Legal

ContactTermsPrivacy
Product
Web Scraping APIFeaturesPlatformsTravel APIsReal Estate APIsPricing
Platforms
Google SearchGoogle MapsGoogle TrendsBing SearchAmazonLinkedInApple PodcastsZillowTripAdvisorShopifyAll platforms
Developers
DocsGetting StartedAPI ExamplesPlaygroundSDKsGitHub
Use cases
SERP MonitoringSERP Rank Checker APIGoogle Maps LeadsProperty Market IntelligenceAmazon Product MonitoringCrypto Market ResearchAI Agent Web DataAll use cases
Resources
Free Web ScraperAnti-Bot CheckerKeyword ResearchBlogChangelogAll free tools
Legal
ContactTermsPrivacy
© 2026 Crawlora. All rights reserved.·Built by Tony Wang
System statusCrawlora API status
  1. Home
  2. /Blog
  3. /How to Scrape Google Trends in 2026 (API & Python)
By Tony WangTony WangJune 12, 20264 min read

How to Scrape Google Trends in 2026 (API & Python)

Get Google Trends data in 2026 — interest over time, rising and top queries, and trending searches — as structured JSON via API, with the legal basics.

Google TrendsGuideWeb Scraping API

Key takeaways

  • There is no official public Google Trends API; the practical route is a maintained endpoint that returns interest-over-time, rising/top queries, and trending searches as JSON.
  • Trends values are relative, normalized to 0–100 — analyze relative movement, not raw volume, and represent them honestly.
  • DIY via pytrends tracks an undocumented internal API that rate-limits and changes without notice; comparisons across separate calls are unreliable.
  • Pass multiple keywords in one call so they are normalized together; pair rising demand with rankings to prioritize content.

The fastest way to get Google Trends data in 2026 is to call a structured Trends API that returns normalized JSON — interest-over-time series, rising and top related queries, interest by region, and trending searches — instead of automating the Trends site yourself. There is no official public Google Trends API, so the practical choice is a maintained endpoint that handles the request shape and parsing for you.

One thing to know up front: Google Trends values are relative and normalized to 0–100, not absolute search counts. That is true however you collect them, so build your analysis around relative movement, not raw volume.

Is it legal to scrape Google Trends?

Google Trends is public data, and collecting public data is generally treated differently from accessing private accounts — but it is not unconditional:

  • Collect only the public Trends surfaces; no login-gated data.
  • Respect rate limits and avoid hammering the service.
  • Review Google's terms and your local law before commercial redistribution.
  • Remember the values are normalized indices, so represent them honestly in any product.

This is not legal advice — see Is web scraping legal in 2026? for the detail.

Option 1: DIY in Python (and why it breaks)

The common DIY route is an unofficial library such as pytrends that mimics the Trends frontend:

from pytrends.request import TrendReq

pytrends = TrendReq()
pytrends.build_payload(["ai agents"], timeframe="today 12-m", geo="US")
df = pytrends.interest_over_time()

It works until it doesn't. The recurring pain:

  • Rate limiting and 429s — Google throttles the internal endpoints aggressively, so you need proxies and backoff.
  • Unofficial and unstable — these libraries track an undocumented internal API that changes without notice.
  • Payload quirks — timeframes, geos, and category codes are fiddly and easy to get subtly wrong.
  • Normalization across requests — comparing keywords pulled in separate calls is unreliable because each batch is renormalized.

Option 2: No-code and ready-made tools

Dashboards and browser tools can show you a chart, but they rarely give you the underlying series in a form you can store, join, or schedule. For anything that feeds a pipeline or a product, you want the JSON.

Option 3: A structured Google Trends API

Crawlora's Google Trends API exposes documented endpoints for interest over time, rising and top queries, related topics, interest by region, and trending searches — all returning normalized JSON.

curl -X POST "https://api.crawlora.net/api/v1/google/trends/explore/interest-over-time" \
  -H "x-api-key: $CRAWLORA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["ai agents"], "geo": "US", "timeframe": "today 12-m"}'
import requests

resp = requests.post(
    "https://api.crawlora.net/api/v1/google/trends/explore/interest-over-time",
    headers={"x-api-key": "YOUR_API_KEY"},
    json={"keywords": ["ai agents"], "geo": "US", "timeframe": "today 12-m"},
)
for point in resp.json()["data"]["timeline"]:
    print(point["date"], point["values"])

A response is normalized JSON (fields are illustrative — confirm the exact request body and schema in the docs):

{
  "code": 200,
  "msg": "OK",
  "data": {
    "timeline": [
      { "date": "2026-05-01", "values": [{ "keyword": "ai agents", "value": 72 }] }
    ]
  }
}

For discovery rather than tracking, surface what is gaining momentum with the rising/top-queries and trending endpoints:

h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/google/trends"

rising = requests.post(f"{base}/explore/rising-queries", headers=h,
                       json={"keywords": ["ai agents"], "geo": "US"}).json()["data"]
trending = requests.get(f"{base}/trending", headers=h, params={"geo": "US"}).json()["data"]

Pass up to 5 keywords in one interest-over-time call so they're normalized together — the comparison that breaks when you batch them in separate requests.

What you can collect

  • Interest over time as a normalized 0–100 series per keyword
  • Rising and top related queries for a term
  • Related topics and interest by region
  • Trending searches and trending detail for what is spiking now

Limitations and common challenges

  • No official API. Google never shipped a public Trends API; unofficial libraries (pytrends) hit the internal endpoint, which rate-limits (429) and changes without notice.
  • Values are relative, not absolute. Every series is normalized 0–100 within its request — these are indices, not search counts; represent them honestly and don't read them as volume.
  • Normalize in one call. Pass up to 5 keywords together so they share one scale; batching them in separate requests renormalizes each and makes them incomparable.
  • Geo, timeframe, and category quirks. Location codes, timeframes, and category ids are fiddly; use the enums and locations endpoints to get them right.

Sources

Sources

  • Google Trends Help — how Trends data is adjusted and normalized
  • Google Trends — explore

Where this fits

Try it first, free: run any public URL through the Free Web Scraper, or check whether a site blocks bots with the Anti-Bot Checker — no signup.

Trends data is most powerful next to search rankings. Pair demand with visibility: when a query is rising, check whether you rank for it using the Google Search API or the cross-engine SERP monitoring workflow, and prioritize content where demand is climbing. For SEO and content planning, that demand-plus-rankings loop is the whole point — see the best SERP APIs in 2026 for the ranking side, how to scrape Brave Search for an alternative engine, and how to choose a web scraping API for the broader toolkit.

Get started by testing the endpoint in the Playground, reading the request and response schema in the API docs, and reviewing credit costs on the pricing page.

Frequently asked questions

Is there an official Google Trends API?

No. Google has never shipped a public Google Trends API, and unofficial libraries like pytrends track an undocumented internal endpoint that rate-limits (HTTP 429) and changes without notice. Crawlora's Google Trends endpoints provide a maintained, documented alternative that returns normalized JSON.

Are Google Trends values real search volumes?

No. Trends values are relative and normalized to a 0–100 scale within each query, not absolute search counts. Analyze relative movement rather than raw volume, and represent them as an index.

What can I collect?

Interest over time, rising and top related queries, related topics, interest by region, trending searches, and per-term trending detail.

How do I get rising or trending searches?

Use the rising-queries and top-queries endpoints (up to 5 keywords) for a term's momentum, and the trending endpoint (by geo) for what's spiking now, with trending/detail for a single term's full widget set.

Can I compare multiple keywords?

Yes. Pass up to 5 keywords to the interest-over-time endpoint in one call so they are normalized together and directly comparable. Comparing values pulled in separate calls is unreliable because each batch is renormalized.

Do I need a Google account or key?

No. One Crawlora API key (sent as the x-api-key header) calls every Trends endpoint, with no Google login or quota to manage.

About the author

Tony Wang

Tony Wang · Founder, Crawlora

Tony Wang is the founder of Crawlora and a senior software engineer with 9+ years across backend, cloud infrastructure, and large-scale web crawling — including distributed scrapers that have collected millions of profiles. He writes about web scraping, SERP and MCP APIs, and AI-agent data workflows.

View profiletonywang.io
Back to blog

Related posts

How Paywalls Actually Work: The Engineering Behind Them

How news paywalls work: hard vs metered, client- vs server-side rendering, the Googlebot JSON-LD contract, and why some are easy to read and others aren't.

Scraping Sites That Block Bots: Cloudflare, DataDome & PerimeterX

Why scrapers get blocked by Cloudflare, DataDome and PerimeterX — and how to get through reliably with stealth browsers, IP rotation and clearance reuse.

How to Scrape Brave Search in 2026 (API & Python)

Three ways to scrape Brave Search in 2026 — DIY Python, no-code tools, or a structured API for web, news, and video results — with the legal basics.

AI vs Traditional Web Scraping: Which Wins, When

AI vs traditional web scraping: how LLM extraction, CSS selectors, and structured data APIs differ — and when each one wins for clean, reliable data.

Web Scraping vs API: Which Should You Use in 2026?

Web scraping vs official APIs in 2026 — when to scrape, when to use an API, and how a structured scraping API gives you both, with the legal basics.

Web Scraping for AI Training Data: A Compliant Guide

How to source web data for AI training and RAG compliantly — provenance, licensing, robots and terms, dedupe, and PII — without maintaining scrapers.

Browse Docs Try Playground