Google Trends Scraper & API — Interest by Region
Pricing
$3.00 / 1,000 trend rows
Google Trends Scraper & API — Interest by Region
Google Trends data that actually comes back: interest over time, interest by region, and top/rising related queries and topics. Browserless and proxy-rotating, so it survives the rate limits that break DOM-based scrapers. You pay only for rows delivered.
Google Trends Scraper — Interest, Regions & Related Queries
Google Trends data that actually comes back.
Pull interest over time, interest by region, and top + rising related queries for any keyword, any country, any time range — as clean tabular rows ready for a spreadsheet, a dashboard, or an LLM pipeline.
Why this one
Most Google Trends scrapers drive a headless browser and read the page. Google changes the page, the selectors break, and the run either returns nothing or spins until it times out — while you get billed for it anyway.
This actor takes a different path:
| This actor | Typical browser-based scraper | |
|---|---|---|
| How it gets data | Google's own JSON endpoints | Headless browser + DOM selectors |
| Breaks when Google restyles the page | No | Yes |
| Memory | 1 GB | 4 GB |
| Rate limits (HTTP 429) | Cookie warm-up + exponential backoff + fresh proxy session per retry | Usually just fails |
| What you pay for | Only rows actually delivered | Often a start fee regardless of output |
If a run returns nothing, it costs you nothing. There is no actor-start charge. Every row you are billed for is a row in your dataset.
What you get
Interest over time
{"recordType": "interest_over_time","searchTerm": "bitcoin","date": "May 7, 2026","timestamp": "2026-05-07T00:00:00.000Z","value": 52,"isPartial": false,"geo": "US","timeRange": "today 3-m"}
Interest by region
{"recordType": "interest_by_region","searchTerm": "bitcoin","region": "Wyoming","geoCode": "US-WY","value": 100}
Related queries (top + rising)
{"recordType": "related_query","searchTerm": "bitcoin","rankType": "RISING","query": "spacex stock price","value": 3250,"formattedValue": "+3,250%","link": "https://trends.google.com/trends/explore?q=..."}
rankType is TOP (most searched alongside your term) or RISING (fastest growing —
Breakout means growth over 5000%).
Input
| Field | Type | Notes |
|---|---|---|
searchTerms | array | Required. One or more keywords. |
dataTypes | array | TIMESERIES, GEO_MAP, RELATED_QUERIES. Fewer types = fewer rows = lower cost. |
timeRange | string | now 1-H … today 5-y, all. Default today 12-m. |
customTimeRange | string | YYYY-MM-DD YYYY-MM-DD. Overrides timeRange. |
geo | string | US, GB, DE, or a sub-region like US-CA. Empty = worldwide. |
compareTerms | boolean | ON = one request, values relative across terms (Google's comparison mode). OFF = each term on its own 0–100 scale. |
category | integer | Google Trends category id. 0 = all. |
maxItems | integer | Hard cap on delivered rows — your spend ceiling. 0 = no limit. |
proxyConfiguration | object | Residential strongly recommended. |
Example
{"searchTerms": ["bitcoin", "ethereum", "solana"],"dataTypes": ["TIMESERIES", "GEO_MAP", "RELATED_QUERIES"],"timeRange": "today 3-m","geo": "US"}
→ 519 rows.
Understanding the numbers
Google Trends values are relative, not absolute search counts. Within a single
request, 100 is the peak point and everything else is scaled against it. That means:
- Values for a term scraped alone are not comparable to the same term scraped in a
comparison group. Use
compareTerms: truewhen you need terms on one shared scale. isPartial: truemarks a period that has not finished collecting yet — the last data point is usually partial and will rise. Exclude it from trend calculations.
Honest limitations
- Related topics are not available. Google's endpoint returns an empty list for every term we tested, so this actor does not offer that option rather than quietly charging you for nothing. Related queries work fine and are usually what people want.
- Google rate-limits aggressively. The actor retries with backoff and rotates to a fresh proxy session on each 429. Large jobs still run faster and cleaner with residential proxies enabled. If everything is blocked, the run fails and bills nothing.
- Hourly ranges (
now 1-H,now 4-H) return far fewer points than daily ranges — that is Google's granularity, not a truncation. - Google is rolling out an official Trends API (currently a closed alpha). If and when it opens, this actor will move to it.
Use it for
- SEO & content — find rising queries before they peak.
- Market research — compare brand or product interest across regions.
- Finance & crypto — retail attention as a sentiment input.
- Journalism & academia — reproducible search-interest series with real timestamps.
- LLM pipelines — flat rows, no HTML, no post-processing.
Scheduling
Point the Apify Scheduler at this actor to build your own history: run daily with
timeRange: "now 7-d" and append to a dataset. Because you are only charged per
delivered row, a scheduled watch on a handful of terms stays cheap.