Google Trends Scraper: Interest Over Time, Regions & Queries avatar

Google Trends Scraper: Interest Over Time, Regions & Queries

Pricing

$0.30 / 1,000 result rows

Go to Apify Store
Google Trends Scraper: Interest Over Time, Regions & Queries

Google Trends Scraper: Interest Over Time, Regions & Queries

Google Trends data that arrives or tells you why not. Interest over time, interest by region, related queries and related topics for up to 5 compared terms, with batching for longer lists. Retries 429s with fresh sessions, never loops, and you pay only for rows delivered.

Pricing

$0.30 / 1,000 result rows

Rating

0.0

(0)

Developer

Michael Shanker

Michael Shanker

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Google Trends Scraper: Interest Over Time, Regions, Related Queries

Get Google Trends data as clean rows: interest over time, interest by region, related queries and related topics, for up to 5 terms compared side by side, in any country or worldwide, for any time range Google offers. Use it as a simple Google Trends API from your code, a schedule, Make, Zapier or an AI agent.

$0.30 per 1,000 rows. You pay only for rows saved to your dataset. A run that gets no data from Google costs nothing.

Why this one works

Most Google Trends tools fail quietly. You wait, the run spins, and the dataset is empty. This one is built the other way around:

  • It returns data or tells you exactly why not. Every request is listed in the SUMMARY record with its result. A failure says what happened in plain words, like "Google kept answering 429 Too Many Requests after 5 tries" or "no data for this term (too little search volume for this place and time range)".
  • It never loops. Each request has a timeout, retries are capped, and the whole run has a hard time limit (10 minutes by default). Nothing is retried after that limit. Rows already saved are kept.
  • It handles Google's rate limits. A 429 answer is retried with growing waits plus random jitter. Two 429s in a row start a fresh session with a new proxy IP and a new Google cookie. If Google keeps refusing, the run stops early instead of burning your time.
  • You pay only for delivered rows. Failed requests, terms with no data and regions with no data produce no rows and no charge.
  • It's fast. It talks to the same endpoints the Google Trends website uses, with no browser. A 2-term comparison with all four outputs takes a few seconds.

What you can use it for

  • SEO and content planning: compare keywords, find rising queries before they peak, and see which regions search most.
  • Market and product research: track demand for a product, brand or category over 5 years or since 2004.
  • Investing and analytics: feed weekly or daily interest into dashboards and models.
  • News and social monitoring: watch what's rising in the past hour, 4 hours or day.
  • AI agents: give an LLM structured trend data without scraping.

Input

FieldWhat it does
Search termsUp to 5 terms are compared in one request, like the website's Compare box. Up to 100 per run.
LocationUS, GB, DE, a state like US-CA, a US metro like US-NY-501. Blank means worldwide.
Time rangePast hour, 4 hours, day, 7 days, 30 days, 90 days, 12 months, 5 years, 2004 to present, or Custom.
Custom time range2024-01-01 2024-06-30 when Time range is Custom.
CategoryGoogle Trends category id, e.g. 71 (Food & Drink). 0 is all categories.
Google propertyWeb, Image, News, YouTube or Shopping search.
What to returnInterest over time, interest by region, related queries and related topics. All on by default. Google gives related topics only for a term searched on its own, so compared terms return the other three.
Anchor termFor more than 5 terms. See below.
Use Apify Proxy / Proxy groupsOn by default. RESIDENTIAL gets rate limited far less often than datacenter proxies.
Retries, request timeout, run time limitDefaults: 4 retries, 30 seconds per request, 600 seconds per run.

Example:

{
"searchTerms": ["coffee", "tea", "matcha"],
"geo": "US",
"timeRange": "past-12-months",
"relatedTopics": false
}

More than 5 terms

Google compares at most 5 terms at once, and its 0 to 100 values are relative to the highest point inside one comparison. So longer lists are split into groups:

  • Without an anchor term each group of 5 is its own comparison. Values compare fairly inside a group, not across groups. Rows carry a requestId (comparison-1, comparison-2, ...) so you can tell the groups apart.
  • With an anchor term every group is the anchor plus 4 other terms. Each interest-over-time row also gets a scaledValue that puts every group on the first group's scale, using the anchor's total in each group. Pick a steady, popular term as the anchor. Its own rows come back once, from the first group. Scaled values can go above 100.

Output

Every row has a type, the requestId of its comparison, the term, and the geo, timeRange, category and property it was asked with. Rows are flat, so they open cleanly in Excel or Google Sheets.

Interest over time (one row per term per time point; isPartial marks the current, unfinished period):

{"type": "interestOverTime", "requestId": "comparison-1", "term": "coffee", "geo": "US", "timeRange": "past-12-months",
"category": 0, "property": "web", "date": "2026-11-01", "formattedTime": "Nov 1, 2026", "value": 60, "hasData": true, "isPartial": true}

Dates are YYYY-MM-DD. For the past hour, 4 hours, day and 7 days they are UTC timestamps like 2026-11-01T18:08:00Z.

Interest by region:

{"type": "interestByRegion", "requestId": "comparison-1", "term": "coffee", "geo": "US", "timeRange": "past-12-months",
"category": 0, "property": "web", "geoCode": "US-CA", "geoName": "California", "value": 65}

When several terms are compared, Google gives each region's split between the terms, so a region's values add up to about 100.

Related queries (kind is top or rising; rising values are percent growth, and Breakout means more than 5,000%):

{"type": "relatedQuery", "requestId": "comparison-1", "term": "tea", "geo": "US", "timeRange": "past-12-months",
"category": 0, "property": "web", "kind": "rising", "rank": 1, "query": "tea recipe 2026", "value": 4250,
"formattedValue": "+4,250%", "link": "https://trends.google.com/trends/explore?q=tea%20recipe%202026&date=today%2012-m"}

Related topics:

{"type": "relatedTopic", "requestId": "comparison-1", "term": "coffee", "kind": "top", "rank": 1, "topicId": "/m/041093",
"topicTitle": "Coffee", "topicType": "Topic", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=/m/041093&date=today%2012-m"}

The SUMMARY record in the run's key-value store has the status (ok, partial, no_data, rate_limited, time_limit, failed or invalid_input), requests made, succeeded and failed, every failure with its reason, rows saved and charged per type, whether the spending limit was reached, and notes such as terms with no data.

Pricing

$0.30 per 1,000 rows, charged per row saved. No start fee. Examples from real runs: 2 terms in the US over the past 12 months with every output is about 300 rows, so about $0.09. 5 terms worldwide over 5 years is about 1,900 rows, so about $0.57. 5 terms over 5 years with only interest over time is about 1,300 rows, so about $0.39.

If you set a maximum charge for a run, the Actor stops requesting as soon as it's reached and says so in SUMMARY.

Limits

  • Values are relative, not search counts. Google Trends gives a 0 to 100 index where 100 is the busiest point (or region) within the comparison. Different comparisons are not on the same scale unless you use an anchor term.
  • Google rate limits. Google decides how many requests it answers. Busy proxies, very long term lists and short schedules get more 429 answers. Residential proxies help. When Google refuses, you get a clear reason and no charge.
  • Related topics are often empty right now. Google gives them only for a term searched on its own, and in our November 2026 tests it sent the list back empty even for popular terms. When that happens the SUMMARY says so and nothing is charged.
  • Low-volume terms can have no data in some places or time ranges. They are listed in the SUMMARY notes and cost nothing.
  • Up to 100 terms per run, 5 per comparison. Custom ranges are whole days from 2004-01-01 to today.
  • This Actor reads the public Google Trends website data. It is not affiliated with Google.

More tools from the same developer