Google Trends API: Bulk Trends, Trending Now & Change Monitor
Pricing
from $2.50 / 1,000 keyword reports
Google Trends API: Bulk Trends, Trending Now & Change Monitor
Reliable Google Trends scraper: interest over time, by region, related queries & topics, 100+ keywords on one scale (anchor-normalized), Trending Now, and change-only monitoring. Agent/MCP-friendly output.
Pricing
from $2.50 / 1,000 keyword reports
Rating
0.0
(0)
Developer
Shan Abbas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Google Trends API — Bulk Google Trends Scraper, Trending Now & Change Monitoring
Scrape Google Trends reliably at scale: interest over time, interest by region, related queries (top + rising + Breakout), related topics, 100+ keywords on one comparable 0–100 scale, daily Trending Now searches, and change-only monitoring for schedules and webhooks. No browser, no login, no Google API key. Works as a pytrends alternative (pytrends was archived in April 2025) and is ready for AI agents, MCP, n8n, Make and Zapier.
Why this Google Trends scraper?
- Built for reliability. It uses a pool of cookie-warmed sessions, rate limiting per session, exponential backoff that retires bad sessions, and automatic RESIDENTIAL proxy fallback used only for keywords that keep getting rate-limited. When a keyword fails, it gets a clear error item instead of crashing or hanging the run. Runs never "succeed" with an empty dataset: if every keyword fails, the run fails with an actionable message.
- You only pay for results. Error and no-data items are free.
- Compare 100+ keywords on one scale. Google caps a comparison at 5 terms and rescales every request separately. Our
compareManymode chains 5-term batches through a shared anchor keyword and rescales everything onto one 0–100 scale. You get one ranked list. - Monitoring mode (
changedOnly). It stores a snapshot in a named key-value store and returns only keywords whose interest moved more than X% since the last run, or that gained new Breakout queries. Pair it with a daily schedule and a webhook. - Output that suits agents.
outputFormat: "agentSummary"gives you one sentence plus key numbers per keyword (avg, latest, peak, trend direction, top regions, rising queries). It is small and cheap in tokens. - Trending Now for any number of countries, with approximate traffic, images and linked news articles.
What data can I get from Google Trends?
| Mode | Output per keyword |
|---|---|
interestOverTime | timeline [{date, value 0-100, isPartial}], plus average, latest complete value, peak, peak date, trend direction and % change of the recent period vs the average |
interestByRegion | sub-regions (states/provinces, or countries if worldwide) sorted by interest |
relatedQueries | top and rising queries with an isBreakout flag and explore links |
relatedTopics | top and rising topics (entity id, title, type) |
compareMany | the same stats on a shared scale, plus rank, scaleFactor and lowPrecision flag |
trendingNow | title, approxTraffic (also as a number), pubDate, picture, news[] |
changedOnly | a full report, but only for keywords that changed, plus change.reasons |
The four keyword modes are merged into one report per keyword, so you pay one keyword-report event per keyword.
Input example
{"searchTerms": ["electric bike", "e-scooter", "https://trends.google.com/trends/explore?q=cargo%20bike&geo=GB"],"modes": ["interestOverTime", "interestByRegion", "relatedQueries"],"geo": "US","timeRange": "today 12-m","category": 0,"property": "web","language": "en-US","outputFormat": "agentSummary","proxyConfiguration": { "useApifyProxy": true }}
timeRange: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, or2024-01-01 2024-06-30.property:web,news,images,youtubeorfroogle(Google Shopping).- compareMany:
{"modes":["compareMany"], "searchTerms":[...150 terms...], "anchorKeyword":"yoga"}. Pick an anchor of middling popularity. Results from batches where the anchor is near 0 are flaggedlowPrecision. - Monitoring:
{"modes":["changedOnly"], "snapshotStoreName":"my-trends", "snapshotKey":"ebikes-us", "changeThresholdPct":20}on a daily schedule. - Trending Now:
{"modes":["trendingNow"], "trendingGeos":["US","GB","PK"]}.
Output example (agentSummary)
{"keyword": "coffee", "geo": "US", "timeRange": "today 12-m", "status": "ok","summary": "\"coffee\" (US, today 12-m): avg interest 76.94/100, latest 71, peak 100 on 2026-04-12, trend flat (-4.9% recent vs avg). Top regions: Hawaii 100, ... Rising queries: ...","averageValue": 76.94, "latestValue": 71, "peakValue": 100, "trendDirection": "flat","topRegions": ["Hawaii", "..."], "risingQueries": ["..."], "breakoutQueries": ["..."],"exploreUrl": "https://trends.google.com/trends/explore?q=coffee&geo=US&date=today+12-m"}
A failed keyword produces {"keyword": "...", "status": "error", "errorType": "RateLimitError", "errorMessage": "..."}. Each run also writes RUN_SUMMARY to the default key-value store with the success rate, average time and bytes per keyword, and HTTP status counts.
Pricing (pay per event)
| Event | Price |
|---|---|
keyword-report (one successful keyword report or compareMany keyword) | $2.50 / 1,000 |
trending-item (one Trending Now search) | $0.50 / 1,000 |
| Error / no-data items | free |
Set maxItems or the platform's "max total charge" to cap spending. The Actor stops cleanly when the limit is reached.
Tips for reliability and cost
- Keep
maxConcurrencyat 3–5 when using datacenter proxy. Each session uses its own IP and cookie. - Residential fallback is on by default. Each keyword uses about 25–40 KB (12-month range), so residential traffic stays cheap.
- Google Trends values are relative (0–100), not absolute search volumes.
Use with AI agents / MCP
Call it from the Apify MCP server or the API with outputFormat: "agentSummary" and a small maxItems. The input fields have descriptions written for LLM tool use.
FAQ
Is it legal to scrape Google Trends? Google Trends shows aggregated, anonymized data with no personal data. You are responsible for following Google's terms and the laws that apply to you.
Why do my numbers differ from the website? Google samples its data. Values can shift by a few points between requests, and the last point is often partial (isPartial: true).
Related topics are empty? Google currently returns empty related-topic lists to many API-style clients. The field is still present, so it won't break your pipeline.