Google Trends API & Scraper - pytrends alternative avatar

Google Trends API & Scraper - pytrends alternative

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Google Trends API & Scraper - pytrends alternative

Google Trends API & Scraper - pytrends alternative

Google Trends API and pytrends alternative without 429 errors: interest over time, by country, state, city and US metro, related queries and topics, Trending Now with search volume. Compare 50+ terms on one scale, daily data for years. From $0.50 per 1,000.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Alom Dev

Alom Dev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

Google Trends Scraper & API

Get Google Trends data as JSON, CSV or Excel: interest over time, interest by country, state, city and US metro area (DMA), top & rising related queries, and the live Trending Now list with search volume, growth and news. Any search term, any country, any time range, from the past hour back to 2004. Compare up to 5 terms on one chart, or up to 50 terms on one common scale, get daily data for multi-year ranges, and measure Web, YouTube, News, Image or Shopping search.

✅ Finishes cleanly, no hanging runs. Rate limits are retried on fresh IPs automatically. If you set a short timeout, the run stops in time and keeps every result it collected. ✅ $1.50 per 1,000 results, compute and proxies included. No surprise platform-usage charges. ✅ Drop-in compatible with the most popular Google Trends scraper's input and output field names. ✅ Pytrends alternative that works in 2026: no 429 errors to handle, no cookies, no code needed.

  • SEO & content planning: find rising queries and seasonal peaks before you write.
  • Local marketing: see which US metro areas (DMA) and cities search for your product most, and plan ads by region.
  • E-commerce & product research: compare demand for products or brands over 5 years, per country.
  • YouTube strategy: measure interest on YouTube search specifically, not just web search.
  • Finance & research: track attention around brands, tickers, crypto and macro topics, daily or hourly.
  • AI agents & dashboards: feed clean JSON to LLM workflows, Google Sheets, Looker Studio or your database.

Two modes

  • Explore (default): the classic Google Trends chart for your search terms. Interest over time, by region, city and metro, plus related queries.
  • Trending Now: what people are searching for right now, per country or US state. Every trending topic comes with its search volume, growth %, start time, whether it's still trending, category, related searches, and news articles for the top stories. Turn on "Only new trends since my last run" and schedule it hourly or daily to get alerts about new trends only.
FieldWhat it is
interestOverTime_timelineDataInterest 0-100 per hour/day/week/month for the selected range
interestOverTime_averagesAverage interest per term (comparisons)
interestByInterest by country (Worldwide searches)
interestBySubregionInterest by state / region
interestByCityInterest by city
interestByMetroInterest by US metro area (DMA). Most Google Trends scrapers don't offer this.
relatedQueries_top / relatedQueries_risingRelated searches with their score or growth; rising ones carry isBreakout (growth above +5,000%)
summaryPer term: peakValue, peakDate, latestValue, latestDate, average, trendDirection (rising / falling / flat), trendChangePercent
winnerThe term with the highest average interest (comparisons)
regionLeadersWhich term leads in each country / state (comparisons)
normalizationOnly for > 5 terms: anchor, groups, scale factors, precision flag
dailyStitching, interestOverTime_coarseOnly with daily stitching: windows, scale factors, agreement with Google's own weekly series
searchTerm, geo, timeRange, category, property, trendsUrlThe query, echoed for easy filtering
FieldWhat it is
title, rank, geoThe trending search, its position and location
searchVolume, searchVolumeFormattedSearches in the window, e.g. 200000 / "200K+"
increasePercentageGrowth vs normal, e.g. 1000
startedAt, endedAt, isActiveWhen it started trending and whether it still is
categoriese.g. Sports, Health, Politics (19 categories)
relatedQueriesRelated searches that belong to the same trend
news, pictureNews articles and an image, for the top ~10 trends per location
exploreUrlOpen the topic in Google Trends Explore
{ "mode": "trendingNow", "trendingGeos": ["US", "GB", "US-CA"], "trendingHours": "24",
"trendingCategories": ["Sports", "Technology"], "trendingSort": "volume", "onlyNewSinceLastRun": true }

Ready-made answers: summary, winner, leaders per region

Every result comes with a small summary you don't have to compute yourself, at no extra cost:

"summary": [
{ "term": "coffee", "peakValue": 100, "peakDate": "2026-04-12", "latestValue": 69, "latestDate": "2026-09-20",
"average": 75.4, "trendDirection": "flat", "trendChangePercent": 9.45 },
{ "term": "matcha", "peakValue": 8, "peakDate": "2026-04-05", "latestValue": 5, "latestDate": "2026-09-20",
"average": 6.13, "trendDirection": "rising", "trendChangePercent": 30.65 }
],
"winner": "coffee",
"regionLeaders": [{ "geoCode": "US-WY", "geoName": "Wyoming", "leader": "coffee", "leaderValue": 54.3 }]
  • trendDirection compares the average of the last quarter of the period with the first quarter: rising or falling when it changed by at least 10% and 1 point, otherwise flat. An incomplete last period (Google's isPartial) is left out, so a half-finished week doesn't look like a crash.
  • winner is the term with the highest average; regionLeaders names the leading term in every region of a comparison.

Compare more than 5 terms on one scale

Google Trends compares at most 5 terms, and each chart is scaled to its own peak, so two separate charts can't be compared. Turn on "Compare more than 5 terms on one scale" (normalizeAcrossQueries) and all your terms (up to 50) come back on one 0-100 scale, as if Google drew one big chart:

{ "searchTerms": ["coffee", "tea", "matcha", "espresso", "latte", "cappuccino", "chai", "kombucha",
"hot chocolate", "green tea", "cold brew", "mocha"],
"normalizeAcrossQueries": true, "anchorTerm": "coffee", "geo": "US" }

How it works: the terms are fetched in groups of 4 plus a shared anchor term (your first term by default). The anchor's real interest is the same in every group, so the ratio of its values converts each group to the same scale; finally everything is rescaled so the highest point is 100. Interest by state/country is rebuilt the same way, and summary, winner and regionLeaders cover all terms. Each point keeps Google's original number in rawValue.

  • Accuracy (measured): we compared the method with Google's own 5-term chart for the same terms. With the most popular term as anchor the averages matched (0.0% difference for terms averaging 6+, within 0.02 points for terms averaging 1 or less). With a weak anchor (average ~1) the error reached 8% for a mid-sized term and more for tiny ones, because Google rounds to whole numbers. Such results are flagged "lowPrecision": true.
  • Tip: use your most searched term as anchorTerm.
  • One result per normalized comparison, plus $0.003 per extra group of 4 terms (see pricing). City and metro breakdowns are not included in this mode. Terms with different locations or time ranges (e.g. from different URLs) are normalized separately.

Daily data for years, not just 9 months

Google returns daily points only for ranges up to ~9 months; longer ranges come back weekly or monthly. Turn on "Daily data for long ranges" (dailyStitching) with a custom range, Past 12 months or Past 5 years (up to 10 years) and you get one continuous daily series, scaled 0-100:

{ "searchTerms": ["bitcoin"], "customTimeRange": "2023-10-01 2025-09-30", "dailyStitching": true }

The range is fetched as overlapping 250-day windows (40+ days of overlap); each window is rescaled so the overlap matches, then the whole series is rescaled to a maximum of 100. Google's own weekly/monthly series for the full range stays in interestOverTime_coarse, and dailyStitching.coarseCheck reports how well the daily series matches it for every result: correlation, meanAbsError (points) and maxDriftPercent (how much the scale wanders across the range; near 0 is best).

  • Accuracy (measured): stitched from two windows, a 250-day series matched Google's direct daily answer with a mean error of 0.46 points (max 4). Over 2 years (10 terms, 4 windows each), the stitched series averaged per week was within ~0.9-1.8 points of Google's weekly series, with a scale drift of 1-4.5% across the range. Correlation is 0.97-0.996 for terms with real ups and downs; very flat terms (coffee, pizza) show ~0.945 purely from day-to-day noise.
  • Small errors can add up over many windows, and days with very low interest carry Google's rounding (whole numbers).
  • Comparisons (up to 5 terms) can be stitched too. Stitching and >5-term normalization can't be combined in one run.
This ActorTypical browser-based Trends scrapers
How it worksLightweight HTTP, no browserHeadless Chrome
Speed~4 s per term at default settings (measured on 192 terms)Slower: a full browser loads each page
Short timeoutsStops in time and keeps its resultsCan time out and lose the status
Price$1.50 / 1,000, all-inclusivePer-result price plus browser compute
City + US metro (DMA) data✅Rarely
YouTube / News / Images / Shopping search✅Usually web only
Rate-limit (429) handlingAutomatic retry on a fresh IP + a second passVaries
Trending Now + "only new" monitoring✅Some
Flat CSV (one row per data point) at no extra cost✅Some, usually billed per row
More than 5 terms on one comparable scale✅ up to 50❌
Daily data for multi-year ranges✅ stitched and self-checked❌ weekly/monthly only
Summary: peak, trend direction, winner, leader per region✅ free❌

Every release is tested end to end on the Apify platform across 17 scenarios before it ships: worldwide, US, US states, non-Latin terms, comparisons, every time range, custom dates, all search types, 190+ terms at once, and short-timeout runs.

From $0.50 per 1,000 results, and platform usage is included, so there's no extra charge for compute or proxies. One result = one search term or comparison with all its data, or one trending topic. You pay nothing for a term that failed.

The two advanced options need several Google comparisons for one result, so each extra comparison is billed as an extended query at $0.003, only when you turn them on:

  • More than 5 terms on one scale: one extended query per extra group of 4 terms (12 terms = 3 groups = 2 extended queries = $0.006 on top of the result).
  • Daily data for long ranges: one extended query per 250-day window (2 years = 4 windows = $0.012 on top of the result).
Apify planPrice per 1,000 results
Free$1.50
Starter (Bronze)$1.00
Scale (Silver)$0.75
Business (Gold) and above$0.50

Examples on the Free plan: 20 keywords = $0.03; top 25 trending topics in 3 countries = $0.11; 200 keywords tracked daily for a month = 6,000 results = $9 (or $3 on Business).

It takes one minute:

  1. Keep your existing input. searchTerms, isMultiple, timeRange, geo, category, customTimeRange, startUrls, spreadsheetId, maxItems and viewedFrom work the same way.
  2. Change the Actor ID in your API call, schedule or integration to alom/google-trends-scraper.
  3. Your downstream code keeps working: output field names such as interestOverTime_timelineData, interestBySubregion, interestByCity and relatedQueries_top are identical.

What changes: no browser compute on your bill, no hanging runs, and extra data (US metro areas, YouTube/News/ Shopping search, Trending Now, a free flat CSV). Browser-only settings like pageLoadTimeoutSecs are accepted and ignored.

How to use it

  1. Click Try for free.
  2. Enter search terms, or paste Google Trends URLs, or give a public Google Sheet ID.
  3. Pick the location, time range, category and search type.
  4. Click Start, then download the dataset as JSON, CSV, Excel or HTML, or read it via API.

Spreadsheet-ready CSV, free

Every run also saves RESULTS_FLAT.csv: one row per data point (timeline point, state, city, metro, related query, or trending topic), ready for Excel, Google Sheets or pandas. Open it from the Output tab. It costs nothing extra, and billing stays per search term.

Input example

{
"searchTerms": ["web scraping", "tea, coffee"],
"isMultiple": true,
"geo": "US",
"timeRange": "today 3-m",
"property": "youtube"
}

Output example (shortened)

{
"inputUrlOrTerm": "web scraping",
"searchTerm": "web scraping",
"interestOverTime_timelineData": [
{ "time": "1759017600", "formattedTime": "Sep 28 – Oct 4, 2025", "value": [66], "hasData": [true], "formattedValue": ["66"] }
],
"interestBySubregion": [{ "geoCode": "US-MD", "geoName": "Maryland", "value": [100], "formattedValue": ["100"] }],
"interestByMetro": [{ "geoCode": "511", "geoName": "Washington DC (Hagerstown MD)", "value": [88] }],
"relatedQueries_top": [{ "query": "ai web scraping", "value": 100, "formattedValue": "100", "link": "/trends/explore?q=ai+web+scraping" }],
"geo": "US",
"timeRange": "today 12-m",
"trendsUrl": "https://trends.google.com/trends/explore?date=today+12-m&q=web+scraping&geo=US"
}

Run it from the Apify API with the Python or JavaScript client, schedule it daily, or connect it to Make, Zapier, n8n and Google Sheets. AI agents can call it through the Apify MCP server. See the API tab for ready-made code.

from apify_client import ApifyClient # pip install "apify-client>=3"
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("alom/google-trends-scraper").call(run_input={"searchTerms": ["web scraping"], "geo": "US"})
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["searchTerm"], item["interestOverTime_timelineData"][-1])

Limitations

  • Related topics are empty. Google shows them only to signed-in users, so every logged-out tool gets an empty list. We return [] rather than inventing data. Related queries are complete.
  • Rising queries are Google's own list and can look surprising (e.g. "pet care tips" rising for "coffee"). They match what the Google Trends website shows. We cross-check them on two independent sessions.
  • Values are relative (0-100) within one query. To compare terms fairly, put them in the same comparison (up to 5), or turn on Compare more than 5 terms on one scale.
  • Normalized (>5 terms) and stitched (daily) values are our computation from Google's whole-number answers, with the precision limits described above. Everything else is Google's data as returned.

FAQ

Is there an official Google Trends API? Google has announced an official Trends API in limited alpha, with access by application only. This Actor gives you the same data the Trends website shows, today, without an application.

Is pytrends still working? The pytrends library was archived in 2025 and often fails with 429 errors. This Actor handles rate limits for you and returns the same kinds of data.

Is it legal to scrape Google Trends? Google Trends publishes aggregated, anonymous statistics, with no personal data. You are responsible for how you use the data.

Can I track keywords every day? Yes. Create a schedule in Apify Console and get fresh data daily in your dataset, Google Sheet or webhook.

More scrapers from the same developer

Feedback

Missing a field, found a bug, or need a feature? Open an issue in the Issues tab and I'll take a look. If this Actor saved you time, a short review on the Store page helps other people find it.