Google Trends Scraper & API + Trending Now avatar

Google Trends Scraper & API + Trending Now

Pricing

from $2.00 / 1,000 keyword results

Go to Apify Store
Google Trends Scraper & API + Trending Now

Google Trends Scraper & API + Trending Now

Google Trends scraper and pytrends alternative: interest over time, by region, state and city, related queries (top + rising), compare up to 5 keywords, and Trending now for any country. No browser, 256 MB. 97.5% of queries complete in a 160-query test; failed queries are never charged.

Pricing

from $2.00 / 1,000 keyword results

Rating

0.0

(0)

Developer

Mit Parekh

Mit Parekh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 minutes ago

Last modified

Categories

Share

Google Trends Scraper gets Google Trends data as clean JSON, CSV or Excel, with no browser and no Google API key. It returns interest over time, interest by region, state, metro and city, related queries (top and rising), keyword comparisons of up to 5 terms, and Trending now searches for any country. You can run it from the Apify Console, call it as a Google Trends API from Python or JavaScript, or plug it into n8n, Make, Zapier and AI agents.

It is built for reliability rather than speed alone. In a 160-query test on the Apify platform (India, US and UK, mixed time ranges, categories and comparisons):

  • ✅ 156 of 160 queries (97.5%) returned every requested data block. The other 4 were partial and none failed.
  • ⚡ Median time per query: about 13 seconds (p90: 45 s), with 3 queries running in parallel.
  • 💸 Error records are never charged. You pay only for results that contain data.
  • 🪶 Runs on 256 MB of memory, because it makes small JSON requests instead of loading pages in a headless browser.
DataWhat you get
Interest over timeThe 0–100 timeline for 1 keyword, or up to 5 keywords compared, plus the average per keyword
Interest by regionCountries (worldwide), states and subregions (for example every Indian state or US state), US metros (DMA), or cities
Interest by cityAn optional separate city list, sorted by interest (for example Mumbai, Delhi, Bengaluru)
Related queriesTop and Rising queries for each keyword, including "Breakout" values
Trending nowTrending searches for any country: search volume, % increase, start and end time, categories, related searches, and optional news links
Related topicsCurrently empty. Google returns no related topics to automated requests (see Limitations)

Every filter from the Google Trends website is supported:

  • Location: worldwide, any country, subregions such as IN-MH (Maharashtra) or US-CA, and US metros such as US-NY-501
  • Time range: past hour, 4 hours, day, 7 days, 30 days, 90 days, 12 months, 5 years, 2004 to present, or a custom range such as 2024-01-01 2024-12-31
  • Category: all 25 top-level Google Trends categories
  • Search type: Web search, Image search, News search, YouTube search or Google Shopping
  • Topics: Knowledge Graph topic IDs such as /m/0d6lp instead of plain keywords
  • URLs: paste trends.google.com/trends/explore?... links directly
  • No headless browser. Nothing waits for slow pages to load, so there are no page timeouts, and the low memory use keeps platform costs down.
  • Designed for Google's rate limits. The Actor paces requests per session, backs off with jitter when Google answers HTTP 429, honors Retry-After, rotates sessions and proxy IPs, retries each data block up to 3 times and each query up to 3 times, and switches to residential proxies if your chosen proxy group keeps getting blocked.
  • One bad query never kills the run. Each query becomes its own dataset item with status: ok | partial | error. Partial results keep the data blocks that worked and list the failed ones in errors.
  • Clear data-quality flags. Every item has warnings and googleUserType, so you can see when Google had too little search volume or withheld data.
  • India-friendly. Interest by Indian state and city, state-level locations such as IN-MH and IN-KA (both in the test set), and IST timestamps via timezoneOffset: -330.
  • Spending cap. Set Maximum cost per run and the Actor stops cleanly when it reaches the limit.
  1. Click Try for free (or Start).
  2. Enter keywords in Search terms, one query per line. To compare keywords like the Compare button on the website, put up to 5 comma-separated terms on one line: tea, coffee.
  3. Pick a location, a time range and, optionally, a category or search type (for example YouTube).
  4. Optionally turn on Trending now and pick a country.
  5. Click Start and download the results as JSON, CSV, Excel or HTML, or read them via the API.

The prefilled example finishes in well under a minute.

  • Keyword research and SEO: check seasonality, rising queries and which regions search most before you write content.
  • Product and market research: compare brands or products (for example zomato, swiggy, zepto) across countries and states.
  • Content calendars and newsjacking: pull Trending now every hour or day with a schedule and send it to Slack or Google Sheets.
  • Data science and dashboards: feed weekly time series into BigQuery, Snowflake or a notebook without maintaining a pytrends script.
  • AI agents: give an agent live Google Trends data through the Apify MCP server.

💡 Need keywords to check first? Keyword Ideas collects thousands of long-tail and question keywords from Google, YouTube, Bing and Amazon autocomplete, and saves the best ones as a ready-made input for this Actor.

Input examples

Compare keywords in India over the past 12 months

{
"searchTerms": ["tea, coffee", "zomato, swiggy, zepto"],
"geo": "IN",
"timeRange": "today 12-m"
}

Each line is one query. Comma-separated terms on a line are compared against each other (up to 5, Google's limit).

The same keywords in several countries, with a custom date range, category and city breakdown

{
"searchTerms": ["electric scooter", "home loan"],
"geos": ["IN", "US", "GB", "IN-MH"],
"customTimeRange": "2025-01-01 2025-12-31",
"category": "7",
"regionResolution": "CITY"
}

From Google Trends URLs (YouTube search and a 7-day range)

{
"startUrls": [
{ "url": "https://trends.google.com/trends/explore?q=iphone&geo=US&gprop=youtube" },
{ "url": "https://trends.google.com/trends/explore?q=cricket&geo=IN&date=now%207-d" }
]
}

Trending now in India, past 24 hours, Sports and Technology only

{
"includeTrendingNow": true,
"trendingGeo": "IN",
"trendingHours": "24",
"trendingCategories": ["17", "18"],
"trendingMaxItems": 100
}

Output example

You get one dataset item per query (shortened here):

{
"type": "keyword",
"status": "ok",
"searchTerm": "tea, coffee",
"terms": ["tea", "coffee"],
"geo": "IN",
"timeRange": "today 12-m",
"resolvedTimeRange": "2025-10-20 2026-10-20",
"categoryName": "All categories",
"searchProperty": "web",
"trendsUrl": "https://trends.google.com/trends/explore?q=tea%2Ccoffee&date=today%2012-m&hl=en-US&geo=IN",
"interestOverTime": {
"averages": [{ "term": "tea", "value": 45 }, { "term": "coffee", "value": 61 }],
"timeline": [
{ "timestamp": 1791676800, "date": "2026-10-11T00:00:00.000Z", "formattedTime": "Oct 11 – 17, 2026",
"values": { "tea": 41, "coffee": 62 }, "hasData": true, "isPartial": false }
]
},
"interestByRegion": [
{ "geoCode": "IN-NL", "geoName": "Nagaland", "values": { "tea": 63, "coffee": 37 }, "hasData": true }
],
"regionResolution": "REGION",
"relatedQueries": [
{ "term": "tea",
"top": [{ "query": "green tea", "value": 100, "formattedValue": "100", "link": "https://trends.google.com/trends/explore?q=green+tea&date=today+12-m&geo=IN" }],
"rising": [{ "query": "madhur virli casual tea", "value": 1100, "formattedValue": "+1,100%", "link": "..." }] }
],
"relatedTopics": [{ "term": "tea", "top": [], "rising": [] }],
"errors": [],
"warnings": ["Google does not provide related topics for comparisons; run terms separately to get them."],
"googleUserType": "USER_TYPE_SCRAPER",
"attempts": 1,
"durationMs": 9268,
"scrapedAt": "2026-10-20T10:45:56.069Z"
}

A Trending now item:

{
"type": "trendingNow", "status": "ok", "rank": 2, "title": "happy dussehra wishes", "geo": "IN",
"startedAt": "2026-10-19T12:40:00.000Z", "endedAt": null, "isActive": true,
"searchVolume": 200000, "increasePercentage": 1000, "categories": ["Hobbies and Leisure"],
"relatedSearches": ["happy dussehra wishes", "dussehra wishes", "happy dasara"],
"exploreLink": "https://trends.google.com/trends/explore?q=happy%20dussehra%20wishes&geo=IN&date=now%201-d"
}

A failed query (free, not charged):

{ "type": "keyword", "status": "error", "searchTerm": "pune weather", "geo": "XX",
"error": "explore: HTTP 400 Error 400 (Bad Request)!!1 - Google rejected the query parameters (check the location code, time range and category).",
"attempts": 1 }

The dataset has ready-made views: Overview, Interest over time, Interest by region, Related queries & topics and Trending now. A RUN_SUMMARY record in the key-value store shows how many queries succeeded, were partial or failed, plus request and HTTP 429 counts.

This Actor uses pay-per-event pricing. You pay only for results with data. There is no start fee, and proxy and compute usage are included in the price.

EventWhat counts as one eventPrice
trend-resultOne successful or partial keyword result. One result = one line of search terms (a single keyword or a comparison of up to 5) × one location × one time range, with all selected data blocks.$2.00 per 1,000 ($0.002 each)
trending-topicOne Trending now topic$0.50 per 1,000 ($0.0005 each)
Error recordA query that failed after all retriesFree

Cost examples

JobResultsCost
50 keywords in one country50 trend-result$0.10
20 comparisons × 5 countries (IN, US, GB, DE, BR)100 trend-result$0.20
1,000 keywords1,000 trend-result$2.00
Top 100 Trending now topics for one country, daily for 30 days3,000 trending-topic$1.50

Apify's free plan includes monthly platform credit you can use to try the Actor.

You need an Apify API token.

Python (pip install apify-client)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("mitp1997/google-trends-scraper-reliable").call(run_input={
"searchTerms": ["tea, coffee"],
"geo": "IN",
"timeRange": "today 12-m",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["searchTerm"], item["status"], item.get("interestOverTime", {}).get("averages"))

JavaScript / Node.js (npm install apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('mitp1997/google-trends-scraper-reliable').call({
searchTerms: ['tea, coffee'],
geo: 'IN',
timeRange: 'today 12-m',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

A single HTTP call (runs the Actor and returns the items when it finishes; best for small jobs)

curl -X POST "https://api.apify.com/v2/acts/mitp1997~google-trends-scraper-reliable/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["tea, coffee"], "geo": "IN"}'

n8n: add the Apify node, choose the Run an Actor operation, select mitp1997/google-trends-scraper-reliable, paste the JSON input, then read the run's dataset items in the next step. You can also use the HTTP Request node with the URL above.

Make: use the Apify app's Run an Actor module, then Get Dataset Items, and map the results to Google Sheets, Airtable or Slack.

Zapier, Google Sheets, Slack and webhooks: use the Integrations tab of the Actor or a saved task. To track trends over time, add a Schedule, for example daily Trending now for your country.

AI agents (MCP): connect Claude, Cursor or another MCP client to https://mcp.apify.com?tools=mitp1997/google-trends-scraper-reliable and ask for Google Trends data in plain language.

FAQ

Is this a pytrends alternative? Yes. pytrends is an unofficial Python library (its GitHub repository is now archived) that calls the same Google Trends endpoints from your own machine, so heavy use often hits HTTP 429 "Too Many Requests" errors, and you have to manage proxies and retries yourself. This Actor runs in the cloud with Apify Proxy, retries and session rotation built in, and returns structured JSON or CSV. You can call it from Python with a few lines (see above) instead of maintaining your own scraper.

Is there an official Google Trends API? Google announced an official Google Trends API in July 2025, but it is still an alpha with access by application only. This Actor works today for anyone and also covers Trending now, region and city breakdowns, and related queries.

Do I need a proxy? Yes, because Google rate-limits single IP addresses aggressively. The default is Apify RESIDENTIAL proxy, and it is included in the price. In our tests, Apify datacenter proxies were blocked within the first minute. If you choose another group, the Actor switches to residential automatically when it keeps getting blocked (you can turn this off).

How many keywords can I compare? Up to 5 per query, which is Google's limit. With Compare all terms together, longer lists are split into groups of 5. Values are only comparable within one group, because Google scales each query to 0–100 on its own.

Why are the values 0–100 and not search volumes? Google Trends Explore returns relative interest only: 100 is the peak for your terms, location and time range. Trending now does include Google's approximate search volume, such as 200000 (shown as "200K+" on the website).

What does isPartial: true mean? The last time period has not finished yet. This matches the dotted line on the Trends chart.

Which timezone is used? Set timezoneOffset in minutes west of UTC, like Google's tz parameter: -330 for India (IST) or 300 for US Eastern. The default is 0 (UTC).

Can I get YouTube, News or Shopping trends? Yes. Set Search type to YouTube search, News search, Image search or Google Shopping.

What happens if Google blocks a query? The Actor retries it with new sessions and IPs. If it still fails, you get a free status: "error" record that explains why, and the rest of the run continues.

Limitations

  • Related topics: in our tests (October 2026), Google labelled every automated request USER_TYPE_SCRAPER and returned empty related topics. This happened on datacenter IPs, on residential IPs and even from a real headless Chrome browser. Related queries (top and rising) are not affected. The warnings field flags it, and the Actor will return topics again if Google starts sending them. Google also never provides related topics when you compare 2 or more terms.
  • Low-volume keywords: Google returns zeros and empty lists when there isn't enough data. You get a warning and the result is still ok.
  • City-level data is sparse for some countries. Cities with no data are dropped unless you enable Include low search volume regions.
  • News in Trending now comes from Google's public RSS feed, so it is only attached to topics that also appear in that feed (usually a handful).
  • This Actor reads public, aggregated, non-personal data. Google may change its internal endpoints. If that happens, the Actor will be updated. Please report problems in the Issues tab.

More data Actors

  • Keyword Ideas: long-tail and question keywords from Google, YouTube, Bing and Amazon autocomplete.
  • Google Ads Transparency Scraper: every ad a competitor runs on Google Search, Display and YouTube, with ad text, images, videos, dates and regions.
  • Google Jobs Scraper: job listings with salaries and direct apply links.
  • Telegram Channel Scraper: posts, views, reactions, media and exact subscriber counts from public Telegram channels, no login.