Google Trends Scraper: No Login Needed avatar

Google Trends Scraper: No Login Needed

Pricing

from $1.60 / 1,000 trend data points

Go to Apify Store
Google Trends Scraper: No Login Needed

Google Trends Scraper: No Login Needed

Extract Google Trends data without logging in: interest over time, interest by region, related queries and topics for up to 25 search terms, plus the daily trending searches feed for any country.

Pricing

from $1.60 / 1,000 trend data points

Rating

0.0

(0)

Developer

Vivien MORVAN

Vivien MORVAN

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Features

Limited permissions

Share

Scrape Google Trends data without logging in or solving a captcha: interest over time, interest by region, related queries and related topics for up to 25 search terms, plus the daily trending searches feed for any country.

At a glance

What you getInterest over time, interest by region, related queries, related topics, and the daily trending-searches feed, straight from Google Trends' own API.
Price$2.00 per 1,000 rows: a 50-row test run costs about $0.11, start fee included.
SpeedA single search term with interest over time returns about 50 rows in 5-10 seconds (measured: 53 rows in 7s). No login, no proxy, no browser to configure.
Try itClick Try for free: the form is already filled with 3 compared terms, region US, and interest over time, by region, related queries, related topics and trending-now all switched on.
Keep it freshSchedule it daily and keep only the new rows: see "Monitor new rows daily" below.

What you can do with it

  • Track a term's interest over time: weekly or daily search-interest values for any term, country and time range, ready for a dashboard or a report.
  • Compare up to 5 terms at once: Google's own comparison mode, normalized on the same 0-100 scale, in one call.
  • Compare one term across up to 5 regions: the same comparison mode, varied by region instead of term — see "Compare one term across regions" in the input.
  • Find related queries and topics: the "top" and "rising" searches and topics people associate with a term, with the exact value and link Google shows on its own site.
  • Watch what is trending right now: today's trending searches for any country, with approximate traffic and the news stories driving each trend.
  • Replace pytrends in Python without rewriting anything: pytrends-cloud keeps the TrendReq API and its pandas DataFrames and runs on this actor, so the 429 errors stop. See "Drop-in replacement for pytrends" below.

Ready-to-run input examples

Copy one of these into the input editor as is.

Track one term over time:

{
"searchTerms": ["ChatGPT"],
"geo": "US",
"timeRange": "today 12-m",
"interestOverTime": true
}

Compare several terms in one region:

{
"searchTerms": ["ChatGPT", "Claude AI", "Gemini AI"],
"geo": "US",
"timeRange": "today 12-m",
"interestOverTime": true,
"interestByRegion": true,
"relatedQueries": true
}

Today's trending searches:

{
"searchTerms": [],
"trendingNow": true,
"trendingGeo": "US"
}

Input

FieldWhat it does
Search terms1 to 25 terms. Up to 5 are compared together on the same scale in one call; more are split into separate batches of 5 that do not share a scale with each other.
Region (geo)Empty for worldwide, a country code (US, FR), or a sub-region (US-CA, GB-LON).
Time rangeA Google Trends range (now 7-d, today 12-m, today 5-y, all, ...).
Custom time rangeOptional, replaces "Time range": two dates such as 2024-01-01 2024-06-30, or to the hour for ranges under a week, such as 2024-01-01T00 2024-01-07T23.
CategoryGoogle Trends category ID. 0 means every category.
Propertyweb, images, news, youtube or froogle (Google Shopping).
Interface languageLanguage tag for region and topic names, such as en-US or fr.
Interest over time / by region, Related queries / topicsWhich outputs to fetch. At least one is required when search terms are given.
Interest by region: resolutionOptional level of detail: COUNTRY (worldwide only), REGION or CITY (worldwide or inside a country), DMA for US metro areas. Empty keeps Google's default.
Interest by region: include low-volume regionsAlso return the regions Google hides by default for their low search volume.
Compact outputOne result per search term and data type, with the whole series inside (points, regions, top and rising lists), instead of one row per date, region or related entry. Same data, far fewer results, so it costs much less. Not compatible with "Only new results".
Compare one term across regions2 to 5 region codes to compare a single search term across, on the same 0-100 scale in one call (Google's own "compare across regions" mode). Needs exactly one search term and is not compatible with "Interest by region"; "Region (geo)" is ignored when this is set.
Trending nowA separate mode: today's trending searches for one country. Works with or without search terms.
Trending now: countryTwo-letter country code for "Trending now" (US, FR, GB, IN, JP, ...).

Output

One record per data point. Five real results from live runs, one of each kind:

Interest over time:

{
"id": "ts::ChatGPT::US::today 12-m::1762646400",
"searchTerm": "ChatGPT",
"geo": "US",
"timeRange": "today 12-m",
"category": 0,
"property": "web",
"date": "2025-11-09T00:00:00.000Z",
"value": 100,
"isPartial": false
}

Interest by region:

{
"id": "geo::ChatGPT::US::today 12-m::US-CA",
"searchTerm": "ChatGPT",
"geo": "US-CA",
"timeRange": "today 12-m",
"category": 0,
"property": "web",
"regionName": "California",
"value": 94
}

Related queries:

{
"id": "relq::ChatGPT::US::today 12-m::top::what is chatgpt",
"searchTerm": "ChatGPT",
"geo": "US",
"timeRange": "today 12-m",
"category": 0,
"property": "web",
"type": "top",
"relatedQuery": "what is chatgpt",
"value": 100,
"link": "https://trends.google.com/trends/explore?q=what+is+chatgpt&date=today+12-m&geo=US"
}

Interest over time, comparing one term across regions ("Compare one term across regions" set to ["US-NY", "US-CA"]):

{
"id": "ts::pizza::US-NY::today 12-m::1762646400",
"searchTerm": "pizza",
"geo": "US-NY",
"timeRange": "today 12-m",
"category": 0,
"property": "web",
"date": "2025-11-09T00:00:00.000Z",
"value": 83,
"isPartial": false
}

Trending now:

{
"id": "trendingnow::US::d'andre swift::Sun, 8 Nov 2026 17:20:00 -0800",
"geo": "US",
"title": "d'andre swift",
"approxTraffic": "2000+",
"description": null,
"link": "https://trends.google.com/trending/rss?geo=US",
"pubDate": "2026-11-09T01:20:00.000Z",
"newsItems": [
{ "title": "Week 10 Fantasy Football Early Waiver Wire Pickups", "url": "https://sports.yahoo.com/...", "source": "Yahoo Sports" }
]
}

Related topics follow the same shape as related queries, with relatedTopic and relatedTopicType instead of relatedQuery.

category and property echo the "Category" and "Property" input fields on every row of the four comparison-based outputs (interest over time, interest by region, related queries, related topics), so rows from runs with different categories or properties can be told apart once exported or merged together. The trending-now feed has no category or property of its own and does not carry them.

FieldOn which rowsMeaning
categoryAll but trending nowThe "Category" input echoed back (0 = every category).
propertyAll but trending nowThe "Property" input echoed back (web, images, news, youtube or froogle).

Export the dataset as JSON, CSV or Excel, or read it through the Apify API.

Why this one

  • Measured reliability, not a promise. All 18 cloud runs so far succeeded with non-empty results, across varied terms, regions, time ranges, properties and the "trending now" mode (checked 13/11/2026). The Apify Store's current leader for this search fails 12% of its runs (checked the same day).
  • Built for the real failure mode. Google rate-limits this API with HTTP 429, not a JavaScript challenge. The actor spaces out its own requests, retries with backoff and respects Retry-After, and only reaches for a proxy after a 429 survives several spaced retries — datacenter first, residential only as a last resort.
  • Four outputs in one actor. Interest over time, interest by region, related queries, related topics and the trending-now feed, instead of a different tool per output.
  • No login, no browser. Reads Google Trends' own internal API and public RSS feed directly, so runs are fast and cheap.

Good to know

  • Values are relative (0-100) to the highest point in the selected set, exactly like the Google Trends website; they are not absolute search volumes.
  • When 2 to 5 items are compared in the same call, Google drops the related topics of all of them. The actor then asks for each item's related topics on its own, automatically, since related topics never share a scale anyway.
  • Related queries and related topics are sometimes empty for a given term: Google itself does not always have that data, regardless of how the request is made.
  • isPartial is true only for the most recent point of a still-accumulating time range, exactly as shown on the Google Trends website.
  • Only aggregated, publicly published Google Trends data is collected: no personal data of any kind.

Who uses it

  • SEO and content planning: find what people search for around a topic before writing or launching.
  • Market and brand monitoring: compare how your brand's interest moves against competitors, over time and by region.
  • Trend-driven alerts: schedule "Trending now" daily per country and feed the output into a newsletter, a Slack channel or a dashboard.

Pricing

Pay per result: $2.00 per 1,000 rows, plus $0.01 per run start with the default 4 GB of memory. For example, 500 rows cost about $1.01. You only pay for the rows you receive, and platform usage is included in that price. Store discounts apply automatically on paid Apify plans: up to 20% off every event on the higher tiers.

With Compact output, one result holds a whole series: 3 terms over 5 years of weekly interest is 3 results ($0.006) instead of 783 rows. Run with 512 MB of memory (plenty for this actor) and the start fee drops to $0.0025.

Run it from your code

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('bibian/google-trends-scraper').call({
searchTerms: ['ChatGPT', 'Claude AI'],
geo: 'US',
timeRange: 'today 12-m',
interestOverTime: true,
relatedQueries: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient(token="<APIFY_TOKEN>")
run = client.actor("bibian/google-trends-scraper").call(run_input={
"searchTerms": ["ChatGPT", "Claude AI"],
"geo": "US",
"timeRange": "today 12-m",
"interestOverTime": True,
"relatedQueries": True,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Drop-in replacement for pytrends

pytrends is archived and Google rate-limits it with HTTP 429. pytrends-cloud keeps its TrendReq API and its pandas DataFrames, and runs each call on this actor in compact mode:

# from pytrends.request import TrendReq
from pytrends_cloud import TrendReq # pip install pytrends-cloud
pytrends = TrendReq(hl="en-US", tz=360) # reads APIFY_TOKEN
pytrends.build_payload(["python", "javascript", "rust"], timeframe="today 12-m")
df = pytrends.interest_over_time()

interest_over_time, interest_by_region (with COUNTRY, REGION, CITY and DMA), related_queries, related_topics and the trending searches work as in pytrends, for about $0.01 per call.

Monitor new rows daily and connect your tools

  1. Schedule it. Save a task for a search and schedule it as often as you need with Apify Schedules. Tick Only new results in the input and each run returns, and charges, only the rows that earlier runs of the same search did not deliver.
  2. Push the results where you work. Add an Apify integration or a webhook to the task: Google Sheets, Slack, Make, Zapier, n8n or your own endpoint, triggered at the end of every run.
  3. Call it from your stack. The API and the JavaScript and Python clients return the dataset as JSON, CSV or Excel.
  4. Let an AI agent use it. Through the Apify MCP server, assistants such as Claude or ChatGPT can search the Store, read this page and run the actor as a tool.

Frequently asked questions

Do I need a Google account or a proxy? No. The actor reads Google Trends' own public API and RSS feed directly; no login, no cookies you need to provide.

Why does Google sometimes rate-limit this kind of tool? Google Trends' internal API enforces a per-IP rate limit (HTTP 429), independent of any login. This actor spaces out its requests and backs off automatically, and only escalates to a proxy when a block survives several spaced retries.

Can I compare more than 5 terms? Yes. Terms beyond the first 5 are processed in separate batches of 5; each batch is on its own 0-100 scale (that is how Google's own comparison works too).

Can I compare one term across several countries or regions instead? Yes, set "Compare one term across regions" to 2-5 region codes (for example ["US-NY", "US-CA"]) with exactly one entry in "Search terms". All regions then share the same 0-100 scale in one call, the same way Google's own "Compare across regions" works.

Which formats can I export? JSON, CSV, Excel, XML, HTML table or RSS, from the dataset page or through the API.

Is it legal to scrape? The actor collects publicly visible, aggregated Google Trends data and respects the robots.txt rules of the site. How you use the data is your responsibility: check Google's terms and the laws that apply to you, for example the GDPR.

Need another output or a missing field? Open an issue in the Issues tab and say what you need, with an example if you have one. Requests are read, and the most asked ones are built next.

Something does not work? Open an issue in the Issues tab. Every public actor is test-run daily and the broken ones are repaired.

Did this save you time? A short review on the Store page helps other people find the actor, and tells me what to improve next.