Google Trends Scraper

v1.0.0$0.0065/term reportSignal Detection

Last updated November 6, 2026

Google Trends data per search term: interest over time, by region, metro, or city, and top and rising related queries. Compare up to 5 terms, any geo, category, or property (web, news, images, YouTube, shopping). One summary row per term plus flat rows, ready for Clay or CSV.

Install

bash
npx @mambalabsdev/mcp-google-trends-scraper

Every tool here also runs hosted, with no install at all, through Apify's MCP endpoint.

Features

  • One summary row per term, plus flat rows for each date, region, and related query.
  • Geo, timeframe, category, and web, news, images, YouTube, or shopping search.
  • Compare up to 5 terms in a group, with metro and city levels.
  • A term with no data is one free row.
  • Pay per event: Term report at $0.0065.

Input

termsarrayoptional

Search terms, up to 200 per run. A Google topic ID such as /m/0j6n6s8 also works.

geostringoptional

Empty for worldwide, or a Google geo code such as US, DE, or US-CA.

timeframestringoptional

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 two dates as YYYY-MM-DD YYYY-MM-DD.

categorystringoptional

Google Trends category number. 0 is all categories. The number is in the cat= part of a Trends URL.

propertystringoptional

Which Google search to read: web, news, images, youtube, or shopping.

comparestringoptional

true: terms are charted together in groups of 5, on one shared scale. false: each term gets its own chart. Each term is charged either way.

outputsarrayoptional

Any of interest_over_time, interest_by_region, related_queries, related_topics. Default is the first three. See Limitations for related_topics.

region_resolutionstringoptional

auto: countries worldwide, regions inside a country. DMA is US metro areas. CITY needs a geo. COUNTRY needs an empty geo.

max_charge_usdstringoptional

Optional. The run stops before a charge that would pass this amount. Summary rows are always returned.

proxy_modestringoptional

auto (default): requests go through the Apify proxy pool, and a request the pool cannot get through is retried on residential addresses. residential: every request uses residential addresses. A reliability setting only; it does not change what you pay.

Output schema

json
{
  "row_type": "string",
  "term": "string",
  "compared_with": "array",
  "geo": "string",
  "timeframe": "string",
  "category": "integer",
  "property": "string",
  "explore_url": "string",
  "average_interest": "integer",
  "latest_interest": "integer",
  "peak_interest": "integer",
  "peak_date": "string",
  "recent_change_pct": "number",
  "points_returned": "integer",
  "regions_returned": "integer",
  "top_region": "string",
  "related_queries_returned": "integer",
  "top_related_query": "string",
  "top_rising_query": "string",
  "related_topics_returned": "integer",
  "date": "string",
  "date_label": "string",
  "is_partial": "boolean",
  "region_code": "string",
  "region_name": "string",
  "latitude": "number",
  "longitude": "number",
  "related_kind": "string",
  "related_list": "string",
  "related_term": "string",
  "topic_id": "string",
  "topic_type": "string",
  "related_url": "string",
  "value": "integer",
  "formatted_value": "string",
  "value_meaning": "string",
  "row_status": "string",
  "error_reason": "string",
  "billable_events_json": "string",
  "scraped_at": "string"
}

Pricing

$0.0065per term report
EventFree plan price
Term report$0.0065
Extra rows$0.0035
Actor Start$0.002

Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.

On the Apify free plan the actor stops at $1.50 of charges a month, about 231 term reports. Any paid Apify plan removes the cap.

Limits

  • Related topics: Google answers an empty list to automated clients, on every address tested when this actor was built. related_topics stays available, costs nothing extra, and the row says when none came back. Related queries are not affected.
  • Google offers related topics per term only outside compare mode.
  • Values are relative and sampled, as described above. They are not search volumes.
  • Trending Searches, the daily list of what is trending, is not read by this actor. It reads terms you give.
  • A metro level (DMA) outside the US returns no region rows: the term is still delivered with its other rows, and regions_returned is 0.
  • A very rare term can return a chart with a single point. That is Google's data, and the term is charged as a term with data.
  • Interest by city and metro is what Google returns for the chart: often about 200 rows, many without data, which are left out.