Google Trends Scraper - Fast API, No Browser
Pricing
$0.25 / 1,000 result rows
Google Trends Scraper - Fast API, No Browser
Interest over time, interest by region, related queries and topics, and trending searches from Google Trends. HTTP-only, answers in seconds, charges only for rows delivered.
Google Trends Scraper — fast API, no browser, pay only for rows
Get interest over time, interest by region, related queries (top + rising), related topics and trending searches from Google Trends as clean JSON/CSV — for any keyword, country, time range, category or search type (web, images, news, YouTube, Shopping).
- Seconds, not minutes. Talks to Google Trends' own JSON API over plain HTTP. No headless browser.
- No empty bills. You are charged per row that lands in your dataset. A run that returns nothing costs nothing.
- Fails loudly, never loops. Rate limits are retried with fresh sessions a fixed number of times, then the run stops with a clear error.
- Compare mode. Up to five keywords in one request, values relative to each other like the Compare view.
- Works from the API, schedules, integrations and MCP/AI agents like any Apify Actor.
What you get
One row per data point, all in the same dataset, with a type column you can filter on:
type | one row per | key fields |
|---|---|---|
interest_over_time | time point × keyword | date, timestamp, value (0–100), is_partial |
interest_by_region | region × keyword | geo_code, geo_name, value, resolution |
related_queries | related search | query, rank_type (top / rising), value, formatted_value (e.g. +500%), link |
related_topics | related topic | topic_title, topic_type, topic_mid, rank_type, value |
trending_now | trending search today | query, approx_traffic, published, news[] |
Sample (related_queries, keyword moissanite ring, US, 12 months):
{"type":"related_queries","keyword":"moissanite ring","geo":"US","timeframe":"today 12-m","rank_type":"rising","query":"black moissanite ring","value":500,"formatted_value":"+500%","link":"https://trends.google.com/trends/explore?q=black+moissanite+ring&date=today+12-m&geo=US"}
Input
| field | example | notes |
|---|---|---|
keywords | ["moissanite ring", "lab grown diamond"] | each fetched on its own unless compare is on |
geo | US, GB, US-CA, `` (worldwide) | Google Trends location codes |
timeframe | today 12-m, now 7-d, today 5-y, 2025-01-01 2025-06-30 | any Google Trends range |
interestOverTime / interestByRegion / relatedQueries / relatedTopics | true | choose sections |
trendingNow | true | today's trending searches for geo; works with no keywords |
compare | false | up to 5 keywords per request, relative values |
regionResolution | REGION | COUNTRY, REGION, CITY, DMA |
category | 0 | Google Trends category id (18 = Shopping) |
property | `` | images, news, youtube, froogle |
proxyConfiguration | Apify residential (default) | Google Trends rate-limits datacenter IPs |
Minimal input:
{ "keywords": ["moissanite ring"], "geo": "US", "timeframe": "today 12-m" }
How many rows to expect
Per keyword with the defaults: ~52 time points (12 months, weekly) + ~50 regions (US states) + up to 50 related queries. So roughly 150 rows per keyword. Trending now adds ~20 rows.
Pricing
Pay per result row. No start fee, no charge for empty runs. See the Pricing tab.
Limits and honesty notes
- Google Trends values are relative (0–100 within the request), not absolute search volumes. That is how Google publishes them.
- Google may show no related topics/queries for low-volume keywords; you get zero rows and pay zero.
- Very long keyword lists trigger Google's rate limiting; the Actor rotates sessions and retries up to
maxRetries, then stops with an error rather than running forever. - This Actor reads public Google Trends pages only. No login, no personal data.
Use cases
Keyword research and SEO seasonality · product demand validation before you build or stock · competitor and brand interest tracking · content calendars from rising queries · market entry (which regions care) · feeding an AI agent with live trend data via MCP.
Support
Open an issue on the Issues tab. Runs that fail get a clear error message with the failing step.