Google Trends Scraper — Interest, Regions & Related Queries avatar

Google Trends Scraper — Interest, Regions & Related Queries

Pricing

Pay per event

Go to Apify Store
Google Trends Scraper — Interest, Regions & Related Queries

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

Tristan Leroux

Maintained by Community

Actor 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.

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).

EventWhat you pay forFree planPaid plans (from)
data-pointOne 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.

  1. Open the actor in Apify Console and click Try for free.
  2. Enter your search terms (e.g. bitcoin, ethereum) or paste Google Trends explore URLs.
  3. Pick countries, a time range, and optionally a category and property (Web, YouTube, News…).
  4. Choose which sections to include, then click Start.
  5. When the run finishes, open the Output tab and export to JSON, CSV or Excel.

Using the API instead:

  1. Get your API token from Settings → Integrations in Apify Console.
  2. Call run-sync-get-dataset-items with your input (see Integrations and API).
  3. Read the returned JSON rows directly, or fetch the run's dataset later.

Input

FieldTypeDescription
keywordslist of stringsSearch terms to compare, up to 50. Groups of 5 are compared together.
startUrlslist of URLsGoogle 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.
geolist of stringsCountry codes like US, GB, DE, or sub-regions like US-CA. Empty string "" = worldwide. Default US.
timeframestringnow 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.
categoryintegerGoogle Trends category id, 0 = all categories.
propertyselectweb, images, news, shopping or youtube.
includeInterestOverTimebooleanInclude the interest-over-time series. Default on.
includeInterestByRegionbooleanInclude the regional breakdown. Default on.
includeRelatedQueriesbooleanInclude top and rising related queries. Default on.
includeRelatedTopicsbooleanInclude top and rising related topics. Default on.
maxItemsintegerStop after this many rows. Default 5,000.
requestDelaySecnumberPause between requests to Google. Default 4.
maxRetriesintegerRetries when Google throttles a request. Default 4.
proxyConfigurationobjectProxy 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_query or related_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 — top or rising.
  • sourceUrl — the explore URL the row came from, or null for rows from keywords.

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 ApifyClient
client = 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

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 all for 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.