Google Trends API: pytrends Alternative (JSON)
Pricing
Pay per event
Google Trends API: pytrends Alternative (JSON)
Fetches Google Trends data for a list of keywords. Input: keywords[], geo, timeRange. Output: one JSON item per keyword with interestOverTime, interestByRegion, relatedQueries. Use for trend research, SEO, dashboards, AI agents. pytrends alternative, $0.003 per keyword.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Alfhar Development
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Share
Google Trends API: pytrends alternative that returns clean JSON
Google Trends scraper for developers. Send a list of keywords, get one JSON item per keyword: interest over time, interest by region and top/rising related queries. No browser, no cookies to manage, no Python library to keep patched. Call it from the Apify API, from apify-client (Python / JavaScript), from the Apify MCP server in an AI agent, or from the Console.
Built by the author of this Actor. It is a paid Actor (pay per event), see Pricing below.
What it does (spec)
| Does | Fetches public Google Trends data for N keywords, any country, any timeframe |
| Input | keywords (array, required), optional geo, timeRange, searchType, compareKeywords |
| Output | Dataset, one item per keyword: averageInterest, peakDate, interestOverTime[], interestByRegion[], relatedQueries.top/rising |
| Use when | You need trend data in a script, dashboard, SEO tool, research pipeline or AI agent |
| Price | $0.003 per keyword returned + $0.005 per run start (see the pricing panel for current rates). Failed keywords are not charged |
Example input and output
| Input | Output (one dataset item) |
|---|---|
{"keywords": ["bitcoin"], "geo": "EG", "timeRange": "today 12-m"} | keyword: "bitcoin", averageInterest: 32.32, peakDate: "2026-05-03", peakValue: 100, latestValue: 8, plus the timeline, regions and related queries |
{"keywords": ["iphone", "samsung galaxy"], "compareKeywords": true, "geo": "SA"} | Two items on one shared 0-100 scale, like the Google Trends compare view |
{"keywords": ["اسعار الذهب"], "geo": "EG"} | Arabic and other non-Latin terms work unchanged |
{"keywords": ["ramadan"], "searchType": "youtube", "customTimeRange": "2025-01-01 2025-06-30"} | YouTube search interest for a custom date range |
Shortened real output for the first row:
{"keyword": "bitcoin","geo": "EG","timeRange": "today 12-m","searchType": "web","averageInterest": 32.32,"peakDate": "2026-05-03","peakValue": 100,"latestValue": 8,"interestOverTime": [{"date": "2025-10-05", "timestamp": 1759622400, "label": "Oct 5 – 11, 2025", "value": 22, "hasData": true, "isPartial": false}],"interestByRegion": [{"geoCode": "EG-JS", "geoName": "South Sinai Governorate", "value": 100}],"relatedQueries": {"top": [{"query": "bitcoin price", "value": 100, "formattedValue": "100"}],"rising": [{"query": "bitcoin news today", "value": 484450, "formattedValue": "Breakout", "breakout": true}]},"exploreUrl": "https://trends.google.com/trends/explore?q=bitcoin&geo=EG&date=today%2012-m","scrapedAt": "2026-10-07T10:45:01Z"}
Use from Python
$pip install apify-client
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("alfhar/google-trends-scraper-pro").call(run_input={"keywords": ["iphone", "samsung galaxy"],"compareKeywords": True,"geo": "SA","timeRange": "today 3-m",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["keyword"], item["averageInterest"], item["peakDate"])
A runnable example with a pandas export lives in the open-source repo: https://github.com/alf7ar/google-trends-api-python (same author as this Actor).
pytrends alternative
pytrends is an unofficial Python wrapper for Google Trends. The repository is archived on GitHub (read-only, last push August 2024), so it is unmaintained and open issues will not be fixed. Google also rate limits automated Trends traffic (HTTP 429), which is the usual reason scripts that worked yesterday fail today.
If you are moving off pytrends, this Actor covers the same data:
| pytrends call | This Actor |
|---|---|
build_payload(kw_list, geo=, timeframe=) | keywords, geo, timeRange / customTimeRange |
interest_over_time() | interestOverTime[] |
interest_by_region() | interestByRegion[] (regionResolution: COUNTRY, REGION, CITY, DMA) |
related_queries() | relatedQueries.top / relatedQueries.rising |
gprop='youtube' etc. | searchType: web, images, news, youtube, shopping |
manual time.sleep and retry loops | handled in the Actor: direct requests first, proxy retry with a fresh IP if rate limited |
Differences to know: you pay per keyword instead of running your own code for free, results come back as JSON rows (not pandas DataFrames), and relatedTopics is best effort (Google often returns none to automated clients). You do not need to manage a proxy or cookie jar.
Input fields
| Field | Meaning | Example |
|---|---|---|
keywords | Search terms (one result each) | ["bitcoin", "ethereum"] |
compareKeywords | Compare up to 5 terms on one 0-100 scale | false |
geo | Country or region code, empty = worldwide | "EG", "US-CA" |
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 | "today 12-m" |
customTimeRange | Overrides timeRange: YYYY-MM-DD YYYY-MM-DD | "2025-01-01 2025-06-30" |
category | Google Trends category ID, 0 = all | 0 |
searchType | web, images, news, youtube, shopping | "web" |
includeInterestOverTime / includeInterestByRegion / includeRelatedQueries | Switch sections on or off | true |
regionResolution | AUTO, COUNTRY, REGION, CITY, DMA | "AUTO" |
includeRelatedTopics | Best effort, see limitations | false |
language | Label language | "en-US" |
proxyConfiguration | Used only when Google rate limits direct requests | Apify Proxy |
Pricing
Pay per event: $0.003 per keyword that returns data and $0.005 when a run starts. Example: 100 keywords is about $0.30 plus the start fee. Set a maximum cost per run and the Actor stops at your limit. The pricing panel on this page is authoritative.
Limitations
- Google Trends values are relative (0-100 within the chosen term, region and timeframe), not absolute search counts. Use compare mode to place terms on one scale.
- Google decides the timeline granularity from the timeframe and may return an empty list for very low-volume terms.
- Related topics are returned by Google only to some clients; related queries are reliable.
- The Actor reads only public Trends data, does not log in, and requests only API paths the Trends robots.txt allows. Google's terms apply to your use of the data.
Support
Missing a field or hit a problem? Open an issue on the Issues tab of this Actor.