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

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,
"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",
"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 that explains what to fix. The run's RUN_SUMMARY key-value record has totals and request statistics.

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.

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

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.