Google Trends Scraper - Interest, Regions & Related Queries
Pricing
from $0.06 / 1,000 google trends rows
Google Trends Scraper - Interest, Regions & Related Queries
Get Google Trends data: interest over time, by region, and top and rising related queries for up to 25 keywords or Trends links, plus any country's Trending Now list. Each value is Google's 0 to 100 index against the keyword's own peak, not a search volume. $0.06 per 1,000 rows.
Pricing
from $0.06 / 1,000 google trends rows
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
8 days ago
Last modified
Share
Type up to 25 keywords, or paste Google Trends links, and get Google Trends back as flat rows: one per point on the interest chart, one per region, one per related search, and one per entry in a country's Trending Now list. No Google account and no API key.
Read this before you build on it. Every value is Google's own 0 to 100 index, not a search volume.
100 is the peak of the exact series you asked for, so changing the region, the time range or the
category rescales the whole thing, and two keywords pulled in separate runs are not comparable.
Google does not publish absolute search counts to anyone, so no tool can give you them.
| Input | Up to 25 keywords or Trends links, and country codes for Trending Now |
| Output | One row per datapoint, region, related query or trending search |
| Ceiling | 20,000 rows per run |
| Account needed | None, and no Google API key |
| Price | $0.06 per 1,000 rows on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 83,000 |
๐ What Google Trends Scraper does
It pulls the three panels the Trends website shows for a keyword, and flattens each into rows.
Interest over time is one row per point on the chart. The range decides how fine the points are:
the past day is minute by minute, a year is weekly, all is monthly back to 2004.
Interest by region is one row per place. Worldwide runs break down by country, a single country by state or province, or by city or metro area if you ask.
Related and rising queries is one row per related search, marked top for the ones consistently
searched alongside your keyword and rising for the ones growing fastest.
Trending Now is separate. Give it country codes and you get what is spiking in each one now, with the top news story behind it. No keywords needed. Pick a time window, categories or a maximum and it reads the full Trending Now list instead, hundreds of searches a day in a large country, each with its search volume, how fast it rose and when it started and stopped, but no news story.
๐ What data you get from Google Trends
| What you get | Field |
|---|---|
| Which panel the row came from | recordType |
| The keyword and the settings behind it, on every row | keyword, geo, timeframe, searchType, category, trendsUrl |
| Google's 0 to 100 index, and its own label for it | value, formattedValue |
| The point in time, and the label Google prints on the chart axis | date, dateLabel |
| Whether the last point is still filling in | isPartial |
| A region's name and code, and coordinates at city level | geoName, geoCode, latitude, longitude |
| A related search, top or rising, and its rank | relatedQuery, queryType, rank |
| Trending Now: the approximate search count Google publishes, and the story behind it | trafficEstimate, newsTitle, newsUrl, newsSource |
| Trending Now, full list: volume, rise, start and end, the searches in it, its categories | searchVolume, increasePercent, date, endedAt, isActive, trendBreakdown, trendCategories |
โถ๏ธ How to scrape Google Trends
- Open Google Trends Scraper and click Try for free.
- Put your keywords into Keywords, deleting the examples first. Or paste links from the Trends Explore page into Google Trends links: each keeps its own region, range and category.
- Set Region and Time range, and untick anything in What to return you do not need.
- Set Maximum rows. Around 200 is enough to see what one keyword produces. Then click Start.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
An empty input writes one labelled sample row and stops there, so you can see the shape first.
๐ฐ How much does it cost to scrape Google Trends?
$0.06 per 1,000 rows on the Free plan, $0.059 on Starter, $0.058 on Scale and $0.057 on Business. The free plan's $5 a month covers about 83,000 rows.
Every delivered row costs the same, whichever panel it came from. Points Google marks as empty never become rows. Sample rows, diagnostic rows and a keyword with no data are free.
๐ฅ What you give it
{"searchTerms": ["bitcoin", "ethereum"],"geo": "US","timeframe": "today 12-m","dataTypes": ["interestOverTime", "interestByRegion", "relatedQueries"],"maxItems": 500}
| Field | Default | What it is |
|---|---|---|
searchTerms | none, the box starts at bitcoin, ethereum | Keywords or phrases, up to 25. Each is looked up on its own. |
geo | worldwide, the box starts at US | A two-letter country, a sub-region like US-CA or GB-ENG, or empty for worldwide. |
timeframe | today 12-m | One of the ranges in the dropdown, or a custom range typed as 2024-01-01 2024-12-31. |
dataTypes | all three | interestOverTime, interestByRegion, relatedQueries. Untick what you do not need and the row count falls with it. |
maxItems | 1000 | Total rows for the run, up to 20,000. |
compareKeywords | off | Puts the first five keywords on one shared scale. Needs at least two keywords to do anything. |
searchType | web | web, images, news, youtube or shopping. |
regionLevel | default | country, region, city or metro. City and metro need a single country, and metro is United States only. |
category | 0 | Google's own numeric category id, like 71 for Food and Drink. 0 is every category. |
language | en-US | How region names and labels are spelled. It changes no numbers. |
trendingNowGeos | none | Country codes for the Trending Now list, up to 20. Usable on its own. |
trendingNowHours | none | 4, 24, 48 or 168. Set this, the categories or the maximum and the full Trending Now list is read, over 24 hours unless you pick another window. |
trendingNowCategories | none | Keep only these categories, such as sports or technology, as Google files each search. |
trendingNowMaxItems | none | Most trending searches per country, in Google's order. |
trendsUrls | none | Links from the Trends Explore page, up to 25. Several terms in one link share one scale. |
splitCommas | off | Turns bitcoin, ethereum on one line into two keywords. Off, the comma is part of the term. |
proxyUrls | none | Optional. Your own servers, used exactly as given. |
Budget about 150 rows per keyword with all three data sets over twelve months. City and metro detail add roughly 200 rows each on their own.
A geo the run cannot read means worldwide, not an error: it wants US, not USA. An
unreadable timeframe falls back to twelve months the same way, and an API call with no geo is
worldwide too, whatever the form suggests.
๐ค What you get back
A real row from a run in September 2026:
{"ok": true,"keyword": "bitcoin","geo": "US","timeframe": "today 12-m","searchType": "web","category": 0,"trendsUrl": "https://trends.google.com/trends/explore?q=bitcoin&date=today+12-m&geo=US","recordType": "interest_over_time","date": "2025-09-21T00:00:00.000Z","dateLabel": "Sep 21, 2025","value": 26,"formattedValue": "26","isPartial": false,"scrapedAt": "2026-09-21T01:23:40.241Z"}
| Field | How to read it |
|---|---|
value | Google's 0 to 100 index for this row. Not a volume. |
formattedValue | Google's own label. On rising related queries this is where Breakout and +450% appear, which the number cannot express. |
date | ISO 8601 in UTC, on interest-over-time rows and on a trending row's publication time. null on regional and related rows. |
dateLabel | The same instant as Google prints it on the chart axis, kept because a weekly point covers a range the timestamp hides. |
isPartial | True on a final point whose period has not finished. It will move. Drop those before charting a trend line. |
rank | On related queries, the position with 1 strongest. |
๐งพ Reading the output
Three kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A datapoint | _sample and _diagnostic both absent | yes |
| The sample row | _sample: true and recordType: "sample" | no |
| A diagnostic | _diagnostic: true and an errorCode | no |
| Code | What it means |
|---|---|
NO_RESULTS | Google has no data for that keyword in that region and range. Broaden one of them. |
RATE_LIMITED | Google throttled that request and would not answer it. Re-run, or ask for less in one go. |
NOT_SERVED | This request was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED. |
NOT_FOUND | Google's trending feed for that country did not answer. |
NETWORK | Google was unreachable or answered badly. |
TIME_BUDGET | The run hit its time limit before reaching that keyword. Everything already delivered is complete. |
BAD_INPUT | A Trends link or a Trending Now option the run could not use, refused before anything was fetched. The row says which and why. |
PROXY_INPUT_ADJUSTED | A network setting in your input was not usable, so it was not applied. |
CHARGE_ERROR | A charge could not be recorded. The run stops handing over rows rather than continuing quietly. |
One keyword with no data never stops the others, and a diagnostic row never fails the run.
๐ก What people use it for
- Checking whether a product name is actually growing before committing a budget to it.
- Pulling rising related queries every week and using them as the content or keyword backlog.
- Finding which states or cities index highest for a term, then pointing spend at those first.
- Watching the Trending Now list for a country on a schedule, with the news story attached.
From a rising query to the questions behind it, in three runs:
- Run this with
dataTypesset torelatedQueriesand keep the rows wherequeryTypeisrising. - Paste those
relatedQueryvalues into Keyword Autocomplete Scraper'sseedswithexpandQuestionson. - Run the best questions through
Google Search Results Scraper's
queryto see who answers them today.
๐ง What it does not do
- No absolute search volumes. The 0 to 100 index is all Google publishes.
- No related topics. Google returns an empty list for that panel to callers who are not signed in, so shipping the field would mean shipping an always-empty column. Related queries are unaffected.
- Two separate runs are not comparable. Each keyword is scaled against its own peak unless you
turn on
compareKeywordsand run them together. - Comparison mode takes five keywords, which is Google's own limit. Extras are dropped and the run says so in the log.
- A low-volume keyword returns nothing, not a flat line of zeroes. Google suppresses series it
considers too thin, and you get a free
NO_RESULTSrow. - City and metro detail is best effort. Google publishes city data only for some terms and countries; elsewhere the run falls back to the level it does publish.
- The last point of a series is usually partial and will move if you re-run later the same day.
- Trending Now is a live snapshot: two runs an hour apart differ. The full list carries no news.
- A Trends link that compares regions or time ranges against each other is refused. Links that compare search terms are fine.
- It is not an official Google tool. Dami's Studio is independent and is not affiliated with or endorsed by Google, or by any other company named on this page.
๐งญ Which Google scraper do you need?
| If you want | Use |
|---|---|
| The web results page for a keyword: organic, ads, People Also Ask | Google Search Results Scraper |
| What a search box suggests as people type | Keyword Autocomplete Scraper |
| Interest in a keyword over time and by region | This one |
| News articles with the publisher's real link | Google News Scraper |
| Image results and the pages they sit on | Google Images Scraper |
| The ads a brand runs on Google | Google Ads Transparency Scraper |
โ Questions people ask
Do I need a Google account or an API key to scrape Google Trends?
No. Nothing to sign up for and no quota.
Why don't the numbers match the Trends website?
Check that the region, the time range, the category and the Google property match: each one
rescales the series. The surest way is to paste the page's own link into trendsUrls. And a keyword run on its own is scaled against its own peak, while the website
puts several typed together on one scale. Turn on compareKeywords for that view.
What happens when a keyword has no data?
One free NO_RESULTS row for it, and the run carries on to the rest.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made
code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/google-trends-scraper. Either way the
run happens on your Apify account at the same price.
Is scraping Google Trends legal?
Trends is public and aggregated. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
๐ If something breaks
Open the Issues tab on the actor page. Send the keyword, the region and the run ID. The
errorCode on the diagnostic row usually names the problem on its own.