Google Trends API: demand over time and by region in one call
Send a keyword. Get back a weekly interest line and a score for every state, as rows you can sort. One call costs €0.0015.
- per 1,000 calls
- €1.50
- per call
- €0.0015
- 0.15 cents
- rows per call
- up to 104
- per 1,000 rows
- ≈ €0.0144
What one Google Trends call gives you
The Google Trends API returns both main Trends charts for one keyword in a single call: about 53 weekly interest points for the past 12 months, plus one row per region. One call costs €0.0015, so checking 1,000 keywords costs €1.50. Our page of all data APIs and prices lists every other source next to it. Save a keyword once, and every run's charts are stored in your Scrapewise account for the table, Excel, your AI assistant or the API.
We ran it for "bitcoin" in the US on 16 September 2026 and got 104 rows. 53 were weeks. In the eight weeks to mid September the score moved between 16 and 28. The other 51 rows were the 50 states plus Washington DC, led by Wyoming at 100, Nevada at 46 and Kansas at 44. A widget column marks which chart each row belongs to, so one filter splits them.
Most sellers open the Trends website, type a product, look at the line and move on. That's fine for three ideas. It falls apart at 200 ideas every Monday, and home-made scripts built on unofficial libraries such as pytrends stop working whenever Google changes something. Here you send the keyword and get rows back that go straight into a sheet.
This page is the front door to our seven Trends APIs. If you only need one of the two charts, want related searches, or want today's trending list with no keyword at all, the table below points you to the right one. They all cost the same per call.
Which Trends API do I need?
Every Trends API below costs €0.0015 per call. Pick by what you send and what you want back.
| API | What you send | What you get back | Rows | Best for |
|---|---|---|---|---|
| Google Trends API | One keyword | Weekly interest plus interest by region | About 104 for a US keyword over 12 months | A first demand check on a product idea |
| Interest over time API | One or more keywords | A dated weekly series, one value per keyword | About 53 per year | Seasonality, reorder planning, charts |
| Compare keywords by region | Two or more keywords, comma separated | Which keyword leads in each region | About 51 for the US | Your brand against a rival, state by state |
| Interest by region API | One keyword | A 0 to 100 score for every region | About 51 for the US | Choosing ad states and stock locations |
| Related queries API | One keyword | 25 top and 25 rising searches | 50 | Listing titles and video ideas |
| Related topics API | One keyword | Top and rising brands, companies and subjects | About 27 | Finding competitors and adjacent products |
| Google Trending Now API | Country only, no keyword | What people search right now, with volume | About 298 | Same-day posts and catching fads |
Who checks Google Trends before they spend money
Amazon and Shopify sellers
Check an idea before you send a supplier a deposit for 500 units. If the weekly line has slid for three months, you've kept your cash. If it's climbing, the region rows show where to aim your first ads.
YouTube creators
A video takes days to make. Look at the weekly points first and see if Google searches for the topic are growing into the week you'd publish, or already fading.
Local and seasonal businesses
A pool supply store or a snow removal crew can see which weeks searches start to climb and which states search hardest. That's what you plan staff, stock and ad budgets on.
Developers replacing pytrends
If your script keeps hitting rate limits or returns empty frames, swap it for one HTTP request. Both charts come back as rows, with your keyword, country and time range stamped on each one.
How it works
Type a keyword
Enter one search term, like 'heated vest'. The country is US unless you pick another code, such as GB or DE. Past 12 months is the default range.
Put it on a schedule
Run it once, or weekly. Every run saves the weekly rows and the region rows with the date you ran it.
Read both charts
Open the table or Excel, pull rows by API, or ask your AI assistant: 'in which states is interest in heated vest highest right now?'
Set it up once. The data keeps coming.
Save your search once and it runs by itself. Every run lands in your own Scrapewise database, and you pick how to read it.
Set it up once
Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.
Runs on your schedule
Pick daily, weekly on the days you choose, every few days, or the first or last day of the month. Scheduled runs start at night, European time. Need it more often? Start runs from your own code.
Saved in your database
Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.
Use it your way
Open the table in the web app and download the latest run as an Excel file. Ask your own AI assistant about it. Or pull the rows into your code with an API key.
Ask your AI assistant about your own data
Connect Claude Desktop, Claude Code or another MCP app with a read-only key. The assistant reads the rows you've already collected, at no extra cost on Scrapewise. With a full-access key it can start a run for you too.
- Which of my ASINs lost the Buy Box this week?
- Which competitor cut prices the most since Monday?
- Show the keywords where I dropped out of the top 10.
What you send and what you get back
You send a search term, and if you like a country code and a time range. For a US keyword over 12 months you get about 104 rows: 53 weekly points and 51 region rows, marked by the widget column.
- Search termrequired
bitcoin - Location (country code)optional
US - Time rangeoptional
today 12-m - Data typeoptional
(default: both)
Up to 104 rows per call, 25 columns each
- sw status
- sw source url
- sw position
- sw title
- sw url
- sw external id
- sw id kind
- sw published at
- sw location
- sw fetched at
- widget
- date
- +13 more, see all columns
Sample rows: "bitcoin" in the US, past 12 months
Real rows from a call made on 16 September 2026. Weekly rows fill the date and values columns. Region rows fill location and value. Blank cells belong to the other chart.
All 25 columns
- sw status
- sw source url
- sw position
- sw title
- sw url
- sw external id
- sw id kind
- sw published at
- sw location
- sw fetched at
- widget
- date
- timestamp
- values[0]_query
- values[0]_value
- values[0]_extracted_value
- geo
- location
- max_value_index
- value
- extracted_value
- ctx_search_parameters_q
- ctx_search_parameters_geo
- ctx_search_parameters_date
- ctx_search_metadata_google_trends_url
sw status_sw_statusResult of this row: OK, no results, or an error | sw source url_sw_source_urlThe input you gave: a link, keyword or ID | sw position_sw_positionRank of the item as the site shows it | sw title_sw_titleMain name of the item | sw url_sw_urlDirect link to the item | sw external id_sw_external_idThe site's own ID for this item | sw id kind_sw_id_kindWhat kind of ID the external ID is | sw published at_sw_published_atPublish or update date in ISO format | sw location_sw_locationPlace the result is priced or ranked for | sw fetched at_sw_fetched_atWhen we collected this row (UTC) | widgetwidgetWidget | datedateDate | timestamptimestampTimestamp | values[0]_queryvalues[0]_queryValues #1 query | values[0]_valuevalues[0]_valueValues #1 value | values[0]_extracted_valuevalues[0]_extracted_valueValues #1 extracted value | geogeoRegion code | locationlocationRegion name | max_value_indexmax_value_indexMax value index | valuevalueValue as shown | extracted_valueextracted_valueNumeric value | ctx_search_parameters_qctx_search_parameters_qRequest context: search parameters q | ctx_search_parameters_geoctx_search_parameters_geoRequest context: search parameters geo | ctx_search_parameters_datectx_search_parameters_dateRequest context: search parameters date | ctx_search_metadata_google_trends_urlctx_search_metadata_google_trends_urlRequest context: search metadata google trends url |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 51 | bitcoin | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | 1788048000 | topic | 2026-08-30T00:00:00Z | US | 2026-09-16T11:06:46Z | interest_over_time | Aug 30 – Sep 5, 2026 | 1788048000 | bitcoin | 21 | 21 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | |||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 52 | bitcoin | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | 1788652800 | topic | 2026-09-06T00:00:00Z | US | 2026-09-16T11:07:23Z | interest_over_time | Sep 6 – 12, 2026 | 1788652800 | bitcoin | 16 | 16 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | |||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 53 | bitcoin | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | 1789257600 | topic | 2026-09-13T00:00:00Z | US | 2026-09-16T11:08:00Z | interest_over_time | Sep 13 – 19, 2026 | 1789257600 | bitcoin | 17 | 17 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | |||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 54 | Wyoming | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | US-WY | topic | US-WY | 2026-09-16T11:08:37Z | interest_by_region | US-WY | Wyoming | 0 | 100 | 100 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | ||||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 55 | Nevada | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | US-NV | topic | US-NV | 2026-09-16T11:09:14Z | interest_by_region | US-NV | Nevada | 0 | 46 | 46 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | ||||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 56 | Kansas | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | US-KS | topic | US-KS | 2026-09-16T11:09:51Z | interest_by_region | US-KS | Kansas | 0 | 44 | 44 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | ||||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 57 | California | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | US-CA | topic | US-CA | 2026-09-16T11:10:28Z | interest_by_region | US-CA | California | 0 | 42 | 42 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | ||||||
| OK | https://trends.google.com/trends/explore?q=bitcoin&geo=US | 58 | New York | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D | US-NY | topic | US-NY | 2026-09-16T11:11:05Z | interest_by_region | US-NY | New York | 0 | 42 | 42 | bitcoin | US | today 12-m | https://trends.google.com/trends/embed/explore/TIMESERIES?hl=en&tz=420&req=%7B%22category%22%3A0%2C%22comparisonItem%22%3A%5B%7B%22geo%22%3A%22US%22%2C%22keyword%22%3A%22bitcoin%22%2C%22time%22%3A%22today+12-m%22%7D%5D%2C%22property%22%3A%22%22%7D |
What each column means
Columns that start with sw are the same on every Scrapewise data API, so one sheet or script works across sources. The others come from Google Trends as they are.
Which chart a row belongs to
widget is interest_over_time or interest_by_region. sw position is the row's place in its chart. sw status says OK, no results or error for that row.
- widget
- sw position
- sw status
Weekly points
date is the week as Google words it, for example Sep 6 to 12, 2026. sw published at is the start of that week as an ISO date, so it sorts correctly, and timestamp is the same moment in Unix seconds. The values columns hold the keyword and its score, once as text and once as a number.
- date
- timestamp
- sw published at
- values[0]_query
- values[0]_value
- values[0]_extracted_value
Region rows
location is the region name and geo its code, such as US-WY. value is the score as Google shows it and extracted value is the same score as a number. max value index is 0 on a one-keyword call. sw location is the place a row was measured for: the country on weekly rows, the region code on region rows.
- location
- geo
- value
- extracted_value
- max_value_index
- sw location
Row identity and links
sw title is the keyword on weekly rows and the region name on region rows. sw external id is the week timestamp or the region code, so you can match rows between runs, and sw id kind says what sort of ID it is. sw source url is the Trends page for your input, sw url is the chart the row came from, and sw fetched at is when we collected it, in UTC.
- sw title
- sw external id
- sw id kind
- sw source url
- sw url
- sw fetched at
Your request, on every row
Each row repeats the keyword, country and time range you asked for, plus the Trends link for the request. Stack 200 keywords in one sheet and these columns keep them apart.
- ctx_search_parameters_q
- ctx_search_parameters_geo
- ctx_search_parameters_date
- ctx_search_metadata_google_trends_url
What sellers do with Google Trends data
Drop falling product ideas
Pull 12 months for 10 ideas. Compare the last 8 weeks with the first 8 weeks of the range, which are the same weeks a year earlier. Anything lower goes in the bin. Ten checks cost €0.015.
Pick the states for your first ads
Sort the region rows by score and start with the top 10. Scores are a share of all searches in that state, which is why Wyoming beat California 100 to 42 for bitcoin.
List before the season starts
Run 5 years instead of 12 months so one odd year doesn't fool you. Find the week the line starts climbing and have stock in the warehouse 2 weeks before it.
Retire a fragile pytrends script
No cookies, no retry loops, no parsing Google's page. You get the numbers from both charts as clean rows.
Send a Monday demand report
Schedule 200 keywords every week for about €1.29 a month, then chart them in Google Sheets or Looker Studio.
What it costs in real life
Home goods seller screening ideas
Checks 50 new product ideas every week before placing supplier orders. That's about 215 calls a month, or roughly €0.32.
- calls per month
- 215
- cost per month
- €0.323
Tech channel choosing video topics
Runs 20 video ideas every morning to see which are rising. 600 calls a month come to €0.90.
- calls per month
- 600
- cost per month
- €0.90
Marketing agency weekly report
Tracks 300 client keywords every Monday for a demand report. About 1,290 calls a month, close to €1.94.
- calls per month
- 1,290
- cost per month
- €1.94
Why use this Trends API
When and where, for one price
The weekly line and the region scores come back together. You don't pay a second call to see where demand sits.
No plan to outgrow
There's no monthly fee and no minimum. A €10 top-up pays for about 6,600 keyword checks, and results stay in your account for 90 days.
Columns that match your other data
The sw columns are the same on our Amazon, YouTube and Google Search APIs, so a demand check and a listing check join on one sheet.
What your Trends checks cost
Each call costs €0.0015, however many rows come back. Enter how many keywords you check and how often. Compare all data APIs
- Rows (up to)
- 104,000
- You pay
- €1.50
Frequently asked questions
Google scales interest from 0 to 100. 100 is the highest point for that keyword in the place and time range you chose, and 50 means half that level. They're relative shares, not search counts, so a score of 20 for one keyword can't be compared with 20 from a separate call.
Ready to pull Google data into your stack?
Your first 5 requests are free. After that you top up a wallet from €5 and pay €0.0015 per call, with no plan and no monthly fee. Our pay-as-you-go pricing page explains the wallet.