Google Trends & Keyword Research API
Pricing
from $5.00 / 1,000 keyword reports
Google Trends & Keyword Research API
Google Trends for many keywords per run: interest over time with growth %, YoY and seasonality, rising and top related queries and topics, interest by region, Trending Now, and Google Autocomplete keyword ideas. Pay per keyword. Works as an MCP server for AI agents.
Pricing
from $5.00 / 1,000 keyword reports
Rating
0.0
(0)
Developer
Ji
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
17 hours ago
Last modified
Categories
Share
Give it a list of keywords; get back, per keyword, everything you need to judge search demand:
- Interest over time with ISO dates, plus computed growth %, year-over-year growth, trend direction, peak, volatility and seasonal peak month
- Related queries and related topics, top and rising (including "Breakout")
- Interest by region (states for a country, countries for worldwide)
- Keyword ideas from Google Autocomplete, expanded with question and intent modifiers (
how,best,vs,for,alternative,free...) - Trending Now for a country (optional)
- Side-by-side comparison of up to 5 keywords on one 0–100 scale (optional)
Google Trends values are a 0–100 index relative to the highest point in the chosen geo and timeframe. They are not absolute search volumes. Every item carries a
valueNotesaying so.
Why this actor
Google has no public Trends API and pytrends is archived, so Trends scrapers break when Google rate-limits them. This actor warms Google cookies, follows the explore → widget-token flow, and rotates proxy sessions with exponential backoff on every 429. When one part fails (say, region data), you still get the rest, with the reason in errors; you are only charged for items that contain data.
Benchmark
On 26 Oct 2026 we ran the same 50 keywords (US, past 12 months) through this actor and the most-used Google Trends actors on the Store:
| Keywords with data | Run time | Notes | |
|---|---|---|---|
| This actor | 50 / 50 | 175 s | One run, all 50 keywords, plus related queries, regions and Autocomplete ideas |
| Most-used Trends actor | 34 / 50 | 157 s | One keyword per run, 50 runs |
| Apify's Google Trends scraper | 1 / 50 | 621 s (stopped) | Stalled on rate limits |
| Another all-keywords actor | 50 / 50 | 831 s | About 20x the cost per keyword |
| Two other actors | — | — | Accept at most 5 keywords per run |
The script and raw results are in bench/.
Input
| Field | Default | Notes |
|---|---|---|
keywords | — | One report per keyword. Free-plan runs are capped at 10. |
geo | US | Two-letter country code; empty = worldwide. |
language | en | |
timeframe | today 12-m | now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all |
category | 0 | Google Trends category ID. |
searchProperty | web | youtube, images, news, froogle (Shopping). |
includeTrends / includeRegions | true | |
includeYoY | true | Year-over-year growth. Adds one Trends query per keyword for timeframes under 5 years. |
includeTrendingNow | false | Works with an empty keyword list. |
includeAutocomplete | true | |
autocompleteExpansion | questions | none (1 query), questions (23), full (49, adds a–z). |
compareInOneChart | false | Groups of 5. |
maxConcurrency | 3 | Keywords researched in parallel (1–5), each on its own proxy session. |
proxyConfiguration | Residential | Strongly recommended. |
Example: agent call
{"keywords": ["ai video editor", "notion templates", "cold email software"],"geo": "US","timeframe": "today 12-m","autocompleteExpansion": "questions","compareInOneChart": true}
Output
One item per keyword (type: "keyword"), plus optional trendingNow and comparison items.
{"type": "keyword","keyword": "notion templates","geo": "US","timeframe": "today 12-m","valueNote": "Google Trends values are a 0-100 index ...","metrics": {"dataPoints": 52, "average": 61.4, "latest": 72, "peak": 100,"peakPeriod": "2026-01-04", "growthPct": 18.2, "trendDirection": "rising","slopePerPeriod": 0.41, "volatility": 0.17, "seasonalPeakMonth": "Jan","yoyGrowthPct": 12.5, "yoyDirection": "stable","yoyWindow": { "from": "2026-09-27", "to": "2026-10-18", "comparedWithFrom": "2025-09-28", "comparedWithTo": "2025-10-19" }},"interestOverTime": [{ "date": "2025-10-26", "formattedTime": "Oct 26 – Nov 1, 2025", "value": 58, "isPartial": false }],"relatedQueries": {"top": [{ "query": "free notion templates", "value": 100, "formattedValue": "100" }],"rising": [{ "query": "notion ai templates", "value": 4250, "formattedValue": "Breakout" }]},"relatedTopics": { "top": [], "rising": [] },"interestByRegion": [{ "geoCode": "US-WA", "geoName": "Washington", "value": 100 }],"risingQueryTerms": ["notion ai templates"],"keywordIdeas": [{ "suggestion": "notion templates for students", "sources": ["seed", "suffix:for"], "rank": 2, "timesSuggested": 2 }],"keywordIdeasCount": 87,"errors": [],"scrapedAt": "2026-10-26T17:30:00.000Z"}
growthPct compares the average of the last quarter of the window with the first quarter. trendDirection is rising at +15% or more, falling at −15% or less, otherwise stable. The partial (in-progress) last period is excluded from metrics.
growthPct describes the shape of the chosen window, so a seasonal keyword looks like it is "rising" as its season approaches. yoyGrowthPct compares the latest 4 weeks with the same 4 weeks one year earlier, which is the number to use for "is this market actually growing?".
Use it from an AI agent (Standby / MCP)
The actor also runs in Apify Standby mode as an always-on web server, so agents get answers in one HTTP call with no run to start or dataset to fetch.
MCP (streamable HTTP, stateless): POST https://<your-standby-url>/mcp with your Apify token as Authorization: Bearer <token>.
| Tool | What it returns |
|---|---|
research_keywords | 1–5 keywords: metrics, rising/top queries and topics, top regions, keyword ideas |
compare_keywords | 2–5 keywords on one 0–100 scale, ranked by average interest |
trending_now | Today's trending searches for a country |
Every tool takes geo, timeframe, language, searchProperty and detail (summary by default, which returns metrics and top-10 lists to save tokens, or full).
REST
GET /research?keywords=notion%20templates,crm&geo=US&timeframe=today%2012-m&detail=summaryGET /compare?keywords=notion,obsidian,evernoteGET /trending-now?geo=GB
Standby calls are charged with the same events as batch runs, and only for results that contain data.
Pricing (pay per event)
| Event | When |
|---|---|
keyword-report | One keyword item with Trends or Autocomplete data |
comparison-report | One comparison item (up to 5 keywords) |
trending-now-report | One Trending Now item |
Items that come back empty are not charged. The run stops cleanly when your maximum charge is reached.
Local development
npm installnpm testapify run --input '{"keywords":["notion templates"]}'