Google Trends Scraper — Interest, Regions & Related Queries
Pricing
Pay per event
Google Trends Scraper — Interest, Regions & Related Queries
Google Trends scraper & API: interest over time, interest by region, related queries and topics for any keyword, country, timeframe, category or explore URL. No login.
Pricing
Pay per event
Rating
5.0
(1)
Developer
Tristan Leroux
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 hours ago
Last modified
Share
Get Google Trends data as clean rows: interest over time, interest by region, related queries and related topics for any search term, country, time range, category or Google property. No Google login and no API key needed. Paste keywords or Google Trends explore URLs and export the results as JSON, CSV or Excel.
What does Google Trends Scraper do?
Google Trends Scraper works as an unofficial Google Trends API. For each search term it collects:
- Interest over time — Google's 0–100 interest score for every day/week/month of the range.
- Interest by region — the score per state (for a country) or per country (worldwide).
- Related queries — top and rising searches, with Google's "Breakout" flag.
- Related topics — top and rising topics, when Google serves them (see Limits).
You can compare up to 5 terms side by side exactly like on trends.google.com, query many countries in one run, and scrape up to 50 terms per run (grouped into comparisons of 5). Already have a chart open in Google Trends? Copy its URL into Google Trends explore URLs and the scraper uses the same terms, country, time range, category and property.
Every data point is its own dataset row, so the output drops straight into Google Sheets, Excel, a BI tool or a database.
Use cases
- SEO and content marketers — find rising queries and seasonal peaks before planning content.
- E-commerce and product teams — compare demand for products or brands per country and month.
- Crypto and finance analysts — track search interest in coins or tickers as a sentiment signal.
- Market researchers — see which states or countries care most about a topic.
- Data scientists — feed weekly interest series into forecasting models on a schedule.
- Agencies — produce recurring trend reports for clients without manual chart exports.
How much does it cost?
You pay only for the data points you get. One data point = one dataset row (one week of interest, one region, or one related query).
| Event | What you pay for | Free plan | Paid plans (from) |
|---|---|---|---|
data-point | One dataset row (time point, region, related query or topic) | $1.00 per 1,000 | $0.30 per 1,000 (Gold+) |
A small fixed actor-start fee charged by Apify ($0.00005) applies per run.
Worked examples (measured on a real run):
- 1 keyword × 12 months, US, all sections ≈ 148 data points (53 weekly values + 51 regions + 44 related queries) → $0.15 on the Free plan, $0.04 on Gold+.
- 50 keywords × 12 months, US, all sections ≈ 7,400 data points → $7.40 on the Free plan, $2.22 on Gold+. Turn off sections you don't need to pay less.
The Apify Free plan includes $5 monthly credit, enough for about 5,000 data points (roughly 30 keywords with every section) each month.
How to use Google Trends Scraper
- Open the actor in Apify Console and click Try for free.
- Enter your search terms (e.g.
bitcoin,ethereum) or paste Google Trends explore URLs. - Pick countries, a time range, and optionally a category and property (Web, YouTube, News…).
- Choose which sections to include, then click Start.
- When the run finishes, open the Output tab and export to JSON, CSV or Excel.
Using the API instead:
- Get your API token from Settings → Integrations in Apify Console.
- Call
run-sync-get-dataset-itemswith your input (see Integrations and API). - Read the returned JSON rows directly, or fetch the run's dataset later.
Input
| Field | Type | Description |
|---|---|---|
keywords | list of strings | Search terms to compare, up to 50. Groups of 5 are compared together. |
startUrls | list of URLs | Google Trends explore URLs, e.g. https://trends.google.com/trends/explore?q=chatgpt,gemini&geo=GB&date=today%203-m. Each URL uses its own terms, country, range, category and property. |
geo | list of strings | Country codes like US, GB, DE, or sub-regions like US-CA. Empty string "" = worldwide. Default US. |
timeframe | string | 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, or a custom range 2024-01-01 2024-12-31 (max 5 years). Default today 12-m. |
category | integer | Google Trends category id, 0 = all categories. |
property | select | web, images, news, shopping or youtube. |
includeInterestOverTime | boolean | Include the interest-over-time series. Default on. |
includeInterestByRegion | boolean | Include the regional breakdown. Default on. |
includeRelatedQueries | boolean | Include top and rising related queries. Default on. |
includeRelatedTopics | boolean | Include top and rising related topics. Default on. |
maxItems | integer | Stop after this many rows. Default 5,000. |
requestDelaySec | number | Pause between requests to Google. Default 4. |
maxRetries | integer | Retries when Google throttles a request. Default 4. |
proxyConfiguration | object | Proxy settings. Apify Proxy is on by default; residential works best. |
Provide keywords, startUrls, or both (each is scraped as its own query).
{"keywords": ["bitcoin", "ethereum"],"geo": ["US"],"timeframe": "today 12-m","startUrls": [{ "url": "https://trends.google.com/trends/explore?q=chatgpt,gemini&geo=GB&date=today%203-m&gprop=youtube" }]}
Output
One row per data point. Rows below are from a real run on 2026-11-02.
{"type": "interest_over_time","keyword": "bitcoin","geo": "US","timeframe": "today 12-m","category": 0,"property": "web","sourceUrl": null,"scrapedAt": "2026-11-02T13:48:55Z","date": "2025-11-02T00:00:00Z","value": 41,"isPartial": false}
{"type": "interest_by_region","keyword": "bitcoin","geo": "US","timeframe": "today 12-m","category": 0,"property": "web","sourceUrl": "https://trends.google.com/trends/explore?q=bitcoin&geo=US&date=today%2012-m","scrapedAt": "2026-11-02T13:49:20Z","region": "Wyoming","regionCode": "US-WY","value": 100}
{"type": "related_query","keyword": "bitcoin","geo": "US","timeframe": "today 12-m","category": 0,"property": "web","sourceUrl": "https://trends.google.com/trends/explore?q=bitcoin&geo=US&date=today%2012-m","scrapedAt": "2026-11-02T13:49:20Z","relatedKeyword": "bitcoin price","value": 100,"isBreakout": false,"rankType": "top"}
Related topic rows have the same shape as related queries plus relatedTopicId (Google
Knowledge Graph id, e.g. /m/0663v) and relatedTopicType (e.g. Dish).
Field notes:
type—interest_over_time,interest_by_region,related_queryorrelated_topic.value— Google's relative interest, 0–100, scaled to the peak within the request. It is not absolute search volume.isPartial— the latest period is still being collected.isBreakout— Google labels the rising query "Breakout" (growth above 5000%).rankType—toporrising.sourceUrl— the explore URL the row came from, ornullfor rows fromkeywords.
Integrations and API
Run the actor and get the rows back in one call:
curl -X POST "https://api.apify.com/v2/acts/innolabs~google-trends-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["bitcoin", "ethereum"], "geo": ["US"], "timeframe": "today 12-m"}'
Python with apify-client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("innolabs/google-trends-scraper").call(run_input={"keywords": ["bitcoin", "ethereum"], "geo": ["US"], "timeframe": "today 12-m"})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["type"], row["keyword"], row.get("date") or row.get("region"), row["value"])
- Make, Zapier, n8n — use the Apify app/node to start the actor and pass the rows to Google Sheets, Airtable, Slack or a database.
- Scheduling — create a schedule in Apify Console (e.g. every Monday) to build a weekly trend history automatically.
- Webhooks — get notified or trigger your pipeline when a run finishes.
- AI agents (MCP) — connect Claude, Cursor or other MCP clients through the Apify MCP server at https://mcp.apify.com and let your agent query Google Trends on demand.
FAQ
Is it legal to scrape Google Trends?
The scraper only collects public, aggregated data that anyone can see on trends.google.com without logging in. It does not collect personal data. Check that your use complies with Google's terms and the laws that apply to you.
Do I need proxies?
Google throttles repeated requests from the same IP. Apify Proxy is enabled by default and handles this; residential proxies give the most reliable results. The scraper also paces requests and retries throttled ones automatically.
How many keywords can I scrape?
Up to 50 keywords per run plus any number of explore URLs. Google compares at most 5 terms at a time, so values are only comparable within the same group of 5. For more keywords, start several runs or use the API.
Can I get only new data?
Run it on a schedule with a short range like now 7-d or today 1-m and append the rows
to your sheet or database; use date + keyword + geo to drop rows you already have.
Duplicate rows inside a run are removed and never charged.
What happens if Google blocks a request?
The scraper retries with a fresh session. If one section still fails, the rest of the run continues and the failure is listed in the run log. If nothing at all could be fetched, the run fails with a clear message, so you are not charged for empty results.
Why is my value 0–100 and not a search count?
That is how Google Trends reports data: values are relative to the highest point in the chosen range and country. Google does not publish absolute search volumes.
Limits
- At most 5 terms are compared together; larger lists are split into groups of 5.
- Custom date ranges are limited to 5 years per query; use
allfor full history. Long ranges come back weekly or monthly, as on the Google Trends website. - Related topics: Google often returns an empty topics list to automated sessions, so this section may produce no rows while related queries work normally.
- Region breakdown resolution is chosen by Google (states for a country, countries for worldwide). City-level data is not available.
- Values are relative interest (0–100), not absolute search volume.
- Trending searches / daily trends pages are not supported; only explore data.