Google Trends Scraper (Reliable, Drop-in) avatar

Google Trends Scraper (Reliable, Drop-in)

Pricing

$4.00 / 1,000 keyword reports

Go to Apify Store
Google Trends Scraper (Reliable, Drop-in)

Google Trends Scraper (Reliable, Drop-in)

Google Trends interest over time, by region and city, plus related queries. Same input as apify/google-trends-scraper. No browser, hard per-term timeout, failed terms free.

Pricing

$4.00 / 1,000 keyword reports

Rating

0.0

(0)

Developer

Fifty50 Labs

Fifty50 Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Get Google Trends data for your keywords: interest over time, interest by region and city, and related queries. The input uses the same field names as apify/google-trends-scraper, so you can switch by changing only the Actor ID in your API call, schedule, Zapier/Make step or MCP tool.

What makes it different

  • No browser. It calls the JSON endpoints the Google Trends page itself loads, and runs at 256 MB of memory.
  • Hard timeout per term. Each term has a time limit (timeoutPerTermSecs, default 60 s). When it is reached, the Actor saves what it already has and moves to the next term. A run never waits forever on one keyword.
  • Results saved as they arrive. Each report is written to the dataset as soon as it is done, so an aborted run still keeps the finished terms.
  • Failed terms are free. You pay only for reports that contain interest-over-time data (status = ok or partial). Failed terms and terms with too little search volume are saved as rows with a reason, at no charge.
  • No start fee. There is no per-run charge.
  • Bounded retries. On HTTP 429 or 5xx it waits 2, 4, 8, then 16 seconds, always within the term's time limit, then marks the term failed with the reason.
  • No CAPTCHA solving, no proxies. If Google shows a CAPTCHA page, the term is marked failed. After 3 in a row, the remaining terms are marked "not attempted" so the run ends quickly instead of burning time.

Keep your input JSON. Change the Actor ID:

apify/google-trends-scraper → fifty50labs/google-trends-scraper-reliable

Supported input fields: searchTerms, isMultiple, timeRange, customTimeRange, geo, category, startUrls, spreadsheetId, maxItems, maxConcurrency, maxRequestRetries, pageLoadTimeoutSecs, viewedFrom, skipDebugScreen.

Differences you should know about:

FieldBehaviour here
viewedFromAccepted, no effect (this Actor uses no proxies).
skipDebugScreenAccepted, no effect (no browser, so no snapshots).
maxConcurrencyCapped at 3; 1 (default) is the most reliable with Google's rate limits.
maxRequestRetriesCapped at 6.
pageLoadTimeoutSecsUsed as the per-request HTTP timeout, capped at 30 s.
isMultipleAlso accepts the strings "true"/"false" in code.

New optional fields: timeoutPerTermSecs (15–300, default 60), property (images, news, froogle, youtube) and hl (label language, default en-US).

Input example

{
"searchTerms": ["web scraping", "electric cars"],
"geo": "US",
"timeRange": "today 3-m"
}

Compare up to 5 terms in one chart:

{ "searchTerms": ["iphone, samsung galaxy"], "isMultiple": true }

Or paste Google Trends URLs (the q, geo, date, cat and gprop parameters are read from the URL):

{ "startUrls": [{ "url": "https://trends.google.com/trends/explore?q=coffee&geo=GB&date=today%203-m" }] }

Output

One dataset item per term (or per comparison row). Field names follow apify/google-trends-scraper:

FieldContent
inputUrlOrTerm, searchTermWhat you asked for
interestOverTime_timelineData[{time, formattedTime, formattedAxisTime, value[], hasData[], formattedValue[], isPartial?}]
interestOverTime_averagesAverages (filled for comparisons)
interestByWorldwide: interest by country
interestBySubregion, interestByCityCountry geo: interest by region and by city
interestByMetroWhen Google returns metro-level data (e.g. US state URLs)
relatedQueries_top, relatedQueries_rising[{query, value, formattedValue, link}]
relatedTopics_top, relatedTopics_rising[{topic: {mid, title, type}, value, formattedValue, link}] (see limits)
statusok, partial, no_data or failed
error, missingSectionsWhy a report is not ok, and which sections are missing
geo, timeRange, durationSecs, scrapedAtRun details

In comparisons, each related query also carries the searchTerm it belongs to.

Pricing

Pay per event:

EventPrice
Keyword report (status ok or partial)$0.004
Failed term, no-data term, run start$0

Platform usage is included in the event price; you are not billed for compute separately.

Limits (read before relying on it)

  • Related topics are often empty. As of October 2026, Google returns an empty related-topics list to clients that are not a full browser. Related queries, interest over time and interest by region are returned normally. If Google changes this, the fields fill in without any change on your side.
  • Google rate-limits. There is no official public Google Trends API, and Google throttles automated traffic. Without proxies, very large batches can get HTTP 429 responses. Those terms come back as failed (free) with the reason; re-run them later. For large lists, keep maxConcurrency at 1.
  • No uptime guarantee. Google can change these endpoints at any time. The Actor is built to fail fast and visibly (an error row, not a hung run) when that happens.

Our test runs

Measured on the Apify platform on 12 October 2026, 256 MB memory, no proxy:

TestResult
5 terms, US, past 12 months (web scraping, bitcoin, electric cars, taylor swift, chatgpt) plus one blank row5/5 ok, blank row skipped, 104 s total
Comparison (iphone, samsung galaxy), Google Trends URL (coffee, GB, 3 months), custom range 2025, and one nonsense term2/2 ok; nonsense term no_data (not charged)
Charging check: solar panels, pizza, a nonsense term, and a US-CA Google Trends URL (hiking)3 reports charged, nonsense term no_data and not charged; US-CA returned interestByMetro
Forced hang in one section (local test)Term saved as partial with missingSections at the 20 s limit

These are small test runs, not a long-term success rate.

The Actor reads public, aggregated, non-personal Google Trends data, the data shown on the Google Trends website. Google's terms discourage automated access, so check that your use fits your own legal requirements.

Feedback

Found a term that fails or a field that differs from what you expected? Open an issue on the Issues tab with the input you used.