Skip to content

Google Trends Scraper

Try for free

Scrape Google Trends for a search term or explore URL. Each result includes interest over time, interest by country or region, and the related queries Trends returns.

📈 Google Trends Scraper

Get Google Trends data as clean JSON, one row per search term. Each result holds interest over time, interest by country or region, and the top and rising related queries, with no Google account and no API key. Compare up to five terms on one chart, or paste an explore URL you already have.

✨ Why use Google Trends Scraper?

  • 📊 Full Trends picture — interest over time, geography, related queries, and related topics in a single item.
  • ⚖️ Compare terms — separate up to five terms with commas to compare them on the same chart.
  • 🌍 Geo and time control — worldwide or a single country, from the past hour to 2004 onward, or a custom date range.
  • 🔗 Terms, URLs, or a Sheet — search terms, explore URLs, or a public Google Sheet with a term list.
  • 🔓 No login — it reads public Trends pages only.
  • 💸 Cheap — $2 per 1,000 results, and one result is a whole term, not one time point.

🎯 Use cases

  • 📣 Marketing and brand tracking — see how interest in a product, brand, or topic moves over days, months, or years.
  • 🗺️ Market research — find which countries or regions search for a term most.
  • ✍️ SEO and content planning — mine related queries and rising searches for ideas.
  • 🛍️ Seasonality and demand — spot yearly peaks before a campaign or a stock order.
  • 🆚 Competitor comparison — put your brand next to up to four others on one chart.

🚀 How to use

  1. Add Search terms (or paste Google Trends URLs, or give a Google Sheet ID).
  2. Optional: set the Time range, Geo area, Category, or tick Multiple terms to compare comma-separated terms.
  3. Set Max items (default 10).
  4. Click Start.
  5. Open the dataset and export it as JSON, CSV, or Excel, or read it with the API.

📥 Input

FieldTypeWhat it does
searchTermsarrayOne result per term. With isMultiple, a comma splits a row into a comparison of up to five terms.
startUrlsarrayExplore URLs from trends.google.com. Geography, date, and category in the URL override the filter fields.
maxItemsintegerMaximum results. 0 means no limit. Default 10.
timeRangestringA preset: now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 5-y, all. Empty means the past 12 months.
customTimeRangestringYYYY-MM-DD YYYY-MM-DD. Wins over timeRange.
geostringCountry code such as US, or empty for worldwide.
categorystringOptional Trends category id.
isMultiplebooleanCompare comma-separated terms on one chart.
spreadsheetIdstringA public Google Sheet. The first column lists terms and row 1 is skipped.
maxConcurrency / maxRequestRetriesintegerParallel terms (default 3) and retries when Trends rate-limits (default 4).
proxyConfigurationobjectResidential by default. Datacenter addresses are rate-limited.
{
  "searchTerms": ["bitcoin"],
  "timeRange": "now 7-d",
  "geo": "US",
  "maxItems": 10,
  "proxyConfiguration": {
    "useScrapelyProxy": true,
    "scrapelyProxyGroups": ["RESIDENTIAL"]
  }
}

Compare two terms:

{ "searchTerms": ["coffee, tea"], "isMultiple": true, "timeRange": "today 5-y" }

📤 Output

One dataset item per term (or per comparison). The Output tab opens on interest over time, with one row per time point. Other views list related queries, related topics, countries, and regions.

FieldDescription
inputUrlOrTerm, searchTerm, geo, timeRange, urlWhat was searched and the explore URL.
interestOverTime_timelineDataPoints with time, formattedTime, value, hasData, formattedValue.
interestOverTime_averagesPer-term averages in comparison mode.
interestByInterest by country (worldwide searches).
interestBySubregion, interestByCity, interestByMetroFiner breakdowns when you pick a country and Trends publishes them.
relatedQueries_top, relatedQueries_risingTop and rising related queries with links.
relatedTopics_top, relatedTopics_risingTop and rising related topics, when Trends returns any.

Real item from a test run (lists trimmed to one entry):

{
  "inputUrlOrTerm": "web scraping",
  "searchTerm": "web scraping",
  "geo": "",
  "timeRange": "today 12-m",
  "url": "https://trends.google.com/trends/explore?q=web+scraping&date=today+12-m",
  "interestOverTime_timelineData": [
    {
      "time": "1760227200",
      "formattedTime": "Oct 12 – 18, 2025",
      "formattedAxisTime": "Oct 12, 2025",
      "value": [52],
      "hasData": [true],
      "formattedValue": ["52"]
    }
  ],
  "interestOverTime_averages": [],
  "interestBy": [
    { "geoName": "St. Helena", "geoCode": "SH", "value": [100], "formattedValue": ["100"], "maxValueIndex": 0, "hasData": [true] }
  ],
  "interestBySubregion": [],
  "relatedTopics_top": [],
  "relatedQueries_top": [
    {
      "query": "web data scraping",
      "value": 100,
      "formattedValue": "100",
      "hasData": true,
      "link": "https://trends.google.com/trends/explore?q=web+data+scraping&date=today+12-m"
    }
  ],
  "relatedQueries_rising": [
    {
      "query": "eiffel tower height",
      "value": 24600,
      "formattedValue": "Breakout",
      "link": "https://trends.google.com/trends/explore?q=eiffel+tower+height&date=today+12-m"
    }
  ]
}

💰 Pricing

$2 per 1,000 results, which is $0.002 per result. A result is one search term, one comparison, or one Trends URL, never one time point.

Worked example: 100 terms cost $0.20 in result fees. Compute and residential proxy traffic ($2 per GB) are billed separately at standard rates; a single-term run at the default 256 MB costs about $0.003 in total including the $0.002 result fee.

❓ FAQ

Is it legal? The actor reads publicly visible Google Trends pages. You are responsible for using the data in line with Google's terms and local law.

Do I need a Google account or a proxy? No account. Residential proxy is selected by default because Google Trends rate-limits datacenter addresses.

Can I compare terms? Yes. Tick Multiple terms and enter coffee, tea, or paste an explore URL whose q parameter already lists several terms.

Why are some geography lists empty? Worldwide searches fill interest by country. A country search fills subregions, and cities or metros when Trends has them. A list stays empty when Trends does not publish that breakdown.

How many results can I get? As many as you set in Max items; 0 means no limit. Each term or URL is one result.

Can I schedule it or call it from code? Yes. Use schedules in the console or start runs through the API.

⚠️ Limits

  • A comparison holds at most five terms. Extra comma-separated terms are dropped.
  • Short ranges such as the past hour return fewer time points. The past 12 months is weekly.
  • Related queries or topics are omitted when Trends has nothing to show. Related topics came back empty in several of our test searches.
  • City and metro tables appear only when Trends returns them for the selected country.
  • The Google Sheet must be public. A private sheet is skipped.
  • An invalid URL is skipped and the run continues.
  • Google Trends can rate-limit requests; the actor retries, but heavy runs may be slower. In our test 600 terms took about 16 minutes and 8 of them still failed after retries; the status message counts them.
  • Very large inputs (roughly more than 600 terms in one run) can be rejected before the run starts. Split big lists across several runs or use the Google Sheet input.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.