Google Trends Scraper & API - Bulk, Trending Now
Pricing
from $1.95 / 1,000 search term analyseds
Google Trends Scraper & API - Bulk, Trending Now
Reliable Google Trends API: interest over time, interest by region/city, related queries and topics (top + rising), and Trending Now by country. Compare up to 5 terms, batch hundreds, any geo, time range, category or YouTube/News/Shopping. Auto-retries with fresh sessions.
Pricing
from $1.95 / 1,000 search term analyseds
Rating
0.0
(0)
Developer
Adyanth Ganesh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Google Trends Scraper & API - Reliable, Bulk, Trending Now
Get Google Trends data at scale without 429 errors. Scrape interest over time, interest by region (country, state, metro, city), related queries (top + rising, including Breakout), optional related topics, and Trending Now / daily trending searches for any country. Compare up to 5 terms, batch hundreds of keywords in one run, and pick any geo, time range, category or search property (Web, Images, News, YouTube, Google Shopping).
A reliable Google Trends API alternative (Google has no official public Trends API) and a maintained replacement for pytrends. Built for SEO and content research, market research, e-commerce product research, investors and data teams.
- ✅ Reliability first - every request gets a warmed session (NID cookie), automatic session + IP rotation on HTTP 429, exponential backoff, a residential-proxy fallback and a second pass for anything that failed. 0 failed terms out of 413 in our cloud stress tests (see below).
- ✅ Optional related topics - available as an opt-in setting (off by default, see the FAQ for how they are retrieved).
- ✅ Everything Google Trends shows: timeline, regions, related queries, optional related topics, Trending Now with search volume, growth %, trend breakdown and news articles.
- ✅ Two output formats: flat rows (one row per data point - perfect for Excel, Google Sheets, BigQuery, Looker Studio) or one row per term with nested JSON (perfect for APIs and AI agents).
- ✅ Pay per term, not per row - a 5-year weekly timeline (260 points) costs the same as a 7-day one. Failed and no-data terms are free.
- ✅ Fast and cheap to run: ~1 second per term at the default concurrency on 256 MB memory.
What data can you get?
| Data | Description |
|---|---|
| Interest over time | 0-100 search interest per minute / hour / day / week / month, with isPartial for the last, incomplete point |
| Interest by region | Countries, subregions (states), US metros (DMA) or cities with lat/lng. Comparisons return each term's share (%) per region, like the Google Trends website |
| Related queries | Top and rising searches with value, +250% / Breakout, and a link |
| Related topics (opt-in) | Top and rising Knowledge Graph topics (ID, title, type). Off by default - enable includeRelatedTopics |
| Trending now | Daily trending searches per country for the past 4 h / 24 h / 48 h / 7 days: approximate search volume, growth %, start/end time, active flag, categories, the queries grouped into the trend and up to 3 news articles |
How to use
- Add search terms - one per line. To compare terms on one scale, put up to 5 on one line separated by commas:
coffee, tea, matcha. You can also use topic IDs like/m/02vqfm. - Choose one or more geos (
US,GB,US-CA,US-NY-501or empty for worldwide), a time range (presets or custom dates) and optionally a category and search property. - Optionally add countries to Trending now.
- Click Start and download the results as JSON, CSV, Excel or via the API.
Every line of search terms is scraped for every geo. For full control, use Advanced queries to give each query its own geo, time range, category and property.
Input example
{"searchTerms": ["coffee", "tea, matcha", "/m/02vqfm"],"geos": ["US", "GB", "WORLDWIDE"],"timeRange": "today 12-m","category": 0,"property": "web","includeInterestOverTime": true,"includeInterestByRegion": true,"regionResolution": "auto","includeRelatedQueries": true,"includeRelatedTopics": false,"trendingGeos": ["US", "IN"],"trendingHours": "24","maxTrendingPerGeo": 25,"outputFormat": "flat"}
Time ranges: now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all (2004 - present), or custom 2024-01-01 2024-12-31, or hourly 2026-10-01T00 2026-10-07T23 (last 7 days, UTC).
Search properties: web, images, news, youtube, shopping.
Top-level categories: 0 All, 3 Arts & Entertainment, 47 Autos & Vehicles, 44 Beauty & Fitness, 22 Books & Literature, 12 Business & Industrial, 5 Computers & Electronics, 7 Finance, 71 Food & Drink, 8 Games, 45 Health, 65 Hobbies & Leisure, 11 Home & Garden, 13 Internet & Telecom, 958 Jobs & Education, 19 Law & Government, 16 News, 299 Online Communities, 14 People & Society, 66 Pets & Animals, 29 Real Estate, 533 Reference, 174 Science, 18 Shopping, 20 Sports, 67 Travel. Any Google Trends sub-category ID works too (it's the cat= value in a Google Trends URL).
Advanced queries example:
[{ "terms": "nike, adidas", "geo": "DE", "timeRange": "today 5-y", "property": "youtube" },{ "terms": "air fryer", "geo": "US-TX", "timeRange": "2024-11-01 2024-12-31", "category": 18 }]
Output examples
Flat format (default) - every row has a type. Use the dataset views Interest over time, Interest by region, Related queries, Related topics (when enabled) and Trending now, or filter on type.
{"type": "interest_over_time", "searchTerm": "coffee", "comparedWith": [], "geo": "US", "timeRange": "today 12-m", "period": "2025-10-08 2026-10-08", "category": 0, "property": "web", "date": "2025-10-05", "timestamp": 1759622400, "formattedTime": "Oct 5 – 11, 2025", "value": 62, "hasData": true, "isPartial": false, "resolution": "WEEK", "exploreUrl": "https://trends.google.com/trends/explore?q=coffee&date=today%2012-m&geo=US"}{"type": "interest_by_region", "searchTerm": "coffee", "geo": "US", "rank": 1, "geoCode": "US-WY", "geoName": "Wyoming", "value": 100, "valueType": "interest", "resolution": "REGION"}{"type": "related_query", "searchTerm": "coffee", "geo": "US", "rankType": "top", "rank": 1, "query": "coffee near me", "value": 100, "formattedValue": "100", "isBreakout": false, "link": "https://trends.google.com/trends/explore?q=coffee+near+me&date=today+12-m&geo=US"}{"type": "related_topic", "searchTerm": "coffee", "geo": "US", "rankType": "top", "rank": 1, "topicId": "/m/02vqfm", "topicTitle": "Coffee", "topicType": "Beverage", "value": 100, "formattedValue": "100", "isBreakout": false}
Trending now row:
{"type": "trending_now", "geo": "US", "rank": 1, "searchTerm": "susan dell","searchVolume": 200000, "searchVolumeFormatted": "200K+", "increasePercentage": 1000,"startedAt": "2026-10-07T17:10:00Z", "endedAt": null, "isActive": true,"categories": ["Law and Government"],"trendBreakdown": ["susan dell", "trump accounts", "michael dell", "trump account for kids"],"newsArticles": [{"title": "Michael Dell defends Trump Accounts' shift to individual company stocks", "url": "https://finance.yahoo.com/...", "source": "Yahoo Finance", "publishedAt": "2026-10-07T21:34:51Z", "picture": "https://encrypted-tbn2.gstatic.com/..."}],"timeWindowHours": 24}
Per-term format (outputFormat: "perTerm") - one row per term and geo (lists shortened; relatedTopics* are null unless includeRelatedTopics is enabled):
{"type": "term", "searchTerm": "tea", "comparedWith": ["matcha"], "geo": "US", "timeRange": "today 12-m","period": "2025-10-08 2026-10-08", "category": 0, "property": "web", "status": "ok","averageInterest": 80.42, "peakInterest": 100, "peakDate": "2026-04-12", "latestInterest": 70, "resolution": "WEEK","interestOverTime": [{"date": "2025-10-05", "timestamp": 1759622400, "value": 70, "isPartial": false}],"interestByRegion": [{"geoCode": "US-SD", "geoName": "South Dakota", "value": 95, "formattedValue": "95%", "hasData": true}],"regionValueType": "share", "regionResolution": "REGION","relatedQueriesTop": [{"rank": 1, "query": "green tea", "value": 100, "formattedValue": "100", "isBreakout": false}],"relatedQueriesRising": [{"rank": 1, "query": "how to make cold brew tea", "value": 2050, "formattedValue": "+2,050%", "isBreakout": false}],"relatedTopicsTop": [{"rank": 1, "topicId": "/m/07clx", "topicTitle": "Tea", "topicType": "Beverage", "value": 100, "formattedValue": "100"}],"relatedTopicsRising": [{"rank": 1, "topicId": "/g/11y0w7h_p9", "topicTitle": "The Loaded Teashop", "topicType": "Topic", "value": 32100, "formattedValue": "Breakout", "isBreakout": true}],"error": null,"exploreUrl": "https://trends.google.com/trends/explore?q=tea%2Cmatcha&date=today%2012-m&geo=US"}
Terms without enough search volume return a single status row (no_data, free). Terms that fail after all retries return status: error (free). A run summary with success rate and proxy statistics is saved to the key-value store as SUMMARY.
Reliability - how it works and how we test it
Google Trends rate-limits aggressively (HTTP 429), redirects suspicious traffic to a captcha page and requires a session cookie plus per-widget tokens. This Actor:
- Warms every session with a tiny request that sets Google's
NIDcookie, then calls the explore endpoint for widget tokens and the widget data endpoints (timeline, regions, related searches). - Rotates on any block - 429, 403, captcha redirect, timeout or HTML instead of JSON drops the session and retries on a new IP with a new cookie, with exponential backoff and jitter.
- Datacenter first, residential fallback - starts on cheap datacenter IPs and switches a request (or the whole run, via a circuit breaker) to residential IPs when datacenter IPs are blocked.
- Isolates errors per term and per section - one failed term or section never breaks the rest; failed queries get a second pass with fresh sessions at the end of the run.
Measured on the Apify platform (October 2026), default proxy settings (datacenter first, residential fallback), concurrency 5-10: 5 stress runs, 413 terms across 15+ countries, worldwide, US states and metros, 10 time ranges (past 4 hours to 2004-present, custom dates), all 5 search properties and comparisons of up to 5 terms: 391 terms returned data, 22 genuinely low-volume terms returned no data, 0 failed (100% completion), plus 225 Trending Now rows from 6 countries. Typical speed at the default concurrency of 5: 116 terms in 104 seconds; 55 terms + 150 trending searches in 76 seconds.
Pricing
This Actor uses pay-per-event pricing – you pay per search term analysed and per trending search returned.
| Event | Price |
|---|---|
Search term analysed (term-result) | $3.00 per 1,000 terms ($0.003 per term) |
Trending search (trending-search) | $0.0005 per row |
Terms with no data and failed terms are free. Platform usage (compute) is included. Set Maximum cost per run in the run options to cap your spend – the Actor stops cleanly at the limit and keeps everything scraped so far.
Related tools
Trends shows relative interest; Keyword Search Volume gives absolute monthly searches for the same terms.
- Keyword Search Volume (Google Keyword Planner): search volume, CPC and keyword ideas in bulk
- AI Search Visibility Tracker: check if ChatGPT, Perplexity, Gemini and AI Overviews mention your brand
- YouTube Transcript Scraper: transcripts and subtitles from videos, channels and searches
All of these are maintained by the same developer and export flat JSON, CSV or Excel, so you can feed one tool's dataset into the next.
FAQ
Is there an official Google Trends API? Google offers a limited alpha API only to selected partners. This Actor gives you the same data the Google Trends website shows, as JSON/CSV, via the Apify API, schedules and integrations.
Why does my Google Trends scraper / pytrends keep getting 429 errors? Google limits requests per IP and per session and wants a valid cookie. This Actor rotates sessions and IPs automatically, backs off exponentially and falls back to residential IPs, so you don't have to.
Why are related topics off by default?
Google returns an empty related-topics list to regular automated sessions. When you enable includeRelatedTopics, the Actor requests related topics through Google Trends' embeddable-widget endpoint and sends a Referer header from a pool of public websites. Turn it on only if that method is acceptable for your use case. It adds 2 requests per term and doesn't change the price.
What do the 0-100 values mean? Google Trends values are relative: 100 is the peak popularity for the term (or the highest of the compared terms) in the chosen geo and period. Compare terms in one line (up to 5) to put them on the same scale. Values for different queries or runs are not directly comparable, and Google samples data, so low-volume values can vary slightly between requests.
How many keywords can I scrape? As many as you like - add hundreds of lines; they are processed in parallel and each is billed once per geo.
Can I get daily trending searches? Yes - add country codes to Trending now (Google replaced the old Daily Search Trends page with Trending Now). Choose the past 4 hours, 24 hours, 48 hours or 7 days, filter by category and get news articles for each trend.
Can I use it from Python, Make, Zapier, n8n or an AI agent?
Yes - call the Actor through the Apify API, the Python/JavaScript client, the Apify MCP server or any Apify integration, and read the dataset items. Use outputFormat: "perTerm" for compact JSON.
Is scraping Google Trends legal? The Actor collects publicly available, aggregated and anonymized statistics. No personal data is collected. Check the terms that apply to your use case.