Data literacy · 2026

The honest guide to Google Trends data

There is no official Trends API, and the numbers are not search volume. Read this before you build a single chart on top of them.

Pull Trends data now →

Google Trends is one of the most misused free datasets on the internet. Not because the data is bad — it is excellent — but because almost everyone reads it wrong. The single most important fact to internalize: Trends does not give you search volume. It gives you a 0–100 relative interest index, rescaled to the peak inside whatever query, region and timeframe you happened to ask for. Get that wrong and every conclusion downstream is wrong too.

There is no first-party Trends API — on purpose

Google has never published a supported Trends API. The community has leaned on the unofficial pytrends wrapper for years, but it hits the same internal endpoints the website uses, which means it inherits the website's rate limiting and breaks whenever Google adjusts the response shape or tightens its bot defenses. If you have seen 429 errors or empty frames out of pytrends, that is the design working as intended against automated callers. The durable approach is a maintained scraper that handles the token handshake, batching and proxy rotation for you and hands back the same numbers as clean structured rows.

How to actually read the 0–100 index

The value 100 is always the single highest point in your selected slice. Everything else is expressed as a percentage of that peak. A few consequences people miss:

The four mistakes that wreck Trends analysis

Mistake: treating the index as volume

An index of 50 is not "50,000 searches." It is half of that slice's peak. If you need absolute estimates, anchor the index against a known-volume keyword from another source and scale — never present the raw index as a count.

Do instead: report it as relative interest
Mistake: comparing terms by running them separately

To compare two terms you must put them in the same query so Google scales them on one shared axis. Run them apart and each gets its own 100, which makes them look equal when one may be 30x larger.

Do instead: batch comparison terms in one request
Mistake: ignoring the realtime sampling jitter

Trends is computed on a sample, and the sample is re-drawn. Pull the exact same query twice and the numbers can wobble a few points. Average across a couple of pulls for anything you will make a decision on.

Do instead: pull twice and smooth
Mistake: mixing a Search index with a YouTube or Shopping index

The property dimension matters. Web Search, Image, News, Shopping and YouTube each have separate indices. A term that trends on YouTube can be flat on Web Search. Lock the property and state it.

Do instead: fix one property per analysis

The parameters that change everything

Almost every "Trends is broken" complaint is actually a misset parameter. These are the levers that reshape your result:

ParameterWhat it controlsGotcha
geoRegion: country, sub-region, or metro (e.g. US, US-CA, DMA codes)Drilling to metro thins the sample — more 0s and more jitter
timeframeWindow (today 12-m, 2020-01-01 2026-06-29, now 7-d)Resolution flips: hourly under 9 months, weekly under 5 years, monthly beyond
propertySearch surface: web, images, news, shopping, youtubeEach has an independent 0–100 scale
search typeFree-text term vs. a Google "Topic" entityA Topic aggregates spelling/language variants; a raw term does not — pick deliberately

Worked example: comparing three product categories the right way

Suppose you want to know whether "cold plunge," "sauna blanket," or "red light therapy" has the most momentum in the US over the last year. The only correct move is one request with all three terms together, a fixed geo and timeframe, so they share one axis:

curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "searchTerms": ["cold plunge", "sauna blanket", "red light therapy"],
        "geo": "US",
        "timeframe": "today 12-m",
        "property": ""
      }'

The response gives you interestOverTime rows (one timestamped value per term, all on the shared scale) plus relatedQueries split into top (consistently popular) and rising (fastest-growing, where "Breakout" means a jump too large to express as a percentage). The rising bucket is usually the gold — that is where you find the long-tail demand before it is obvious. From there you can sort by the latest value, look at the 12-month slope, and report a relative ranking honestly: "over this window, in the US, on Web Search, X carried the highest relative interest" — never "X had Y searches."

Get clean Trends rows, not a rate-limited wrapper

Our maintained Google Trends Actor handles the token handshake, batching and proxies, and returns interest-over-time, related and rising queries as structured JSON — callable as an API, free to start with monthly Apify credits.

Get the Google Trends Scraper → Or get done-for-you leads

When Trends is the wrong tool

Trends is built for direction and comparison, not magnitude. If your question is "how many people search this per month," you want a keyword-volume source, not Trends. If your question is "is interest in this rising, where, and what adjacent terms are breaking out," Trends is unbeatable and free. Match the tool to the question and you will never be embarrassed by a chart.

Disclosure: the links to Apify on this page are affiliate links. If you create a paid account through them we may earn a commission, at no extra cost to you. We recommend Apify because we build and ship Actors on it ourselves.