Google Keyword Trends
Under maintenancePricing
from $0.17 / result
Google Keyword Trends
Under maintenanceCollects Google Trends interest over time, interest by region, and related queries for a keyword across country, time range, category, and search property filters.
Pricing
from $0.17 / result
Rating
0.0
(0)
Developer
AgentX
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
Affiliate disclosure: Apify links marked with the
fpr=aiagentapireferral parameter may credit the publisher without changing your Actor price.
Google Keyword Trends turns one Google Trends Explore query into a structured dataset record with normalized interest over time, regional rankings, and top and rising related searches.
- One top-level dataset item per successful keyword analysis.
- 251 selectable location labels, nine time ranges, 26 category choices, and five Google search properties.
- Thirteen top-level output fields, including the matching Explore URL and four analysis-ready data sections.
- A repeatable input contract for scheduled research, dashboards, notebooks, and agent workflows.
Run the proven New York example · View the API
Test risk: a successful test bills Actor Start, variable Actor Usage, and one Result event. Google Trends can suppress low-volume data or temporarily return an incomplete section, so row counts can vary between otherwise identical runs.
This is a community Actor that structures data from the Google Trends Explore experience. It is not Google’s limited-access Google Trends API Alpha, whose consistently scaled data and access model are different.
Why Choose This API
Turn an Explore view into one portable record
📈 Relative interest over time
Track how search interest for one keyword changes across the selected window. Each time-series row includes a timestamp, a readable date label, and a normalized value. Google explains that Explore values are normalized for the selected time and geography and then scaled from 0 to 100. A value of 100 marks peak relative interest within that request; it is not an absolute search-volume count.
🌍 Regional interest rankings
See where the term represents a larger share of searches. Regional rows can include a region label, geographic code, and normalized value. Google’s regional-interest guide notes that popularity is relative to total searches in a place, so two regions with the same score do not necessarily have the same number of searches.
🔎 Top and rising related queries
Use top related searches for established associations and rising searches for rapidly growing connections. Each row can carry the related query, numeric value, formatted value, and a Google Trends Explore link. “Breakout” and percentage-style rising values should be treated as directional signals, not exact future demand.
🎛️ Reproducible filters
Choose Worldwide or a country-level label, a supported time range, a category, and Web, Image, News, Shopping, or YouTube Search. The output repeats those labels and includes the corresponding Explore URL, making each result easier to audit and rerun.
Google Trends works from an anonymized, categorized, aggregated sample of Google searches. Its own data FAQ documents normalization, low-volume zeros, statistical noise, and filtering. Use the result as one research signal alongside first-party analytics, market data, and editorial judgment.
Quick Start Guide
Reproduce the verified New York scenario
Step 1: Configure the Actor
Open the Actor input and use:
{"keyword": "New York","location": "Worldwide","time_range": "Past 12 months","category": "All categories","search_type": "Web Search"}
Step 2: Start the run
Click Start and allow the Actor to finish. Google Trends responses can take longer than a simple page request, so use a practical timeout for API or automation calls.
Step 3: Inspect the dataset item
Open the default Dataset. A verified run of this scenario returned one item with 53 interest-over-time rows, 250 regional rows, 25 top related queries, and 16 rising related queries. Those counts are evidence from one run, not fixed quotas; current source data may differ.
The Dataset can be exported as JSON, CSV, Excel, XML, or another format supported by Apify. JSON preserves nested arrays. For spreadsheets, expand the four arrays into separate tables after export.
Input Parameters
Five required fields
| Parameter | Type | Required | Supported input | Example |
|---|---|---|---|---|
keyword | string | Yes | One non-empty search term, brand, topic, product, or phrase | New York |
location | string/select | Yes | Worldwide or one of 250 country and territory labels | Worldwide |
time_range | string/select | Yes | Nine Explore windows from Past hour through 2004 - present | Past 12 months |
category | string/select | Yes | All categories or one of 25 named top-level categories | All categories |
search_type | string/select | Yes | Web Search, Image Search, News Search, Google Shopping, YouTube Search | Web Search |
Values must match the schema options exactly. The location list is an input contract, not a promise that every keyword has reportable data in every market. Google may return zeros or omit sections when search volume is too low.
The Actor analyzes one keyword per run. Run multiple Actor tasks when you need independent records for several terms. Do not directly compare 0–100 values from separately scaled Explore requests as if they were absolute volumes. If cross-request consistency is essential, review whether the limited-access Google Trends API Alpha is appropriate.
Time interpretation also depends on the selected window. Google states that Explore graphs covering 30 days or longer use UTC, while windows of seven days or less use the browser or device time zone. Preserve processed_at and the returned Explore URL when joining repeated snapshots.
Output Data Schema
Thirteen top-level fields
| Field | Type | Meaning |
|---|---|---|
processor | string | Actor URL that produced the item |
processed_at | string | Processing timestamp |
keyword | string | Submitted keyword |
location | string | Selected market label |
time_range | string | Selected Explore window |
category | string | Selected category label |
search_type | string | Selected Google search property |
trends_url | string | Matching Google Trends Explore URL |
data_counts | object | Row totals for the four data sections |
interest_over_time | array | Date/timestamp and normalized-interest rows |
interest_by_region | array | Region, geographic code, and normalized value rows |
related_queries_top | array | Top related-query rows |
related_queries_rising | array | Rising related-query rows |
Example shape, shortened to one row per nested section:
{"processor": "https://apify.com/agentx/google-keyword-trends?fpr=aiagentapi","processed_at": "2026-07-23T09:18:47.000Z","keyword": "New York","location": "Worldwide","time_range": "Past 12 months","category": "All categories","search_type": "Web Search","trends_url": "https://trends.google.com/trends/explore?q=New%20York&date=today%2012-m","data_counts": {"interest_over_time": 53,"interest_by_region": 250,"related_queries_top": 25,"related_queries_rising": 16},"interest_over_time": [{"timestamp": 1721520000, "date": "Jul 21, 2024", "value": 82}],"interest_by_region": [{"region": "United States", "geo_code": "US", "value": 100}],"related_queries_top": [{"query": "new york times", "value": 100, "formatted_value": "100", "link": "https://trends.google.com/trends/explore?q=new%20york%20times"}],"related_queries_rising": [{"query": "new york event", "value": 250, "formatted_value": "+250%", "link": "https://trends.google.com/trends/explore?q=new%20york%20event"}]}
Nested arrays can legitimately be empty. data_counts is the quickest way to decide which sections are present before a downstream workflow expands them.
Integration Examples
REST API
Replace YOUR_API_TOKEN with an Apify token. The synchronous endpoint waits for the run and returns Dataset items:
curl --request POST \"https://api.apify.com/v2/acts/agentx~google-keyword-trends/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \--header "Content-Type: application/json" \--data-raw '{"keyword":"New York","location":"Worldwide","time_range":"Past 12 months","category":"All categories","search_type":"Web Search"}'
For production workloads, prefer the asynchronous Actor-run endpoint, retain the run ID, and page the resulting Dataset. See the official Apify API documentation for authentication and storage retrieval.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("agentx/google-keyword-trends").call(run_input={"keyword": "New York","location": "Worldwide","time_range": "Past 12 months","category": "All categories","search_type": "Web Search",})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(items[0]["data_counts"] if items else "No dataset item")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('agentx/google-keyword-trends').call({keyword: 'New York',location: 'Worldwide',time_range: 'Past 12 months',category: 'All categories',search_type: 'Web Search',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]?.data_counts ?? 'No dataset item');
MCP-compatible clients
Fetch the Actor details first so the client can validate the full schema, then call the Actor with:
{"actor": "agentx/google-keyword-trends","input": {"keyword": "New York","location": "Worldwide","time_range": "Past 12 months","category": "All categories","search_type": "Web Search"},"waitSecs": 45}
If the run exceeds the client wait window, poll by run ID instead of starting a duplicate run.
Pricing & Cost Calculator
This Actor uses pay-per-event pricing. Local effective metadata defines one platform-triggered Actor Start, variable Actor Usage in $0.00001 units, and one Result event when the top-level Dataset item is written.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Actor Usage | $0.00001 | $0.00001 | $0.00001 | $0.00001 | $0.00001 | $0.00001 |
| Actor Start | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 |
| Result | $0.17000 | $0.16433 | $0.15867 | $0.15300 | $0.15300 | $0.15300 |
For an illustrative FREE-tier run that consumes $0.00200 of Actor Usage and writes one item, the total is $0.00200 + $0.01000 + $0.17000 = $0.18200. Actual usage varies. A run can incur Actor Start and Actor Usage even if Google returns no reportable result. Check the live pricing page before budgeting because published prices can change.
Use Cases & Applications
SEO and content research
Measure seasonality, identify regions with stronger relative interest, and turn top or rising related queries into research leads. Validate each lead with search results, conversion data, and audience context before changing a content plan.
Brand and market monitoring
Schedule the same input and compare snapshots over time. Store the full input labels, processed_at, and trends_url with every snapshot so analysts can distinguish a real change from a changed filter.
Regional planning
Use regional rankings to prioritize markets for deeper investigation. A high regional score means the keyword holds a larger relative share there; it does not prove larger population, revenue, or absolute query volume.
Search-property analysis
Run independent Web, News, Shopping, Image, or YouTube Search requests to understand how interest differs by surface. Because each request is scaled independently, compare patterns and timing carefully rather than subtracting values as absolute quantities.
Related-query discovery
Top related queries help map established intent. Rising queries can surface emerging language, events, or product associations. Review the linked Explore view and current search results before labeling a query as a durable trend.
FAQ
Is the 0–100 value search volume?
No. Google normalizes interest for the selected geography and time, then scales it relative to the peak. Use Google Ads or another volume source when you need estimated query counts.
Why are some arrays empty?
Google can suppress low-volume terms, omit a regional or related-query section, or change available data between requests. Check data_counts before assuming a nested section exists.
Can I compare several keywords in one run?
No. The public input accepts one keyword. Run the Actor separately for each term and remember that Explore responses are normalized per request.
Does Worldwide mean every country returns data?
Worldwide is one aggregate location option. The other 250 labels are selectable inputs, but actual data depends on the keyword and Google Trends availability.
Is this suitable for polling or election prediction?
Google states that Trends is not a scientific poll. Search interest is one behavioral signal and should not be treated as evidence that a candidate, product, or idea is “winning.”
Can I schedule it?
Yes. Use an Apify schedule with the exact five-field input. Preserve run IDs and avoid overlapping schedules if a prior run is still active.
Why can two identical runs differ?
Google Trends uses sampled data and adds statistical noise, especially for low-interest terms. Source updates and different run times can also change the result.
Trust & Certifications
Google Keyword Trends is maintained as a community Apify Actor. The public contract is defined by its current input, output, Dataset, and pricing schemas. This README was checked against those files, read-only runtime behavior, an actual successful Actor run, and current official Google and Apify documentation on July 23, 2026.
No certification, official Google partnership, fixed row count, or guaranteed business outcome is claimed. For operational assurance, review the current build status, run logs, Dataset item, input, and charge events for your own run.
Legal & Compliance
Use Google Trends data in accordance with Google’s terms and applicable law. Google’s export and citation guidance asks users who reuse Trends data to attribute Google Trends. Do not present normalized interest as personal data, absolute search counts, polling results, or verified intent for an individual.
Keep API tokens secret and send them through environment variables or a secrets manager. Apply reasonable schedules, retention policies, and access controls to exported datasets. You are responsible for determining whether a specific research, marketing, or reporting use complies with your organization’s policies and local requirements.
Related Tools
- Google Search Trends API — collect the current Trending Now view when the task starts from surging searches rather than a known keyword.
- Google Maps Store Scraper — enrich a location or brand research workflow with public business-listing data.
- YouTube Market Intelligence — examine video and channel signals around a niche discovered through search interest.
- All Shopping Scraper — connect search-interest research with product listings and prices.
- All Jobs Scraper — compare keyword interest with hiring demand across supported job sources.
- All Video Scraper — collect video metadata after a topic or related query becomes relevant.
Support & Community
- Google Keyword Trends Store page
- API examples
- Input configuration
- Pricing
- Report an issue
- Telegram support
When reporting a problem, include the run ID, five input values, approximate run time, and whether the missing section was interest over time, regional interest, top queries, or rising queries. Do not post API tokens or private datasets.
Last updated and verified: July 23, 2026.