Google Trends Scraper: Keywords & Trending Searches
Pricing
from $2.50 / 1,000 search delivereds
Google Trends Scraper: Keywords & Trending Searches
Bulk Google Trends API alternative: interest over time, by country, region and city, rising and Breakout queries, trending searches now. Compare more than 5 keywords on one scale. CSV for Sheets and Looker Studio, Slack alerts. $2.50 per 1,000 searches, all included.
Pricing
from $2.50 / 1,000 search delivereds
Rating
0.0
(0)
Developer
Sinan Dogan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Share
What does Google Trends Scraper do?
Google Trends data for hundreds of keywords, in one run. Google Trends Scraper exports Google Trends in bulk to CSV, Excel, JSON or an API, as a Google Trends API alternative with no API key. Enter keywords, topics or Google Trends URLs and get, for every term and country:
- 📈 Interest over time, plus what you actually need to decide: latest, average and peak interest, % change and a trend direction (
breakout,rising,steady,declining). - ⚖️ More than 5 keywords on one scale: Google compares 5 terms at most. Above that, the Actor chains comparisons through an anchor term and puts dozens of keywords on a common 0–100 scale (an approximate calibration, flagged in every row).
- 🚀 Rising and Breakout queries: top and rising related queries, Google's Breakout terms and related topics: the keywords to write about before your competitors do.
- 🗺️ Interest by region: countries, regions or states, cities and US metro areas (DMA), for several countries in one run.
- 🔥 Trending now by country: today's trending searches with approximate traffic and the news articles behind them.
- 🔔 Alerts: a Slack, Discord or Telegram message when a keyword breaks out or a high-traffic trend appears, optionally only for trends you have not seen before.
- 📄 Ready for Sheets and Looker Studio: flat CSVs (timeline, regions, top and rising queries) and a long time-series format, plus a Markdown report.
- 💲 $2.50 per 1,000 searches, everything included. A search is one keyword in one country: regions, related queries, topics, alerts and exports are included.
Who uses it:
| You are | You use it to |
|---|---|
| SEO and content teams | Pick the keywords that are growing, find Breakout queries early and plan content around seasonality. |
| E-commerce and product teams | Check demand by country or city before a launch, and time campaigns on the seasonal peak. |
| Media and newsrooms | Watch what is trending now in each country and get alerted when a story takes off. |
| Analysts, data and AI builders | Feed clean trend series to dashboards, n8n or Make workflows and AI agents (MCP). |
Keyword rows and trending-search rows have different data. The itemType field identifies them, and the Overview and Trending now dataset views make them easier to inspect.
How to scrape Google Trends data
- Keep the example terms coffee and tea, or enter two terms you want to compare.
- Choose a location and period; keep Compare terms together on for a shared comparison.
- Click Start. Apify Proxy is enabled by default; availability and charges depend on your account and plan.
- Inspect the dataset, then use Timeline CSV, Regions CSV, Top queries CSV or Rising queries CSV for spreadsheet-ready rows. The main dataset also downloads as JSON, HTML, CSV or Excel.
{"searchTerms": ["coffee", "tea"],"compareTerms": true,"geo": "FR","timeRange": "today 3-m"}
Why use this Google Trends API alternative?
- Bulk keyword research: collect several terms in one run instead of copying charts manually.
- Useful summaries: latest complete interest, average, peak and recent percentage change accompany the full timeline.
- Flat CSV exports: one timeline observation, region or related query per row, retaining the keyword, location and period.
- Transparent coverage: every row has a
dataStatus(ok,partial,noData,failed) and section errors; the run summary counts each outcome. - Large batches in parallel: several keyword groups run in parallel on separate sessions (Max concurrency, default 3), and the Actor slows down by itself when Google rate-limits.
- Current trends: discover the searches in Google's public trending feed for supported countries.
Compare keywords accurately
Up to five terms use a native Google comparison. Above five, the Actor repeats the first term as an anchor, then estimates a common 0–100 scale across separate comparisons. This is an approximate calibration, not a native unlimited Google comparison. Choose the anchor with Anchor term (the first term by default): prefer a stable term of medium popularity, since a much more popular anchor crushes the others towards 0. Inspect scale, anchorTerm, lowPrecision and errors: lowPrecision is true when a term stays below 10 in its comparison, where Google's whole-number rounding makes values coarse.
Related queries and regional values keep their own Google scales. Independent keyword requests are also scored separately: a value of 80 in one request is not automatically more popular than 60 in another.
Compare several countries
List country codes in Locations (for example US, FR, DE) to run every term in each country. You get one row per term and country. Values are relative within each country: they show when and where interest moves, not which country searches more in absolute terms.
Interest by city or metro area
Region resolution chooses the level of detail of interestByRegion; the level used is returned in regionResolution.
| Resolution | Works with | Returns |
|---|---|---|
| Automatic | any location | Google's default: countries worldwide, regions in a country |
COUNTRY | worldwide only (empty location) | countries |
REGION | a country such as US or FR | states or regions |
CITY | any location | cities, with coordinates (latitude, longitude) instead of geoCode |
DMA | any location | US metro areas (DMA); second-level subdivisions such as departments elsewhere |
A resolution that Google rejects for every location fails the run immediately as invalid input. If only some of your locations are incompatible, those use Google's default and a note is added to errors.
Find trending searches by country
Use Trending search countries for country codes such as FR or US. Clear search terms when you only want this feed. The feed's size and country coverage are controlled by Google. When Google attaches them to the feed, each trending row also gets a picture and newsItems (headline, URL, source, picture); Google currently often publishes the feed without them, in which case newsItems is empty.
{"searchTerms": [],"trendingNowGeos": ["FR", "US"]}
Spot rising and breakout keywords
Every keyword row gets trend analytics, included in the search price, computed from its own interestOverTime, with no extra request:
trendDirectioncompares the last N complete observations (trendWindowPoints, default 7) with the N before, liketrendChangePercent:dead: the recent average is below 1 (Google shows 0 for less than 1% of the peak);breakout: the previous average is below 1 and interest appeared, or the change is +100% or more and the recent window holds the highest value of the period;rising: +10% or more;declining: -10% or less;steady: in between;- null with fewer than 2N complete observations (partial and missing points never count as zero).
volatilityScore: standard deviation divided by the mean of the complete values. 0 is flat; above 1 is very spiky.seasonality: only for weekly or monthly series covering at least 2 years (for example Past 5 years or 2004 - present), otherwise null.strengthis the year-over-year autocorrelation of the series once its linear trend is removed;isSeasonalis true from 0.4.peakMonthandtroughMonth(1-12) are the months with the highest and lowest typical interest. Treat it as a hint, not a forecast.breakoutQueries: the rising related queries Google labels Breakout (more than 5000% growth), when related queries are collected.
Export time series for Excel, Sheets or Looker Studio
Set Output format (outputMode) to get one flat row per date, search term and location instead of one row per term with a nested interestOverTime array:
summaries(default): one row per search term with the full timeline, summaries and trend analytics.timeSeries: only time-series rows (itemTypeandrecordTypearetimePoint), withsearchTerm,geo,timeRange,date,formattedTime,value,hasData,isPartial, the term'strendDirection,trendChangePercent,averageInterest,peakInterestandpeakDate(repeated on every date, so you can filter a CSV by direction without a join) and the comparison context (scale,comparedWith,anchorTerm). Download the dataset as CSV or Excel, or use the Time series dataset view and the Time series CSV link, and open it directly as a table or a line chart.both: each summary row followed by its time-series rows.
Billing never depends on the number of dates: each search term with data in each location is one search, whatever the format. In timeSeries mode, terms with too little volume or failed requests produce no row; they are listed with their dataStatus and errors in the SUMMARY record. A term whose interest over time comes back empty is counted as noData: its regions and related data are not fetched, since they could not produce a row. A term whose interest-over-time request failed but that has other data produces no row and is not charged; SUMMARY lists it in withoutTimeSeries.
{"searchTerms": ["coffee", "tea", "matcha"],"compareTerms": true,"geo": "FR","timeRange": "today 3-m","outputMode": "timeSeries","trendDirections": ["breakout", "rising"]}
Each time-series row is self-contained:
[{"itemType": "timePoint","recordType": "timePoint","searchTerm": "matcha","searchTermLabel": null,"queriedAs": "searchTerm","topicMid": null,"geo": "FR","timeRange": "today 3-m","category": 0,"property": null,"date": "2026-10-20T00:00:00.000Z","formattedTime": "Oct 20, 2026","value": 64,"hasData": true,"isPartial": false,"trendDirection": "rising","trendChangePercent": 23.5,"averageInterest": 52.4,"peakInterest": 71,"peakDate": "2026-10-13T00:00:00.000Z","scale": "group","comparedWith": ["coffee", "tea"],"anchorTerm": null,"lowPrecision": false,"exploreUrl": "https://trends.google.com/trends/explore?q=matcha,coffee,tea&geo=FR&date=today%203-m","scrapedAt": "2026-10-30T12:00:00.000Z"}]
Keep only rising or breakout keywords
Set Keep only these trend directions (trendDirections), for example ["breakout", "rising"], to save and pay only for keywords moving the way you care about. Keyword rows with data whose trendDirection is not in the list, including rows whose direction cannot be computed (too few points), are not saved and not charged; the SUMMARY record counts them in filteredOut with their term, location and direction. With time-series output, only the dates of kept terms are saved. Rows without data (noData, failed) stay in the summaries as free diagnostics, and trending-now rows are never filtered. With Compare terms together, the comparison is still fetched as a whole, so kept terms keep the same scale as the terms left out.
Track topics instead of literal search terms
A Knowledge Graph topic groups every spelling and language of a subject (Apple the company, not the fruit). Two ways to query one:
- Topic ids in Search terms: enter an id such as
/m/0k8zor/g/11b6d6l8xzdirectly insearchTerms. It is sent to Google Trends as the comparison keyword, exactly as the Google Trends website does forexplore?q=%2Fm%2F0k8z, and can be mixed with literal terms in a comparison. - Query the main topic instead of the literal term (
resolveToMainTopic): each literal term is looked up in Google Trends' autocomplete and replaced by the first suggested topic. A term without a suggestion is queried as typed, with atopicResolutionnote inerrors. One extra request per distinct term, no extra charge.
Rows keep your searchTerm and add queriedAs (topic or searchTerm), topicMid (the queried id) and searchTermLabel, the topic name and type such as Apple Inc. — Technology company (null for an id entered directly, since Google only names topics in autocomplete). exploreUrl opens the topic's page.
{"searchTerms": ["apple", "/m/0k8z"],"resolveToMainTopic": true}
Find the matching Google Trends topic
Turn on Include matched topics (includeMatchedTopics) to add matchedTopics to each keyword row: the Knowledge Graph topics Google Trends suggests for the term, each with mid, title and type (for example /m/02vqfm, Coffee, Beverage). A topic groups every spelling and language of a subject; paste its mid in a Google Trends URL (https://trends.google.com/trends/explore?q=%2Fm%2F02vqfm) and add it under Google Trends URLs to track the topic instead of the literal search term. It costs one extra request per term and no extra charge. With outputMode timeSeries, the topics are reported per term in the SUMMARY record.
Get alerts in Slack, Discord or Telegram
Set Notification webhook URL to receive one message at the end of the run:
- keywords whose
trendDirectionisbreakout, or whosetrendChangePercentreaches Alert: minimum trend change (%); - trending-now searches whose
approxTrafficMinreaches Alert: minimum trending traffic (no trending alerts when it is empty).
Slack incoming webhooks, Discord webhooks and Telegram bot URLs (https://api.telegram.org/bot<token>/sendMessage?chat_id=<id>) get a chat message; any other URL receives JSON with event: "trends.alert", the message text and the matching rows. The URL is stored encrypted, never logged, and a failed delivery only adds a warning; the SUMMARY record reports notification. Nothing is sent when no row matches. Schedule the Actor to get the alerts daily or weekly.
{"searchTerms": ["matcha", "cold brew"],"trendingNowGeos": ["US"],"notificationWebhookUrl": "https://hooks.slack.com/services/T000/B000/XXXX","alertMinTrendChangePercent": 50,"alertMinTraffic": 100000}
Alert only on new trends (scheduled runs)
A schedule that alerts on the same breakout keyword or trending search every day is noise. Turn on Alert only on new trends (onlyNewTrends) and the Actor remembers, in a named key-value store (State store name, stateStoreName, default google-trends-monitor, record TREND_MONITOR_STATE), what earlier runs already saw and alerted:
- trending searches by location and normalised title (
trending:<geo>:<title>), forgotten 48 hours after they were last seen; - keywords by location, term (or topic id) and trend direction (
keyword:<geo>:<term>:<direction>); a new direction replaces the old one, so a keyword alerts again when it returns to breakout or rising.
The webhook then only gets trending searches and keywords that were never alerted before. An alert that could not be delivered is not marked as sent, so the next run retries it. Every keyword and trending row gets isNewTrend (true new, false already seen, null when monitoring is off or the row has no trend to track).
By default the dataset still holds every row: charts, time series and spreadsheet exports usually need the full picture each run, and only the alert needs deduplicating. To also leave known rows out of the dataset (and out of the charge), turn on Save only new rows (onlyNewRows). A keyword already seen is not charged; a trending list is charged only when at least one new trending search is saved. Use one store name per monitor: schedules that share a name share their memory. The state is saved at the end of the run and when the run is aborted.
{"trendingNowGeos": ["FR", "US"],"alertMinTraffic": 10000,"onlyNewTrends": true,"stateStoreName": "google-trends-monitor"}
Markdown report
Each run also writes REPORT (Markdown) to the default key-value store: a table per search term and location with trend direction, change, average, peak and peak date, the breakout related queries, and the top trending-now searches per location with their traffic (and whether they are new when monitoring is on). Titles coming from Google are escaped, so a trending title cannot inject links or HTML. Open it from the Markdown report output tab.
What data do you get?
| Fields | Meaning |
|---|---|
itemType, searchTerm, geo, timeRange | Type and scope of the row |
queriedAs, topicMid, searchTermLabel | Whether a topic or the literal term was queried, and which one |
interestOverTime | 0–100 values, dates, data-availability and partial-period flags |
latestInterest, averageInterest, peakInterest | Keyword summaries |
recentAverageInterest, previousAverageInterest, trendChangePercent | Comparison of adjacent complete observation windows |
trendDirection, volatilityScore, seasonality | Trend analytics, included (see above) |
breakoutQueries | Rising related queries labelled Breakout |
interestByRegion | Country or subregion interest |
relatedQueriesTop, relatedQueriesRising | Google's related searches and growth labels |
relatedTopicsTop, relatedTopicsRising | Related topics: title, type, mid, value, link |
regionResolution | Level of interestByRegion: COUNTRY, REGION, CITY or DMA |
dataStatus | ok, partial, noData (too little volume) or failed |
newsItems, picture, pictureSource | News and image Google attaches to a trending search |
scale, anchorTerm, comparedWith | How the keyword comparison was constructed |
trendingRank, approxTraffic, approxTrafficMin | Trending-feed rank and approximate search traffic |
matchedTopics | Topics Google suggests for the term: mid, title, type |
date, formattedTime, value, hasData, isPartial, recordType | Time-series rows only (outputMode timeSeries or both) |
trendDirection, trendChangePercent, averageInterest, peakInterest, peakDate (time-series rows) | Repeated on every date of the term and location |
isNewTrend | New since earlier scheduled runs (monitoring on), else null |
errors | Missing sections and request errors |
Example output
Illustrative excerpts: the timeline is abbreviated and the values are examples. Keyword interest is relative, not an absolute number of searches.
[{"itemType": "searchTerm","dataStatus": "ok","searchTerm": "coffee","geo": "FR","timeRange": "today 3-m","scale": "group","comparedWith": ["tea"],"latestInterest": 60,"recentAverageInterest": 60,"previousAverageInterest": 50,"trendChangePercent": 20,"trendDirection": "rising","volatilityScore": 0.18,"seasonality": null,"breakoutQueries": ["example breakout query"],"interestOverTime": [{"date": "2026-10-20T00:00:00.000Z","value": 60,"hasData": true,"isPartial": false}],"errors": []},{"itemType": "trendingNow","searchTerm": "example news topic","geo": "FR","trendingRank": 1,"approxTraffic": "2K+","approxTrafficMin": 2000,"newsItems": [{"title": "Example headline","url": "https://news.example.com/article","source": "Example News","picture": null,"snippet": null}],"interestOverTime": [],"scale": null,"errors": []}]
How much does it cost to scrape Google Trends?
The Actor has one all-inclusive price: $2.50 per 1,000 searches ($0.0025 per search) under pay-per-event pricing (event search). The Pricing tab shows the price that applies to your run. Apify's free plan includes $5 of monthly credit: about 2,000 searches a month for free.
Run start: each run also has a small start fee of $0.001 per GB of memory, charged automatically by Apify: $0.004 per run at the default 4 GB. It covers starting the container, so a run that finds nothing costs you less than half a cent.
One search = one search term × one country (location) queried. Everything is included in that price:
- interest over time, in summary rows, time-series rows or both (never billed per date);
- interest by country, region, city or metro;
- top and rising related queries, breakout queries and related topics;
- trend analytics:
trendDirection,trendChangePercent,volatilityScore,seasonality; - topic lookup and resolution (
includeMatchedTopics,resolveToMainTopic), shared-scale comparisons, Slack/Discord/Telegram alerts, monitoring and the REPORT record.
Example: 50 keywords × 3 countries = 150 searches = $0.375. 1,000 keywords in one country = $2.50. A worldwide query counts as one location.
In Trending searches mode, each country's trending list is one search, whatever the number of trending searches it contains: 5 countries = 5 searches = $0.0125.
You are not charged for:
- search terms with
dataStatusnoDataorfailed(saved, or listed in SUMMARY, for diagnosis); - keywords left out by Keep only these trend directions, and rows left out by Save only new rows;
- in
timeSeriesmode, terms with data but no interest-over-time values (listed in SUMMARYwithoutTimeSeries).
The SUMMARY record reports chargedEvents.search. When the run reaches your maximum cost per run, the Actor stops fetching and ends normally with the searches already paid for; it never charges beyond that limit. Apify compute and Apify Proxy traffic are covered by the event price: you pay for searches, not for servers. External proxy services you bring may charge separately. Keeping only the sections you need reduces requests and run time, not the price per search. Begin with two terms before expanding a batch.
On a 429, timeout or transient network error, the Actor retries and obtains a new proxy session when proxies are configured. Rate limits also lower the number of parallel groups automatically; the SUMMARY record reports requests, rate limits and the final concurrency. Without a proxy, all requests share your IP, so a rate limit pauses the whole run. A new session does not guarantee a different exit IP or a fixed recovery time. Without proxies, new cookies do not change your IP. Rate limits can still prevent collection.
Each session behaves like one desktop Chrome visitor: it opens the explore page first, keeps every cookie Google sets for the rest of the session, and sends consistent browser headers (the same User-Agent and client hints, Accept-Language matching Language, the explore page as Referer, same-origin fetch headers). This makes requests more realistic; it does not guarantee that Google answers them.
Tips and troubleshooting
- Paste Google Trends URLs to reuse their terms, country, category, period and search type. URL comparisons support up to five terms.
customTimeRangeusesYYYY-MM-DD YYYY-MM-DDand overrides the preset period for typed keywords.trendWindowPointsdefaults to seven complete observations per window. These can be hours, days or weeks. Missing and partial points are excluded; growth is null with insufficient data or a zero previous average.- Low-volume searches can yield no data. Missing data is not zero interest.
- A keyword with too little search volume is a valid answer: the run succeeds and the row has
dataStatus: "noData". The run fails only when Google answered no request at all (for example every request blocked after all retries), so schedules and integrations can detect it and retry. - The SUMMARY record reports
outputMode,timePointsPushed,trendDirectionsandfilteredOut, and intimeSeriesmodediagnosticRowsNotSavedandwithoutTimeSeries. - Turn on Include related topics for Knowledge Graph topics. Google currently often returns empty topic lists to automated requests; an empty list is noted in
errors; topics are included in the search price.
Automate with n8n, Make, Zapier, Clay and AI agents (MCP)
Every run can be started from another tool, and its results read back as JSON, CSV or Excel. The Actor ID is dgn-lab/google-trends-scraper (dgn-lab~google-trends-scraper in API URLs). Get an API token in Apify Console > Settings > API & Integrations and keep it in your tool's credential store: never paste it into shared workflows, public files or prompts.
Apify API: run and get the results in one request
curl -X POST "https://api.apify.com/v2/actors/dgn-lab~google-trends-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>&format=json&maxTotalChargeUsd=5" \-H "Content-Type: application/json" \-d '{"searchTerms": ["coffee", "tea"], "compareTerms": true, "geo": "FR", "timeRange": "today 3-m"}'
The request body is the Actor input (same fields as the Input tab) and the response is the dataset items. Use format=csv or format=xlsx for a file, and maxTotalChargeUsd to cap what one run can cost. This synchronous endpoint answers with HTTP 408 when the run lasts more than 300 seconds. Large keyword batches and Google rate limits make runs longer, so keep synchronous calls to a few terms. For longer runs, start the run with POST https://api.apify.com/v2/actors/dgn-lab~google-trends-scraper/runs and read GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items once it has finished, or let a webhook tell you (below). The API tab shows the same calls in JavaScript, Python and cURL.
n8n
- Install the official Apify node: on n8n Cloud, search Apify in the nodes panel; self-hosted, go to Settings > Community Nodes and install
@apify/n8n-nodes-apify. - Add the node with the operation Run an Actor and get dataset, select
dgn-lab/google-trends-scraperand paste your input JSON in Custom input. - Send the rows to Google Sheets or a database. For charts, set
"outputMode": "timeSeries"to get one row per date; for a news or content workflow, use"trendingNowGeos": ["US"]and pass the trending titles to an AI step.
To process scheduled runs instead, start the workflow with the On new Apify Event trigger on this Actor (or on your saved task). In an AI Agent workflow, add the Apify Tool so the agent can run the Actor itself. Guide: Apify n8n integration.
Make
Add the Apify app, module Run an Actor with Run synchronously set to Yes, then Get Dataset Items with the run's default dataset ID, then for example Google Sheets Bulk Add Rows. Make limits how long a synchronous module can wait; for longer runs use the Watch Actor Runs trigger and start the Actor from a schedule. Guide: Apify Make integration.
Zapier
Zapier waits at most 30 seconds for a synchronous Run Actor action, so for this Actor use the trigger Finished Actor run (or Finished task run for a saved task), then the search Fetch dataset items, then your next app (Google Sheets, a CRM, Slack, Gmail). Start the runs from an Apify schedule or from another Zap with Run Actor (asynchronous). Guide: Apify Zapier integration.
Clay
There is no Apify app inside Clay; use Clay's own HTTP API integration with the synchronous endpoint above (method POST, token in the URL from your Clay secrets). For example, one keyword per row: {"searchTerms": ["{{Keyword}}"], "geo": "US", "timeRange": "today 12-m"}, with your column inserted in place of {{Keyword}}, then map trendDirection, trendChangePercent and averageInterest.
AI agents and MCP clients
Add the Apify MCP server to Claude, ChatGPT, Cursor, VS Code or any MCP client with this URL, which loads only this Actor as a tool:
https://mcp.apify.com?tools=dgn-lab/google-trends-scraper
On the first connection your browser opens to sign in to Apify (OAuth), so no token is written in the client configuration. The agent can then run the Actor and read its dataset (get-dataset-items). With the Apify CLI, apify mcp install <client> writes the configuration for you.
Schedules and webhooks
Save your input as a task, then create a schedule in Apify Console > Schedules with a cron expression and time zone. To push results to your own system, open the Actor's or task's Integrations tab and add a webhook on the ACTOR.RUN.SUCCEEDED event: Apify sends a POST request with the run details, including defaultDatasetId, to your URL. See webhooks.
FAQ, disclaimer and support
Can I use it as a Google Trends API?
Yes. Start it from the Apify API, n8n, Make, Zapier or an MCP client (see above) and get structured rows instead of charts. It reads the data the Google Trends website loads; it is not an official Google product, and dataStatus and errors tell you what each row covers.
Why are Google Trends values between 0 and 100?
Google Trends gives relative interest, not search volumes: 100 is the peak of the request's period and location. Values from separate requests, regions and related queries each have their own scale (see Compare keywords accurately).
Why does a keyword return no data?
Low-volume searches can have too little data in Google Trends. The row is saved with dataStatus: "noData" for diagnosis and is not charged. Missing data is not zero interest.
How do I compare more than 5 keywords in Google Trends?
Google's own tool stops at 5 terms. Enter as many keywords as you need with Compare terms together on: the Actor builds comparisons of 5 that share an anchor term, then rescales them to one common 0–100 scale. It is an approximate calibration; scale, anchorTerm and lowPrecision tell you how each value was obtained. See Compare keywords accurately.
How do I find rising and Breakout keywords?
Keep Include related queries on: every keyword gets its rising related queries, with Google's Breakout label (growth above 5,000%) when it applies, and its own trendDirection. Use Keep only these trend directions to save only breakout and rising keywords, and add a webhook to be alerted. See Spot rising and breakout keywords.
Can I download Google Trends data for many countries at once?
Yes. Add several codes in Locations (several countries) (geos): each keyword is queried in each country, and every row keeps its geo. Each keyword × country pair is one search ($0.0025).
How much does it cost to export Google Trends data?
$2.50 per 1,000 searches, with interest over time, regions, related queries, topics, alerts and CSV exports included. 100 keywords in one country cost $0.25; keywords with no data are free.
Is it legal to scrape Google Trends?
The Actor reads aggregated, public Google Trends data and does not collect data about individual users. Trending searches and news headlines can still name people. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
Support
Use the API tab for code examples. For a bug, open the Issues tab with the input and run ID. Remove credentials from anything you share.