Google Trends Scraper — Interest, Regions & Rising Queries
Pricing
from $2.40 / 1,000 keywords
Google Trends Scraper — Interest, Regions & Rising Queries
Google Trends for any keywords: interest over time (0-100, average, peak, trend), by region, related and rising queries, and related topics when Google returns them. Compare up to 5 keywords on one scale; set country, period, category, search type. Shows what changed since last run. No login.
Give it a list of keywords — and optionally a country, a time range and a category — and get Google Trends as clean rows: interest over time (the 0–100 points plus average, latest, peak, change and trend), interest by region, related queries (top and rising, with the "Breakout" flag) and related topics when Google returns them. $3 per 1,000 keywords — one keyword with every part you asked for counts once — no login, no API key, no cookies to paste.
Run it again — or put it on a schedule — and every keyword also tells you what is new since the last run: how the latest value moved, which rising queries appeared for the first time, and how each related query moved up or down the list. Google Trends only shows you the picture of today; this keeps the earlier one for you.
What you get
Rows have a type. Every row has keyword, geo (WORLDWIDE or the code you gave), timeRange, category, property and observedAt.
Row type | One row per | Fields |
|---|---|---|
timeline | keyword | points (list of date, value 0–100, isPartial), pointCount, resolution (as Google picks it: minute, eight_minute, hour, day, week, month), periodStart, periodEnd, average, latest, latestDate, peak, peakDate, change (% from the first quarter of the period to the last), trend (rising / falling / flat), comparedWith (the other keywords sharing the scale; an empty list unless compare is on) |
region | keyword and region | level (country, region, city or metro), rank, geoName, geoCode, value (100 = where the keyword is searched most) |
related-query | keyword and query | kind (top or rising), rank, query, value (0–100 for top; growth in % for rising), valueText, risingLabel (Breakout or +250%), isBreakout, url |
related-topic | keyword and topic | kind, rank, topic, topicType, topicId, value, valueText, risingLabel, isBreakout, url |
notice | keyword and part | part, message — a part Google had nothing for (free) |
error | keyword and part | part, message — what failed (free) |
Since the last run (null on the first run):
| Field | On | What it is |
|---|---|---|
previousObservedAt, previousLatest, previousLatestDate, latestChange | timeline | the last complete value from your previous run of the same keyword, place and period, and the difference (positive = interest went up) |
newRisingQueries | timeline | rising queries that were not in the previous run's list (needs Related queries in What to read) |
previousRank, rankChange, isNew | related-query, related-topic | position in your previous run (positive rankChange = moved up) and true when it was not there at all |
Use it for
- SEO and content planning — rising queries around your topic before they peak, and which ones are new this week
- Seasonality and timing — when interest builds and fades, per country, for launches, ads and stock
- Market sizing by place — which countries, states or metro areas search for a keyword the most
- Brand and competitor comparison — up to 5 names on one scale, week after week
Input
{"keywords": ["coffee", "tea", "matcha"],"compare": true,"geo": "US","timeRange": "past-12-months","include": ["timeline", "regions", "relatedQueries"]}
- keywords — one per line, up to 200 per run.
- compare —
false(default): each keyword on its own scale, so its busiest moment is 100.true: up to 5 keywords share one scale in one request, so you can see which is bigger. - geo — empty = worldwide; a country (
US,JP) or a region (US-CA,GB-ENG). - timeRange —
past-hour,past-4-hours,past-day,past-7-days,past-30-days,past-90-days,past-12-months(default),past-5-years,2004-present. For exact dates fill customDateRange instead, e.g.2024-01-01 2024-06-30. - category — Google Trends category ID,
0= all. property —web(default),images,news,youtube,froogle(Shopping). - include — any of
timeline(default),regions,relatedQueries,relatedTopics.
What changed since the last run is remembered per keyword, place, period, category and search type in a named key-value store in your Apify account, so the second run of the same input already shows changes. Schedule it (Apify → Schedules) for a daily or weekly log.
No keywords yet? Start from what is trending today
trendingNow takes a country code (US, GB, JP…). Google Trends' Trending now list for that country comes back as trending rows — rank, the search, approximate traffic (approxTraffic as shown, approxTrafficMin as a number), when it started, and the news links behind it — and each search is then analysed like any keyword you typed (its rows carry trendingIn and trendingRank). The trending list is free; each analysed keyword is charged as usual. With Location empty, that country is used. Run it daily on a schedule for a running log of what took off. Added 2026-10-24.
{ "trendingNow": "US", "include": ["timeline", "relatedQueries"] }
Pricing
$3 per 1,000 keywords ($0.003 each), plus $0.01 per run. A keyword is charged once, however many parts you ask for. Error rows and notice rows are free, and so is a keyword for which Google has no data. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing.
Notes
- Proxy. Google Trends answers HTTP 429 (rate limit) to most requests that come straight from cloud servers. The Actor therefore goes through Apify Proxy (datacenter) by default, which is part of your Apify plan. Measured on Apify on 8 October 2026: without a proxy 0 of 4 request patterns got data (three runs in a row failed); through Apify Proxy datacenter 3 of 3 and residential 3 of 3. If you turn the proxy off and every keyword fails with 429, turn it back on.
- Values are relative, 0–100: 100 is the highest point of the period, place and keyword (or of the whole group when comparing). They are not search counts. Compare runs that use the same period; when the period slides forward, the 100 moves with it.
- The newest point is often partial (
isPartial: true, the day or week is not over). It stays inpointsbut is left out ofaverage,latest,peakandchange.trendisrisingwhenchangeis +15% or more,fallingat −15% or less, otherwiseflat. - Regions: worldwide gives countries, a country gives its states or regions, and a region such as
US-CAgives its metro areas. Only regions where Google has data are returned. In compare mode each keyword's regions are scaled on their own. - Related topics are usually empty. In our tests Google returned no topics to automated requests every time, so you get a free
noticerow instead ofrelated-topicrows (thetopicTypeandtopicIdfields are only there when Google does return topics). They are not offered at all when keywords are compared. Related queries work in both modes. risingLabelandisBreakoutare filled onrisingrows only (nullontoprows). Rising lists are exactly what Google returns: the percentage is growth against the previous period, andBreakoutmeans more than +5,000%. For broad keywords the list can include phrases that look unrelated.- Google rate-limits hard, so the Actor reads about one request every 1.5–2 seconds and, when told to slow down, waits 3, 6, 12 and 24 seconds, each time through a new proxy address with a fresh session. Expect roughly 8–10 seconds per keyword with every part, a few seconds with the timeline only. If Google keeps refusing, the remaining keywords get a free error row and the run says so; run it again later or with fewer keywords. After a long burst Google can keep refusing one connection for an hour or more, so spread very large lists over several runs.
- Related queries that contain an email address or a phone number are left out.
- Public data only: what anyone sees on Google Trends without signing in.
To find keyword ideas first, see Keyword Suggestions from Autocomplete. To track where videos rank for a keyword, see YouTube Search Rank Tracker.
For AI agents
{"keywords": ["coffee"], "timeRange": "past-30-days", "include": ["timeline", "relatedQueries"]} returns one timeline row (points, average, latest, trend) and up to 50 related-query rows (kind top or rising). Rows have type: timeline, region, related-query, related-topic, notice or error. The first four types are billed together as one charge per keyword; notice and error rows are free.