Google Trends (reliable) avatar

Google Trends (reliable)

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Google Trends (reliable)

Google Trends (reliable)

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Vasilis Linakis

Vasilis Linakis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Trends data for your search terms, as clean JSON. Get interest over time, interest by region, related queries and related topics for one term or for up to five terms compared in one chart. Any term that fails gets an explicit error record, and you are never charged for it.

Use it to track demand for a product category, compare brands, time content and campaigns, or find rising queries in a market.

Why use it

  • Reliable by design. Each term (or comparison group) runs in isolation, so one failure never fails the run. When Google rate-limits a request (HTTP 429), the Actor waits as long as Google asks (Retry-After), or backs off exponentially, and tries again, up to 3 times per term. Then it writes an error record and moves on.
  • You pay only for data. Only result records are charged. Errors, terms with no data and the closing summary record are free.
  • Honest about gaps. If Google does not provide a section for a request, the record says so in warnings instead of returning silent empty data.
  • Polite. The Actor reads robots.txt at the start of every run and honours it. It uses only the Trends data API (/trends/api/...) and never requests the explore pages. It sends at most one request per second and identifies itself with a descriptive User-Agent.

Input

FieldWhat it does
searchTermsRequired. Terms to look up, e.g. ["web scraping"]. Topic ids such as /m/05z1_ also work.
compareModeOff (default): one record per term, each scaled 0-100 on its own. On: terms compared in groups of up to 5, one record per group, with values scaled together.
timeRangenow 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m (default), today 5-y or all.
customTimeRangeExact dates, "YYYY-MM-DD YYYY-MM-DD". Overrides timeRange.
geoCountry or region code (US, GB, US-CA). Empty = worldwide.
categoryGoogle Trends category id; 0 = all (default).
gpropweb (default), images, news, froogle (Shopping) or youtube.
interestOverTimeTime series. On by default.
interestByRegionInterest by subregion. On by default.
relatedQueriesTop and rising related queries. On by default.
relatedTopicsTop and rising related topics. Off by default (see Limitations).
hlLanguage for labels and region names, default en-US.
tzUTC offset in minutes, Google's convention (300 = UTC-5), default 0.

Example:

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

Output

Each dataset item has a type field:

  • result is one term or one comparison group, with the sections you asked for.
  • error is one term or group that failed. It has an error_code (invalid_input, robots_disallowed, robots_unavailable, rate_limited, blocked, consent_required, http_error, network_error, bad_response, parse_error, no_data or skipped) and a message. You are not charged for it.
  • summary is one per run, with counts, the number of requests made and the duration.
{
"type": "result",
"searchTerm": "web scraping",
"searchTerms": ["web scraping"],
"comparison": false,
"geo": "US",
"timeRange": "today 12-m",
"timeRangeResolved": "2025-10-25 2026-10-25",
"category": 0, "gprop": "web", "hl": "en-US", "tz": 0,
"interestOverTime": {
"resolution": "WEEK",
"averages": null,
"points": [{"time": "2025-10-19T00:00:00Z", "formattedTime": "Oct 19 – 25, 2025", "isPartial": false, "values": {"web scraping": 66}}]
},
"interestByRegion": {
"resolution": "REGION",
"regions": [{"geoCode": "US-MD", "geoName": "Maryland", "values": {"web scraping": 100}}]
},
"relatedQueries": {
"web scraping": {
"top": [{"query": "ai web scraping", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=ai+web+scraping&date=today+12-m&geo=US"}],
"rising": [{"query": "...", "value": 11900, "formattedValue": "Breakout", "link": "..."}]
}
},
"warnings": [],
"exploreUrl": "https://trends.google.com/trends/explore?q=web+scraping&date=today+12-m&hl=en-US&geo=US",
"scrapedAt": "2026-10-25T09:53:59Z"
}

values are keyed by search term, so a comparison record holds every term's value in each point and region. Values are Google's relative 0-100 index, not search counts. In a comparison, region values are each term's share in that region. A null value means Google has no data for that point.

Pricing

Pay per event: $0.01 per result record ($10 per 1,000 results), plus a $0.00005 start fee per run. You pay nothing for error or summary records, and there is no extra charge for platform usage. If you set a maximum cost per run, the Actor stops cleanly at that limit and makes no further requests to Google.

Responsible use

  • Allowed paths only. The Actor uses the Trends data API, which Google's robots.txt allows. It never requests /explore or /trends/explore pages, which robots.txt disallows, and it checks every URL against the live robots.txt before requesting it.
  • No circumvention. It never rotates IP addresses or sessions, uses no headless browser and fakes no browser fingerprint. A captcha, an "unusual traffic" page, a 401 or 403 response or a consent wall stops that term at once, with no retry, and the Actor then skips the rest of the run rather than keep trying. After two terms fail on rate limiting, it skips the remaining terms too.
  • Aggregate data only. Google Trends data is anonymised, aggregated search interest. It holds no personal data.
  • You are responsible for your use. Comply with applicable law and with Google's terms. Google Trends data is a sample, normalised to 0-100, so treat it as a relative signal, not as search volume.
  • Contact: open an issue on the Issues tab of this Actor's page (https://apify.com/reliable-apps/google-trends-reliable/issues).

Limitations

  • Rate limits. Google limits how often Trends can be queried, and it limits shared cloud IP addresses most. By design the Actor does not work around this, so large batches can end with rate_limited errors. Smaller batches and longer gaps between runs help. You are never charged for those errors.
  • Related topics are not available in comparison mode, and Google often returns the list empty. In that case the record carries a warning.
  • Comparisons hold at most 5 terms. Longer lists are split into groups of 5, and values are comparable only within a group.
  • Values are relative (0-100) and Google samples them, so two runs can differ slightly.