agenttoolworks

An Apify Actor live

Google Trends scraper, and the Google Trends API you can call today

Give it search terms, comparisons of up to five terms, or Google Trends links. Get one row per query with interest over time, interest by region and related queries, the numbers the explore page shows. Or read the whole Trending now list of a country, one row per search. Up to 2,000 queries a run, logged out, and a query Google has no data for is never charged.

Two search terms and a comparison go in; the Actor reads the explore widgets over parallel sessions and returns one row per query with averages, interest over time, interest by region and related queries; a second mode returns the Trending now list of a country
The row and the counts are from two real cloud runs of 2026-10-13, trimmed for space.

What you get

Everything the explore page shows, as rows.

Series come in long format, one element per date and term, so one term and five terms have the same shape, and each section opens as its own flat table in Apify Console or through the API. Every key is on every row, null or empty when Google gives nothing.

SectionWhat comes back
Interest over timeOne point per date (or hour, or minute) and term, 0 to 100, Google's date label, and a flag on the last, still partial, point
AveragesGoogle's average per term over the period, in a comparison
Interest by regionCountries, regions or states, US metro areas or cities (with coordinates), per term, with each term's share in a comparison
Related queriesTop (0 to 100) and rising (+2,000% or Breakout) for each term, with a link to each on Google Trends
Related topicsOpt-in, returned when Google sends them (see the limits)
ContextThe period and bucket Google resolved, category, search type (web, images, news, YouTube, Shopping), a link to the same chart, a status and notes
Trending nowOne row per trending search: volume bucket and lower bound, increase, start and end time, active flag, categories, the trend breakdown, a link
The Interest over time view of a real run in Apify Console: one row per week and term with Google's date label, the interest value, and the partial and has-data flags
The Interest over time view of a real run, in Apify Console.

How it works

The requests the page makes, spread over many IPs.

The Related queries view of a real run in Apify Console: for each term, top and rising related queries with Google's value and a link to each on Google Trends
The Related queries view of the same run.

Measured in the cloud

Every query ends with a row and a status.

109 / 110runs succeeded on 2026-10-05; the one failure was an empty input, refused by design
0failed queries in 1,297 explore queries
12 smedian one-query run, in a pass of 33 mixed inputs (worst 183 s)
3.4 srun time for the full US Trending now list, 467 searches

Google's rate limit decides the speed. The same three queries took 126 seconds (27 of 79 requests answered HTTP 429, the residential fallback used) and then 6 seconds (no 429), nineteen minutes apart on 2026-10-13.

Measured against the leaders

The two most used Google Trends scrapers on Apify, point by point.

apify/google-trends-scraper and data_xplorer/google-trends-fast-scraper, from their public Store data, reviews and issues, read on 2026-10-05. We ran neither. Ours from our own cloud runs.

Pointapify/google-trends-scraperdata_xplorerThis Actor
Price per 1,000 results$3.00 on the free tier (down to $0.10 on Diamond), plus platform usage, 4 GB default memory$2.00 (down to $0.50), plus $0.02 per run start, announced to rise to $0.025 on 2026-10-10$1.50 per 1,000 queries with data, plus $0.003 per run, usage included
Query with no dataCharged (reviews: a costly test run with no result)Not publishedNever charged, returned with the reason
Runs that succeeded59.3% of 21,396 runs in 30 days (4,809 timed out, 3,220 aborted)99.5% of 46,009 runs in 30 days109 of 110 runs on 2026-10-05 (the failure: an empty input, refused by design); 0 failed queries in 1,297
Comparison of termsYesNo2 to 5 terms on one scale
Related queriesYesNoTop and rising, per term
Interest by regionSubregion, city, metro through a URLInside one countryCountry, region, US metro, city, with shares
Search type (images, news, YouTube, Shopping)Not an inputNoYes
BatchList, Google Sheet, URLsOne keyword per runUp to 2,000 queries, URLs, duplicates dropped
Trending nowNoUp to 1,000 items in one row per runThe whole list, one row per search

Where we lose: the leader has years of runs and Google Sheet input, and lists related topics, which Google does not give a logged-out visitor; data_xplorer's success rate is measured over 46,009 runs, ours over 110 of our own. At volume, the leader's top tier ($0.10 per 1,000 plus usage) is cheaper than our flat price.

A real run

Two terms and a comparison in the United States, 6 seconds.

This input returned three rows on Apify on 2026-10-13 (run jXvebT4vxVZRx5pT1, $0.0002 of platform usage). The comparison row, trimmed:

input
{
  "searchTerms": ["matcha", "cold brew"],
  "comparisons": ["coffee, tea"],
  "geo": "US",
  "timeRange": "today 12-m"
}
a queryreal
{
  "query": "coffee vs tea",
  "geo": "US",
  "resolvedTimeRange": "2025-10-13 2026-10-13",
  "timeResolution": "WEEK",
  "status": "ok",
  "averages": [
    { "averageTerm": "coffee", "averageValue": 79 },
    { "averageTerm": "tea", "averageValue": 38 }
  ],
  "interestOverTime": [
    { "dateLabel": "Oct 12 - 18, 2025", "term": "coffee", "value": 64, "isPartial": false },
    { "dateLabel": "Oct 12 - 18, 2025", "term": "tea", "value": 34, "isPartial": false },
    "...",
    { "dateLabel": "Oct 11 - 17, 2026", "term": "coffee", "value": 74, "isPartial": true }
  ],
  "interestByRegion": [
    { "regionName": "Wyoming", "term": "coffee", "value": 100, "sharePercent": 71 },
    { "regionName": "Wyoming", "term": "tea", "value": 100, "sharePercent": 29 },
    "..."
  ],
  "relatedQueries": [
    { "term": "coffee", "ranking": "top", "relatedQuery": "coffee near me", "relatedLabel": "100" },
    { "term": "tea", "ranking": "rising", "relatedQuery": "how to make cold brew tea", "relatedLabel": "+2,000%" },
    "..."
  ],
  "notes": [],
  "trendsUrl": "https://trends.google.com/trends/explore?date=today+12-m&geo=US&q=coffee%2Ctea&hl=en-US"
}
The Trending now view of a real run in Apify Console: the United States list over the past 24 hours with search volume, increase, start time, active flag, categories and trend breakdown
The Trending now view of another run the same day: 467 searches for the US.

Limits

What it does not do, said up front.

Ready-to-run examples

Open one, change the input, run it.

Each example opens the Actor on Apify with its input filled in. All examples on the Apify Store.

Pricing

Pay per query with data.

$1.50 per 1,000 queries with data ($0.0015 each), every section included; $0.02 per 1,000 Trending now rows; $0.003 per run start. Billed by Apify, platform usage and proxies included. One keyword costs $0.0045; the whole US Trending now list about $0.012. A query without data, a failed query or a duplicate is never charged. Apify's free plan covers about 3,300 queries a month in batches.

For developers

A Google Trends API in one HTTP call.

Run it and get the rows back in the same request through the Apify API. Snippets for Node.js and Python are in the Actor's README.

http
curl -X POST "https://api.apify.com/v2/acts/agenttoolworks~google-trends-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"comparisons": ["coffee, tea"], "geo": "US", "timeRange": "today 5-y"}'

Questions

Is there a Google Trends API?

Google announced its own Trends API as an alpha with access by application. This Actor needs no application: it makes the same requests the public Google Trends page makes, logged out, and returns interest over time, interest by region, related queries and the Trending now list as JSON rows, through the Apify API or any Apify integration.

Do I need a Google account or an API key?

No. No account, no API key, no cookie from a signed-in browser. The only cookie is the one Google gives any visitor on a first page view.

Why do Google Trends scrapers get HTTP 429?

Google rate-limits Trends per IP address. From one laptop, about 140 quick requests got the address refused for more than 75 minutes, and a new cookie did not help. The Actor spreads queries over parallel sessions with their own IPs, moves a refused request to a new IP, and hands a session that keeps failing to residential IPs. The same three queries took 126 s under that pressure and 6 s without it, nineteen minutes apart.

What does it cost?

$1.50 per 1,000 queries with data ($0.0015 each), $0.02 per 1,000 Trending now rows, and $0.003 per run start, billed by Apify with platform usage included. A query without data, a failed query and a duplicate are never charged. One keyword costs $0.0045; Apify's free plan covers about 3,300 queries a month in batches.

Does it return related topics?

Only when Google sends them, which it did not for logged-out visitors in any of our tests, from a laptop or from Apify's datacenter and residential IPs, while a signed-in browser showed them. The Actor never signs in, so related topics are opt-in and the row says when they are empty. Related queries, interest over time and by region are returned in full.

How many queries can one run read?

Up to 2,000 search terms, comparisons or Google Trends URLs. In our cloud runs, 100 queries took 74 to 159 seconds and 200 queries 329 to 516 seconds, depending on Google's rate limit.

Aggregated, anonymized search interest only: no personal data, no login, no account. Not affiliated with Google or Apify.