Google Trends Scraper avatar

Google Trends Scraper

Pricing

from $0.84 / 1,000 results

Go to Apify Store
Google Trends Scraper

Google Trends Scraper

Scrapes Google Trends interest over time, interest by region and related/rising searches. States what the 0-100 numbers actually mean: they rescale per request, so every row carries the keyword set it was scaled against, and rising searches keep their growth percent separate.

Pricing

from $0.84 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Google Trends Scraper — Interest, Regions & Rising

Reads Google Trends' own two-stage API: interest over time, interest by region, and related/rising searches. No key, no auth.

What you get

recordTypeOne perCarries
TIMESERIES_POINTkeyword × time pointvalue, ISO date, unix timestamp, Google's own resolution, isPartial
REGIONkeyword × regionregion code and name, value, which keyword won that region
RELATED_SEARCHrelated query/topiclistType (TOP or RISING), rank, the 0-100 index or the growth percent, and a breakout flag
SEARCH_SUMMARYrequest groupthe resolved date window, the resolution Google chose, which widgets existed vs were fetched, and the scaling basis
ERRORfailed inputa named reason — every input maps to at least one row

Read this before you use the numbers

A Google Trends value is not search volume. It is percent of the peak within that one request, and it rescales when the request changes. Measured, same keyword, same region, same period:

ethereum alone max = 100 series starts 100, 70, 60, 66 ...
ethereum beside "bitcoin" max = 10 series starts 10, 7, 6, 7 ...

A tenfold difference, purely because another keyword joined the request and moved the peak. Two runs are comparable only if the keyword set is identical. Every value row therefore carries scalingBasis (the exact set the 0-100 scale was computed against), comparedWith, and valuesAreRelative.

That is also why Compare keywords is a real choice, not a convenience:

  • off (default) — one request per keyword, each series scaled to its own peak. Good for "how did each term move over time". Values are not comparable between keywords.
  • on — all keywords in one request on one shared scale, so they are comparable. Google allows at most 5 and returns HTTP 400 for more.

The last data point is incomplete. The trailing period is the current, unfinished week/day/hour and is flagged isPartial. Charted as-is it produces a cliff at the right edge that reads like a collapse in interest. The summary counts them.

Related searches mix two units. Google returns TOP and RISING in one unlabelled array: TOP values are a 0-100 index (3–100 in a measured response), RISING values are percent growth (160–29,050 in the same response), and anything above roughly 5,000% is labelled the literal string Breakout. Flattened together they are meaningless. Here they are named by listType, with the index in value, the growth in growthPercent, and isBreakout as its own flag — never sharing a column.

Inputs this actor refuses on purpose

  • An unknown category or property. Google's first call accepts these with HTTP 200 and a complete, healthy-looking widget payload; only the second call refuses. A client that validates on the first response believes the query was accepted and then sees what looks like a network error. Both are checked up front here.
  • More than 5 compared keywords — Google returns HTTP 400. The error names the alternative (turn comparison off) and its consequence.
  • An unrecognised timeRange — likewise a Google 400.

A bogus geo is refused by Google itself, so a typo fails loudly instead of quietly returning worldwide data.

Notes

  • Google picks the data resolution from your time range (minute, 8-minute, hourly, daily, weekly, monthly) and reports it back. It decides what one point means, so it is recorded on every row rather than assumed.
  • Multi-keyword comparisons change the widget set: Google drops the RELATED_TOPICS widget entirely and returns per-keyword GEO_MAP_n / RELATED_QUERIES_n instead. widgetsAvailable records what actually existed.
  • Google Trends rate-limits by IP and answers HTTP 429 rather than throttling. Rotating fingerprints does not help — only waiting, or a different exit address. Keep minRequestInterval at 2s or higher, and turn on the Residential proxy for anything large.