Google Trends Scraper avatar

Google Trends Scraper

Pricing

from $1.00 / 1,000 search terms

Go to Apify Store
Google Trends Scraper

Google Trends Scraper

Google Trends API alternative: interest over time, by region and city, related and Breakout queries, and today's trending searches. Blocked requests retry on fresh IPs. Pay only for terms that return data.

Pricing

from $1.00 / 1,000 search terms

Rating

0.0

(0)

Developer

AnglerCrawl

AnglerCrawl

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Security

Limited permissions

Share

Google Trends Scraper extracts data from Google Trends for any keyword, country and time range. It works as a Google Trends API, which Google doesn't otherwise offer to the public. You get interest over time, interest by region and city, related and rising queries (including Breakout searches) and today's trending searches, as JSON, CSV or Excel.

It is also a maintained pytrends alternative: the popular pytrends Python library has been archived and no longer gets fixes when Google changes Trends.

Google throttles automated Trends traffic hard. This scraper retries every throttled request on a fresh IP address, so one blocked term never fails your whole run, and you pay only for search terms that return data.

Google Trends shows what people are searching for, and how that changes over time and between places. Common uses:

  • 📈 SEO and content planning: find rising queries before they peak and compare keyword demand across countries.
  • 🛒 E-commerce and product research: spot seasonal demand and compare brands or products.
  • 💹 Market and investment research: use search interest as a signal for companies, coins or consumer trends.
  • 📰 Newsrooms and social media teams: track what is trending right now in each country.
  • 🎓 Academic research: download long time series (back to 2004) for many terms without clicking through the website.

What this Actor adds on top of the Google Trends website:

  • Bulk keywords: scrape hundreds of terms in one run, each on its own 0-100 scale, or compare up to 5 terms on a shared scale exactly as the website does.
  • Headline numbers per term: average interest, peak and peak date, latest value, and trend change between the start and end of the period, ready to sort in a spreadsheet.
  • Every Google search type: web, image, news, Google Shopping and YouTube search.
  • Region, city and US metro (DMA) breakdowns.
  • Spreadsheet-ready views: one row per date, per region or per rising query, without writing code.
  • Built for reliability: browser-grade connections, automatic retries on new IPs with backoff, and residential proxy fallback when Google keeps blocking.
  • All Apify platform features: scheduling, API access, integrations (Google Sheets, Slack, Zapier, Make, webhooks) and monitoring.
FieldDescription
searchTermThe keyword or topic you entered
averageInterest, peakInterest, peakDate, latestInterestHeadline numbers for the period (0-100 scale)
trendChangePercentHow much interest grew or fell from the first to the last quarter of the period
interestOverTimeInterest for every hour, day, week or month in the period
interestByRegionCountries, regions, cities or US metros ranked by interest
relatedQueriesTopThe most popular related searches
relatedQueriesRisingThe fastest-growing related searches, with growth in percent and Breakout flags
relatedTopicsTop, relatedTopicsRisingRelated topics, when Google provides them
exploreUrlLink to the same search on Google Trends, to check any row by eye
trendingSearch, approxTraffic, newsArticlesTrending now: today's trending searches, search volume estimates and linked news stories
  1. Click Try for free to open the Actor in Apify Console (a free account is enough).
  2. Under What to scrape, keep Search terms, or choose Trending now for today's trending searches.
  3. Enter your keywords, one per line.
  4. Pick a Time range, Location, and optionally a Category or Search type such as YouTube.
  5. Click Start and wait for the run to finish. Most runs take a few seconds per keyword.
  6. Open the Output tab and choose a view (Overview, Interest over time, Interest by region, Rising queries), then export as CSV, Excel or JSON.

This Actor uses pay per event pricing. You pay only for search terms that return data. Terms where Google has no data, or that fail, are free. Platform usage (servers and proxies) is included in the price, and the start fee is a negligible $0.00005 per run.

Your Apify planPrice per 1,000 search terms
Free$2.50
Starter (Bronze)$1.50
Scale (Silver) and higher$1.00

Trending now mode costs $0.50 per 1,000 trending searches on every plan.

A search term includes everything you switch on for it: interest over time, region breakdown and related queries. Apify's Free plan includes monthly credits that cover roughly 2,000 search terms a month. You can set a maximum cost per run in the run options, and the Actor stops cleanly when it is reached.

Input

See the Input tab for every option. Some notes:

  • Search terms can be plain keywords or Google topic IDs such as /m/05p0rrx (Bitcoin the currency). Topics combine spellings and languages; keywords match the exact text.
  • Compare terms on one scale: off by default, so every term gets its own 0-100 scale, which is best for bulk research. Turn it on to compare terms against each other. Terms are grouped in fives, the most Google allows on one scale, so values are only comparable within a group.
  • Time range accepts presets (now 7-d, today 12-m, today 5-y, all) or custom ranges such as 2024-01-01 2024-06-30, or 2024-06-01T00 2024-06-05T23 for hourly data. Google picks the bucket size, from one minute for the past hour, through days for a few months and weeks for 5 years, to one month for 2004 to present. timeResolution in each row tells you which one you got.
  • Location takes a country or a region code you type, such as US-CA or GB-ENG.

Example input:

{
"searchTerms": ["electric car", "hybrid car", "heat pump"],
"timeRange": "today 5-y",
"geo": "US",
"includeRelatedQueries": true
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Each search term is one row (shortened here):

{
"resultType": "searchTerm",
"searchTerm": "bitcoin",
"status": "ok",
"geo": "US",
"timeRange": "today 3-m",
"resolvedTimeRange": "2026-08-01 2026-11-01",
"timeResolution": "DAY",
"averageInterest": 49.29,
"peakInterest": 100,
"peakDate": "2026-08-21",
"latestInterest": 44,
"trendChangePercent": -24.6,
"interestOverTime": [
{ "date": "2026-08-01", "value": 51, "hasData": true, "isPartial": false },
{ "date": "2026-08-02", "value": 47, "hasData": true, "isPartial": false }
],
"interestByRegion": [
{ "geoCode": "US-KS", "geoName": "Kansas", "value": 100 },
{ "geoCode": "US-NV", "geoName": "Nevada", "value": 67 }
],
"relatedQueriesTop": [
{ "query": "bitcoin price", "value": 100, "formattedValue": "100", "isBreakout": false }
],
"relatedQueriesRising": [
{ "query": "british man recovers lost bitcoin", "value": 13000, "formattedValue": "Breakout", "isBreakout": true }
],
"exploreUrl": "https://trends.google.com/trends/explore?q=bitcoin&date=today+3-m&geo=US"
}

In Trending now mode, each trending search is one row:

{
"resultType": "trendingSearch",
"geo": "US",
"rank": 1,
"trendingSearch": "example trending topic",
"approxTraffic": "2000+",
"approxTrafficNumber": 2000,
"publishedAt": "2026-11-01T18:10:00Z",
"newsArticles": [
{ "title": "Example headline", "url": "https://example.com/news/story", "source": "Example News" }
]
}

Use the Interest over time view, or the API link in the Output tab, to get one row per term per date for charts and spreadsheets.

Install the Apify client with pip install apify-client, then:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("blueloles/google-trends-scraper").call(run_input={
"searchTerms": ["bitcoin", "ethereum"],
"timeRange": "today 12-m",
"geo": "US",
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["searchTerm"], row["averageInterest"], row["trendChangePercent"])

Moving from pytrends? This is where each pytrends method's data ends up:

pytrendsThis Actor
interest_over_time()interestOverTime (plus averageInterest, peakDate and trendChangePercent)
interest_by_region(resolution=...)interestByRegion, with Region level set to Country, Region, City or Metro (DMA)
related_queries()relatedQueriesTop and relatedQueriesRising
related_topics()relatedTopicsTop and relatedTopicsRising
trending_searches() / realtime_trending_searches()Trending now mode
build_payload(cat=..., gprop=...)Category and Search type inputs

You get the same data without managing cookies, proxies or HTTP 429 errors yourself.

Tips for faster and cheaper runs

  • Switch off the sections you don't need. Each section is one request to Google, so interest over time alone is the fastest.
  • Keep Parallel requests between 2 and 5. Going higher makes Google throttle more, and retries cost time.
  • Use Compare terms only when you need terms on one scale. Independent terms are easier to read and filter.
  • Schedule the Actor (for example, daily Trending now for your country) and send results to Google Sheets or Slack through an integration.

FAQ

Google opened an alpha Trends API to a small number of approved testers, but most people have no access. This Actor reads the same data the Google Trends website shows, with no API key.

Does pytrends still work?

The pytrends repository on GitHub has been archived by its owners, and its last release was in April 2023. It no longer receives fixes, so it breaks whenever Google changes Trends or tightens rate limits. This Actor is maintained, retries blocked requests on fresh IP addresses, and runs on Apify's servers, so you don't need your own proxies.

Why are some values 0?

Google Trends reports relative interest from 0 to 100, where 100 is the peak for that term, location and period. A 0 means there was too little search volume to report, not necessarily zero searches. The hasData field tells the two apart.

Why do numbers differ slightly from the website?

Google computes Trends from a sample of searches, so repeated requests can differ by a few points. Comparisons between terms are only valid within the same comparison group.

Google withholds related topics from automated requests, while related queries still come through. When Google returns topics, the Actor includes them.

Google Trends shows aggregated, anonymous search statistics, with no personal data. Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

Can I use it from my code or an AI agent?

Yes. Every run is available through the Apify API (see the API tab for Python, JavaScript and cURL examples), and AI agents can call it through the Apify MCP server.

Something went wrong

Check the status, error and warnings fields of the affected rows first. For example, city-level data is not available for every country. If a problem persists, open an issue in the Issues tab with your run link and we will look at it.