Google Trends Scraper: Reliable & Fast avatar

Google Trends Scraper: Reliable & Fast

Pricing

from $2.00 / 1,000 keyword reports

Go to Apify Store
Google Trends Scraper: Reliable & Fast

Google Trends Scraper: Reliable & Fast

Scrape Google Trends: interest over time, by region and related queries for up to 5 compared keywords, plus Trending Now. Fast runs, no timeouts.

Pricing

from $2.00 / 1,000 keyword reports

Rating

0.0

(0)

Developer

Lighthouse Data

Lighthouse Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Get Google Trends data as clean JSON, CSV or Excel: interest over time, interest by region, related queries, comparisons of up to 5 keywords on one scale, and the live Trending Now list, for any country, region or city, any time range, category and search type (Web, YouTube, News, Images, Shopping). Runs finish in seconds and never hang waiting on Google.

  • Interest over time: the 0–100 timeline for every keyword, from the past hour to 2004–present, or any custom date range. Dates are ISO-8601 UTC, and the in-progress last point is flagged isPartial.
  • Interest by region: 0–100 per country, region/state, US metro area (DMA) or city, with coordinates for cities.
  • Related queries: top and rising queries, with Google's Breakout flag (> 5000% growth).
  • Comparisons: up to 5 terms on one shared scale, exactly like the Google Trends website.
  • Trending Now: what people search for right now in any country: search volume, % increase, start and end time, the grouped breakdown queries and categories. You get hundreds of trends per country, not only the 10 in the RSS feed.
  • Filters: 3,600+ locations, 1,100+ categories, 5 search types (Web, Image, News, Google Shopping, YouTube) and topic IDs (/m/…).
  • Summary stats on every report: average, peak (with date) and latest complete value.

Why use it?

  • Runs that finish. Google answers the first request from a new visitor with HTTP 429 Too Many Requests while it sets a cookie. Scrapers that treat this as a block wait and retry until they time out. This Actor recognises the handshake, keeps the cookie, and switches to a fresh IP only on a real rate limit. It never sleeps for minutes. In our tests, 57 of 57 queries succeeded on the first attempt. Every run also has a built-in safety margin before its timeout, so partial results are saved and the run ends cleanly.
  • Fast and light: no browser, plain HTTP, 256 MB of memory. A 2-keyword run takes about 5–10 seconds.
  • Typed, analysis-ready data: numbers are numbers, dates are ISO-8601 UTC, missing values are null (never 0 or ""), and each record links back to the matching trends.google.com page.
  • Honest billing: keywords where Google has not enough data are saved and flagged but not charged, and failed queries are never charged. Proxy costs are included in the price.
  • One Actor for everything: keyword research, comparisons and Trending Now, with the same clean output.

Use cases

  • SEO and content: find seasonal peaks, rising queries and breakout topics before writing; compare keyword variants; see where interest is concentrated by state or city.
  • Market and brand research: compare up to 5 brands or products per market; track YouTube or Shopping interest; monitor launch impact.
  • Trading and alternative data: daily or hourly search-interest series with UTC timestamps and partial-period flags for backtests and signals.
  • Newsrooms and social teams: poll Trending Now hourly per country, filtered by category (Sports, Politics, Business…).
  • AI agents and automations: "Is X trending?" and "Compare A vs B in Germany" as a single fast call through the Apify API, MCP, Make, n8n or Zapier.

How to use it

  1. Click Try for free.
  2. Enter your keywords (each gets its own 0–100 scale) and/or comparisons such as coffee, tea, matcha (shared scale).
  3. Pick locations (for example US, GB, US-CA, or worldwide) and a time range.
  4. Optionally add Trending Now countries.
  5. Click Start, then download the results as JSON, CSV or Excel, or read them through the API.

Example input:

{
"keywords": ["coffee", "tea"],
"comparisons": ["iphone, pixel, galaxy"],
"geos": ["US", "GB"],
"timeframe": "today 12-m",
"trendingNowGeos": ["US"],
"maxTrendingNowItemsPerGeo": 25
}

This input creates 2 keywords × 2 locations = 4 reports, plus 1 comparison × 2 locations = 6 reports (one per term), plus 25 trends.

Track keywords on a schedule

Google Trends is most useful over time. To track your keywords every week:

  1. Save your input as a Task (the Save as a new task button).
  2. Open Schedules → Create new, choose the task, and set, for example, 0 6 * * 1 (every Monday at 06:00 UTC). Use 0 * * * * for hourly Trending Now snapshots.
  3. Add an integration (Google Sheets, Slack, email or a webhook) to get each run's data where you work.

Tracking 20 keywords weekly costs about 20 × $0.003 + $0.0005 ≈ $0.06 per week on the Free plan.

Call it from code or an AI agent

curl -X POST "https://api.apify.com/v2/acts/cylindrical_lighthouse~google-trends/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"comparisons": ["chatgpt, gemini, copilot"], "geos": ["US"], "timeframe": "today 3-m"}'

Every input field has a description with an example, and every output field is described in the dataset schema, so MCP clients and AI agents can call this Actor without extra instructions.

Input

FieldTypeDescriptionExample
keywordsarray of stringsSearch terms or topic IDs; each gets its own 0–100 scale["coffee", "tea"]
comparisonsarray of stringsGroups of 2–5 comma-separated terms on one shared scale["coffee, tea, matcha"]
geosarray of stringsCountry (US), region (US-CA), US metro (US-NY-501) or worldwide. Empty = worldwide["US", "GB"]
timeframestringnow 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m (default), today 5-y, all"today 12-m"
customTimeRangestringExact range YYYY-MM-DD YYYY-MM-DD; overrides timeframe"2024-01-01 2024-06-30"
propertystring"" web (default), images, news, froogle (Google Shopping), youtube"youtube"
categoryintegerGoogle Trends category ID; 0 = all7 (Finance)
includeInterestOverTimebooleanTimeline + average, peak, latest (default true)true
includeInterestByRegionbooleanInterest per location (default true)true
includeRelatedQueriesbooleanTop and rising related queries (default true)true
regionResolutionstringAUTO (default), COUNTRY, REGION, DMA, CITY"CITY"
includeLowVolumeRegionsbooleanAlso list regions with too little data (value null)false
trendingNowGeosarray of stringsCountries for Trending Now["US", "GB"]
trendingNowHoursstring4, 24 (default), 48 or 168"24"
trendingNowCategorystring0 all, or 1–20 (e.g. 17 Sports, 14 Politics, 18 Technology)"17"
trendingNowActiveOnlybooleanOnly trends that are still activefalse
maxTrendingNowItemsPerGeointegerMax trends per country; 0 = all (default 25)25
maxItemsintegerMax results in total; 0 = no limit (default 1000)100
languagestringLanguage for names (default en-US)"de"
proxyConfigurationobjectApify Proxy. The default works and is included in the price{"useApifyProxy": true}
residentialFallbackbooleanRetry a blocked query through residential proxy at no extra cost (default true)true

Popular category IDs: 3 Arts & Entertainment, 5 Computers & Electronics, 7 Finance, 8 Games, 12 Business & Industrial, 13 Internet & Telecom, 16 News, 18 Shopping, 20 Sports, 29 Real Estate, 44 Beauty & Fitness, 45 Health, 47 Autos & Vehicles, 67 Travel, 71 Food & Drink, 174 Science, 958 Jobs & Education. The full list is the category picker on trends.google.com (the cat= value in the URL).

Output

See real output: 2 records from a real run (JSON). This is the built-in example (empty input), run on 2026-10-06 with build 1.0.10.

Each keyword report is one record. The dataset has ready-made views: Keyword overview, Interest over time, Interest by region, Related queries, Trending Now and Errors. The table views flatten the data into one row per point, region or query, for easy CSV/Excel export.

{
"recordType": "keywordReport",
"keyword": "coffee",
"keywordType": "searchTerm",
"comparedWith": [],
"geo": "US",
"geoName": "United States",
"timeframe": "today 12-m",
"startDate": "2025-09-29T00:00:00.000Z",
"endDate": "2026-09-29T00:00:00.000Z",
"category": 0,
"categoryName": "All categories",
"property": "web",
"granularity": "WEEK",
"hasData": true,
"isComplete": true,
"averageInterest": 76.79,
"peakInterest": 100,
"peakDate": "2026-04-12T00:00:00.000Z",
"latestInterest": 73,
"interestOverTime": [
{ "date": "2025-09-28T00:00:00.000Z", "value": 74, "isPartial": false },
{ "date": "2026-09-27T00:00:00.000Z", "value": 80, "isPartial": true }
],
"regionResolution": "REGION",
"interestByRegion": [
{ "regionCode": "US-WY", "regionName": "Wyoming", "value": 100, "latitude": null, "longitude": null },
{ "regionCode": "US-HI", "regionName": "Hawaii", "value": 46, "latitude": null, "longitude": null }
],
"relatedQueries": [
{ "query": "coffee near me", "kind": "top", "value": 100, "formattedValue": "100", "isBreakout": false, "queryUrl": "https://trends.google.com/trends/explore?q=coffee+near+me&date=today+12-m&geo=US" },
{ "query": "how to brew pour over coffee", "kind": "rising", "value": 3350, "formattedValue": "+3,350%", "isBreakout": false, "queryUrl": "https://trends.google.com/trends/explore?q=how+to+brew+pour+over+coffee&date=today+12-m&geo=US" }
],
"url": "https://trends.google.com/trends/explore?date=today+12-m&geo=US&q=coffee",
"scrapedAt": "2026-09-29T21:37:32.830Z"
}

A Trending Now record:

{
"recordType": "trendingNow",
"term": "czechia vs england",
"rank": 1,
"geo": "GB",
"geoName": "United Kingdom",
"hours": 24,
"searchVolume": 500000,
"increasePercent": 1000,
"startedAt": "2026-09-29T17:30:00.000Z",
"endedAt": null,
"isActive": true,
"trendBreakdown": ["czechia vs england", "england football", "nations league"],
"categoryIds": [17],
"categories": ["Sports"],
"exploreUrl": "https://trends.google.com/trends/explore?date=now+7-d&geo=GB&q=czechia+vs+england",
"isComplete": true,
"url": "https://trends.google.com/trending?geo=GB&hours=24",
"scrapedAt": "2026-09-29T21:37:29.974Z"
}

A query that fails (for example an invalid location) is saved as a free "recordType": "error" record with "isComplete": false that explains what to fix.

Run summary and rerun input. The key-value store has a SUMMARY record (also saved as RUN_SUMMARY) with totals, request statistics and a completeness object:

{ "unit": "keyword reports", "requested": 40, "delivered": 38, "incomplete": 0, "failed": 2, "ratio": 0.95 }

One keyword in one query counts as one keyword report, so a 3-term comparison in 2 locations is 6. failed covers queries that failed and queries the run did not reach (maxItems, maximum cost per run or the run timeout). Trending-Now-only runs count locations instead. When anything failed, the run also saves FAILED_INPUT: your input with every setting unchanged and only the failed keywords, comparisons, locations and Trending Now countries left in. Start a new run with it to fetch just those. Because the input combines every keyword with every location, a keyword that failed in only some locations is rerun in all of them. The run still succeeds, and the status message says, for example, Done: 38 of 40 keyword reports saved. 2 failed (blocked by Google). Rerun input saved as FAILED_INPUT.

Pricing

Pay per event. Proxy and platform costs are included, so there is nothing else to pay.

EventFree planStarterScaleBusiness
Actor start (once per run)$0.0005$0.0005$0.0005$0.0005
Keyword report (one keyword × location × time range, all sections)$0.003$0.0025$0.0022$0.002
Trending Now item$0.0005$0.0004$0.00035$0.0003

Examples (Free plan):

  • The prefilled input (2 keywords, US, 12 months) costs $0.0065.
  • 100 keywords × 1 location = $0.30. 1,000 keyword reports = $3.00.
  • Trending Now for 3 countries × 25 trends = $0.038.
  • Keywords where Google has not enough data, and failed queries, are free.

What counts as complete. A keyword report is complete (isComplete: true) when Google answered every section you selected. That includes Google's real answer "not enough data" (hasData: false): it is complete, but free. A report is charged only when it is complete and has data. A query we could not fetch after all retries (blocked, network error, invalid query) is saved as an error record with isComplete: false and is never charged. Rerun it with the FAILED_INPUT record. Each Trending Now item is complete and charged; a country that fails costs nothing.

Set Maximum cost per run in the run options to cap spending; the Actor stops cleanly when the limit is reached.

Ready-made tasks

One-click examples with the input already filled in. Open one, adjust it and run:

Use it from an AI agent (MCP)

AI agents can run this Actor through Apify's MCP server. Add this server to Claude, Cursor, VS Code or any MCP client:

{
"mcpServers": {
"apify": { "url": "https://mcp.apify.com?tools=cylindrical_lighthouse/google-trends" }
}
}

You sign in to Apify in the browser on first use, or you can send the header Authorization: Bearer <APIFY_TOKEN>. VS Code's mcp.json names the top-level key servers instead of mcpServers. With the Apify CLI you can also run apify mcp install cursor (other clients are supported). Then just ask, for example: "Compare search interest in ChatGPT, Gemini and Claude over the last 12 months".

Integrations

  • Make, Zapier and n8n: use the Apify app or node, choose Run an Actor and pick cylindrical_lighthouse/google-trends, then send the dataset to Google Sheets, Airtable, Slack or a database.
  • Google Drive and webhooks: in the Actor's Integrations tab, upload each run's results to a Drive folder or call your own URL when a run finishes.
  • Schedules: in Apify Console, go to Schedules, then Create new, and pick this Actor or one of its saved tasks to research search demand automatically.
  • API: POST https://api.apify.com/v2/acts/cylindrical_lighthouse~google-trends/run-sync-get-dataset-items?token=<APIFY_TOKEN> runs it and returns the results in one call.

From the same publisher:

FAQ

Is it legal to scrape Google Trends? This Actor collects only publicly available, aggregated and anonymised search-interest indices, the same numbers anyone sees on trends.google.com. It does not log in and does not collect personal data. Trending Now terms and related queries are aggregate searches and may mention public figures. Your results may still contain personal data, which is protected by GDPR and other regulations. Do not scrape personal data unless you have a legitimate reason. If you are unsure, consult your lawyers.

What do the 0–100 values mean? Google normalises interest: 100 is the peak popularity for the chosen terms, location and time; 50 is half as popular; 0 means not enough data. Values are relative, so compare terms by putting them in one comparison, not by comparing separate reports.

Why are separate reports and comparisons different? Each separate keyword is scaled to its own peak. Terms in one comparison share a scale, like typing them together on trends.google.com.

Why do values change slightly between runs? Google Trends is computed from a sample of searches, and Google refreshes that sample. Re-running the same query later can move some points by 1–2, the same as on trends.google.com. Runs a few minutes apart return identical data.

Why are there no related topics? Google currently returns an empty related-topics list to anyone who is not signed in to a Google account, while related queries still work. This Actor never logs in, so it does not offer (or charge for) a field that would always be empty. If Google changes this, we will add it back.

Why does a keyword say "not enough data"? Google hides very rare searches. The report is saved with hasData: false and is not charged. Try a broader location or a longer time range.

Can I get daily data for a whole year? Google decides the step size: ranges up to about 9 months return daily points, and longer ranges return weekly or monthly points. For daily data over longer periods, run consecutive customTimeRange windows. Note that each window has its own 0–100 scale.

Do I need proxies? No. The default Apify Proxy setting is included in the price and handles Google's limits for you.

Can I use it with AI agents? Yes. Through the Apify MCP server or API, one call such as {"comparisons": ["a, b"], "geos": ["US"]} returns typed JSON in seconds.

Where can I try Apify? New to Apify? A free account includes monthly free usage to try this Actor.

Limitations

  • Google Trends data is relative (0–100), not absolute search volume. Trending Now volumes are Google's rounded buckets (e.g. 200,000 = "200K+").
  • Related topics are not available (see the FAQ).
  • Metro (DMA) and city levels are available only for some locations. If Google refuses a level, the Actor falls back to Google's default level and logs a warning.
  • Google changes its internal endpoints from time to time. The Actor checks every response and fails loudly instead of returning empty data. We run daily health checks and fix breakages quickly.
  • At most 2,000 queries (keywords × locations) per run. Split larger jobs into several runs.

Changelog

See the ./CHANGELOG.md (the Changelog tab on the Store page).

Support

Found a bug or need a feature? Open an issue on the Issues tab. We respond within 48 hours. Please include the run ID so we can reproduce the problem.

Did this Actor save you time? A short review on the Store helps other people find it and tells us what to improve. If something didn't work, please open an issue first, so we can fix it for you.