Google Trends Scraper API
Pricing
from $2.40 / 1,000 results
Google Trends Scraper API
Compare Google Trends keywords for SEO and seasonal research. Export relative interest over time, interest by region, related queries and trending searches to CSV or JSON. Choose your country and date range. Maintained by CleanScrape.
Pricing
from $2.40 / 1,000 results
Rating
0.0
(0)
Developer
CleanScrape
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
3
Monthly active users
17 hours ago
Last modified
Categories
Share
Compare how search interest in a few terms changes over time, and export the results to a spreadsheet. The Actor collects interest over time, related queries, regional interest and the public trending-searches feed. Related topics are also available, but Google often returns them empty.
This Actor uses Google Trends website endpoints and its public RSS feed. It is not Google's official API and is not affiliated with Google. Google also offers a separate Trends API alpha, with its own access requirements.
Start with a small run
The form opens with a ready comparison: iced coffee and cold brew in the United States over the Past 12 months, with Interest over time selected. Start it as it is, or replace the two terms with your own.
- Enter up to five Search terms, one per line (a comma also separates terms). Keep terms you want to compare in the same run.
- Choose Results to collect. For a comparison, Interest over time is enough.
- Choose Country and Time range.
- Start the run and open Interest over time in the Output tab. To download it, open Storage > Dataset, choose Interest over time, then CSV, Excel or JSON.
On 2 October 2026 this comparison returned 106 rows (53 weekly values per term) and cost $0.368 at base prices: $0.05 at startup plus 106 x $0.003. Google chooses the intervals, so the row count can differ slightly between runs.
Custom dates (optional) is only for an exact period. Category, region detail, language and proxy settings are under Advanced options; you do not need them for a first run.
Watch: compare two search terms in under a minute
Let's use a coffee shop as an example. The video follows a real run comparing iced coffee and cold brew, from the input form to the timeline results and the CSV/Excel export.
The chart in the video is made in a spreadsheet from the exported rows. It uses 52 completed weeks per term and leaves out the current, incomplete week.
Selected rows from the 2 October 2026 run:
| Week | Keyword | Relative interest | Partial week? |
|---|---|---|---|
| Dec 21 – 27, 2025 | iced coffee | 41 | false |
| Dec 21 – 27, 2025 | cold brew | 35 | false |
| Jun 21 – 27, 2026 | iced coffee | 68 | false |
| Jun 21 – 27, 2026 | cold brew | 100 | false |
| Sep 27 – Oct 3, 2026 | cold brew | 45 | true |
Cold brew reached the peak of the comparison (100) in late June, while iced coffee stayed lower. These are relative interest values, not search counts: 100 is the highest point in this comparison, not 100 searches. The last week is marked partial because it had not finished.
More examples
- Compare ChatGPT and Claude in the United States: interest over time for the past three months. In a September run it returned 186 daily rows, about $0.61 at base prices. For a step-by-step guide to turning the rows into a chart, read Compare Google Trends terms in a spreadsheet.
- Export current US trending searches: no search terms needed. Ten rows cost $0.08 at base prices, including startup. The feed size varies.
- Compare Nike and Adidas search interest: Weekly worldwide Google Trends interest for Nike and Adidas over the past 12 months, ready for a chart.
- Find rising searches related to air fryers: Related and rising Google searches for 'air fryer' in the United States over the past 12 months, for content and product ideas.
- See which US states search for pickleball most: Google Trends interest by US state for pickleball over the past 12 months.
- Download Google Trends data as CSV for the past year: Weekly Google Trends interest for bitcoin over the past 12 months, as rows you can export to CSV, Excel or JSON.
- Compare electric-car search interest by country: Compare relative Google search interest in electric cars by country.
- Get related and rising keyword ideas from Google Trends: Top and rising related searches and topics for skincare in the US over 3 months: keyword ideas for SEO and content.
- Export today's trending Google searches in India: What India is searching for right now, from Google Trends' trending searches, with search volume and related news.
- Compare snow-tire search interest across US metros: See relative Google search interest in snow tires across US metro areas.
Choose what to collect
| You want | Form settings | Output view |
|---|---|---|
| Compare terms over time | Enter Search terms; select Interest over time; choose the country and time range. | Interest over time |
| Related searches | Enter terms; select Related and rising queries. | Related queries |
| Geographic interest | Enter terms; select Interest by region. Adjust Region detail only if needed. | Interest by region |
| Current trending searches | Select only Trending now; choose Country for Trending now. Search terms and Time range are not used by this feed. | Trending now |
| Related topics | Enter terms; select Related topics (limited availability). Empty lists are common. | Related topics |
Each selected type adds its own rows and has its own table in the Output tab, so you can select several in one run. All rows keeps every row together, with a dataType column. To download one table, open Storage > Dataset, choose it in the Dataset menu, then CSV, Excel or JSON. The Export button at the top downloads All rows. From the API, the run's storageIds.datasets lists the tables (timeline, related_queries, related_topics, regions, trending); the default dataset is All rows.
A small regional-interest request:
{"searchTerms": ["cold brew"],"dataTypes": ["interest_by_region"],"geo": "US","timeframe": "today 3-m","regionResolution": "REGION"}
Trending searches need no search terms:
{"dataTypes": ["trending_now"],"trendingGeo": "US"}
Countries and dates
Choose countries by name. Country applies to interest over time, related data and regional interest; Worldwide is also available. Country for Trending now is a separate setting used only by Trending now.
For Time range, pick a preset such as Past 7 days, Past 3 months or Past 12 months. For an exact period, fill in Start date and, if you like, End date; they override the preset. Without an end date the range runs to today. A reversed or invalid date stops the run with an explanation before any data is requested.
Results to collect and availability
dataType | One row represents | What to expect |
|---|---|---|
interest_over_time | A keyword at one returned time point | Relative interest; Google chooses the intervals |
related_queries | A related query for one keyword, in the top or rising list | Lists can be empty or blocked |
related_topics | A related topic for one keyword, in the top or rising list | Often empty; not guaranteed |
interest_by_region | A keyword in one geographic area | Depends on the term, country and region detail |
trending_now | One item from the country's trending feed | A current snapshot, not a full archive |
Related topics are requested separately for each keyword, because Google can leave them out of comparison requests. Topic scores rank topics within one keyword; they are not comparable between keywords. In September 2026 tests, Google returned empty topic lists for several ordinary keywords. Empty lists are reported as empty; the Actor never fills them with related queries or invented topics.
Retries and proxy rotation help with temporary failures. They cannot guarantee complete data or uninterrupted access to Google.
Regional results leave out places where Google explicitly reports insufficient data for a term. A zero score that Google marks as available is kept.
Input reference
| Field | API default | Meaning |
|---|---|---|
searchTerms | None | Up to five keywords; not needed for trending searches |
dataTypes | interest_over_time and trending_now | Result types from the table above |
geo | Empty (worldwide) | Country code for keyword research, such as US or FI |
timeframe | today 12-m | For example today 5-y, now 7-d, or YYYY-MM-DD YYYY-MM-DD |
startDate | None | Exact start date, YYYY-MM-DD. Without an end date, the range runs to today. |
endDate | None | Optional end date, on or after startDate. Custom dates override timeframe. |
category | 0 | Google Trends category ID; 0 means all categories |
language | en-US | Language of Google's labels; results are not translated |
regionResolution | COUNTRY | COUNTRY (worldwide searches; with a country chosen, its regions are used), REGION, CITY or DMA (United States only; other countries fall back to REGION) |
trendingGeo | US | Country of the trending feed. It does not follow geo; set it for any other country. |
proxyConfiguration | Residential Apify Proxy | You can set direct or custom routing explicitly |
The form opens with example values (iced coffee, cold brew, United States, Interest over time). API requests do not get these values; they use the defaults above. A comma separates terms, so "iced coffee, cold brew" is read as two terms, like on Google Trends itself. Only the first five terms are used, and the run says which. Some valid-looking country and time combinations can still fail at Google.
Output reference
Rows come in five shapes, identified by dataType:
| Type | Fields in addition to dataType |
|---|---|
| Timeline | keyword, geo, timeframe, date, dateUtc, timestamp, value, isPartial |
| Related queries | keyword, geo, timeframe, relatedQuery, kind, value, formattedValue, link |
| Related topics | keyword, geo, timeframe, topicTitle, topicType, kind, value, formattedValue, link |
| Regions | keyword, geo, timeframe, resolution, geoName, geoCode, value, plus latitude and longitude for cities |
| Trending | geo, rank, query, approxTraffic, pubDate, relatedNews |
A timeline row from the 2 October 2026 run:
{"dataType": "interest_over_time","keyword": "cold brew","geo": "US","timeframe": "today 12-m","date": "Jun 21 – 27, 2026","dateUtc": "2026-06-21","timestamp": "1782000000","value": 100,"isPartial": false}
date is Google's own label. Use dateUtc (YYYY-MM-DD, with the time for 24-hour and 7-day data) to sort or chart; timestamp is the same moment in Unix seconds, as text. isPartial is true for an unfinished interval. Unknown values stay null.
For related data, kind tells top and rising lists apart. Rising values describe growth, not 0-100 interest, and formattedValue keeps labels such as Breakout. link opens the same comparison on Google Trends. For trending items, approxTraffic is Google's rounded label, not an exact count, and relatedNews holds up to five headlines, not articles or links.
Reading the numbers
Interest values are relative scores, not search counts. Zero can mean too little data to report, not zero searches. Requesting 90 days does not guarantee 90 time points, because Google chooses the intervals. Separate runs can be scaled differently, so only compare values from the same run.
Run report
Open Run summary in the Output tab for a readable status of each requested result type. RUN_REPORT in the run's key-value store has the same information for automation. Each type is marked ok (rows returned), empty (no rows and no detected error), failed (a request or parsing error) or skipped (search terms missing).
A run can succeed while one type is empty or failed, so check the report when completeness matters. If every requested type fails, the run fails.
Pricing
$3 per 1,000 rows ($0.003 each), plus a startup fee of $0.05 per GB of memory, at least one per run. The default memory is 1 GB, so most runs pay one startup fee. Every selected result type adds rows. The startup fee applies even when no rows are returned.
| Billable unit | Base / Free tier | Bronze (-10%) | Silver (-15%) | Gold, Platinum, Diamond (-20%) |
|---|---|---|---|---|
| Startup, per GB of memory | $0.05 | $0.045 | $0.0425 | $0.04 |
| 1,000 rows | $3.00 | $2.70 | $2.55 | $2.40 |
Apify applies your tier's price automatically; the Pricing tab shows your rate. Base-price examples:
| One run | At the 1 GB default | With 4 GB memory |
|---|---|---|
| 24 rows | $0.122 | $0.272 |
| 106 rows (the coffee example) | $0.368 | $0.518 |
| 1,000 rows | $3.05 | $3.20 |
Some other Trends Actors charge one result for a whole keyword history, so compare the total cost of the same data when choosing a tool.
Maximum cost per run covers both the startup fee and the rows. If the next row would go over it, the Actor stops and says so in the run summary. If a run is restarted, rows already saved are kept and are not exported or charged again; Apify may charge another startup fee for the restart.
API and recurring workflows
Use the API tab for ready-made code examples, and keep your API token secure. To track terms regularly, save a task, add a schedule, and fetch each run's dataset through the API or your automation tool. Keep the keyword, country, time range and row type with each value. The Actor does not keep history between runs, send alerts or make forecasts.
Use it from an AI agent
This Actor works as a tool in Claude, Cursor and other AI assistants that support MCP, through Apify's MCP server. Add this server and sign in with your Apify account when asked:
https://mcp.apify.com?tools=cleanscrape/google-trends-scraper
Then ask in plain words, for example: "Compare Google Trends interest for "electric bike" and "e-scooter" in Germany over the past 12 months." The assistant runs the Actor in your Apify account and reads the results. The price per result is the same as in Console.
Common questions
Is there an official Google Trends API?
Google's own Trends API is still a limited alpha that most people can't join. This Actor gives you the same data as the Google Trends website through the Apify API: interest over time, interest by region, related queries and trending searches.
Is this a pytrends alternative?
Yes. pytrends was archived in April 2025 and often fails with 429 errors. Here the retries and proxies run on our side, and you get rows back.
If you already have pytrends code, use trendreq: the same TrendReq methods and DataFrames, running on this Actor. Change the import to from trendreq import TrendReq and set APIFY_TOKEN.
Or call the Actor directly:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("cleanscrape/google-trends-scraper").call(run_input={"searchTerms": ["iced coffee", "cold brew"],"dataTypes": ["interest_over_time"],"geo": "US","timeframe": "today 12-m",})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
Why does the interest only go up to 100?
Google Trends shows relative interest. 100 is the peak for the terms and period you compared, not 100 searches. Keep terms you want to compare in the same run.
How many terms can I compare?
Up to five in one comparison, like on the Google Trends website. If you enter more, only the first five are used.
How much does it cost?
$3 per 1,000 rows plus a $0.05 start fee at the default 1 GB of memory. Two terms over 12 months come to about $0.37. See Pricing above.
Support
CleanScrape maintains this Actor for one-off research and recurring workflows. We investigate reported errors, update the Actor when Google changes, and test changes against existing inputs and output formats.
| What you see | What to try |
|---|---|
| No related topics | Expected for many terms; check the run summary. |
| Keyword results skipped | Add Search terms. Only Trending now works without them. |
| HTTP 429 or blocked requests | Keep the residential proxy on and try a smaller run later. |
| Higher cost than expected | Count the rows of every selected result type, and the startup fee per GB of memory. |
| Fewer time points than expected | Google chose a longer interval for the time range. |
If something still looks wrong, open an issue or email contact.cleanscrape@gmail.com with the run ID, a short input example and the result type affected. Never include API tokens or private data.
What worked well, and what could be better? Share your experience in Reviews. Honest feedback is welcome, including anything that fell short. Leaving feedback is optional and does not affect access, pricing or support.
Disclaimer
This Actor is an independent tool developed by CleanScrape. It is not affiliated with, endorsed by, or sponsored by Google. It is not an official Google Trends API. Google, Google Trends and all other trademarks are the property of their respective owners. Brand names are used only to identify supported sources and illustrate usage.
More tools from CleanScrape
- Google Jobs Scraper: job listings with salaries, descriptions and apply links from Google Jobs
- App Store & Google Play Reviews Scraper: reviews from both app stores in one table
- Map Your Show Exhibitor Scraper API: trade show exhibitor lists and booth changes
- Shopify Product Reviews Scraper API: Judge.me and Okendo reviews from Shopify product links
- Google News Scraper API: headlines from Google News and publisher feeds
- Pinterest Scraper API: pins from searches, boards and profiles
- Google Hotels Scraper API: hotel prices and booking offers for your dates
- TikTok Shop Product Scraper: US TikTok Shop prices, sellers and ratings
- Threads Scraper API: public Threads posts from accounts or post links
- Likee Scraper API: Likee videos and comments
- Tennis Scraper API: tennis results, statistics, point-by-point and head-to-head
- Bilibili Scraper: Bilibili videos, danmaku, top comments and creators, no login