# Google Trends Scraper API - Extract Trends Data at Scale > Source: https://scrape.do/products/ready-api/google-trends-scraper/ Scrape Google Trends data including interest over time, regional interest, related queries, related topics, and real-time trending searches. Structured JSON, no blocks, no CAPTCHAs. > Each successful request costs **10 credits**. **Google Trends Data, Structured and At Scale** Extract search interest over time, regional breakdowns, related queries, related topics, and real-time trending searches from Google Trends. Structured JSON with no blocks or CAPTCHAs. ![Google Trends Data, Structured and At Scale](/uploads/google-trends-api.svg) ## Highlights ### Any Country, Any Time Range - Target any country or region with the **geo** parameter, from worldwide to country-level (`US`, `GB`, `DE`) to sub-region (`US-CA`). Combine with city-level granularity for precise regional insights. - Control the time range from the last 4 hours up to 5 years, or specify a custom date range. Filter by Google property: web search, YouTube, Google News, Google Images, or Google Shopping. ### All Trends Data Types - Get **interest over time** (weekly normalized values 0-100), **regional interest breakdowns**, **related queries** (top and rising), and **related topics** (Google Knowledge Graph entities), each available on demand. - Separately track **real-time trending searches** with search volume, growth percentage, related queries, and category tags. The same data shown on trends.google.com/trending. ## How It Works ### Trends Data Get interest over time, regional interest, related queries, and related topics for any search keyword. Use data_type to control which data you receive. ![Trends Data](/uploads/google-trends-explore.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/google/trends?token=&q=bitcoin&geo=US' ``` **Python (API mode)** ```python import requests import json token = "" query = "bitcoin" geo = "US" url = f"https://api.scrape.do/plugin/google/trends?token={token}&q={query}&geo={geo}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const token = ""; const query = "bitcoin"; const geo = "US"; const url = `https://api.scrape.do/plugin/google/trends?token=${token}&q=${encodeURIComponent(query)}&geo=${geo}`; fetch(url) .then((res) => res.json()) .then((data) => console.log(JSON.stringify(data, null, 2))); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "search_parameters": { "q": "bitcoin", "geo": "US", "hl": "en", "date": "today 12-m", "tz": "420" }, "interest_over_time": { "timeline_data": [ { "date": "Apr 6 – 12, 2025", "timestamp": "1743897600", "values": [{ "query": "bitcoin", "value": "40", "extracted_value": 40 }] }, { "date": "Feb 1 – 7, 2026", "timestamp": "1769904000", "values": [{ "query": "bitcoin", "value": "100", "extracted_value": 100 }] } ] }, "interest_by_region": [ { "geo": "US-HI", "location": "Hawaii", "max_value_index": 0, "value": "100", "extracted_value": 100 }, { "geo": "US-NV", "location": "Nevada", "max_value_index": 0, "value": "99", "extracted_value": 99 }, { "geo": "US-CA", "location": "California", "max_value_index": 0, "value": "88", "extracted_value": 88 } ] } ``` ### Trending Now Get real-time trending searches for any country. Filter by category, time window, and status. Sort by relevance, search volume, recency, or title. ![Trending Now](/uploads/google-trends-trending.png) **cURL (API mode)** ```bash curl --location --request GET 'https://api.scrape.do/plugin/google/trending?token=&geo=US' ``` **Python (API mode)** ```python import requests import json token = "" geo = "US" url = f"https://api.scrape.do/plugin/google/trending?token={token}&geo={geo}" response = requests.request("GET", url) print(json.dumps(response.json(), indent=2)) ``` **Node.js (API mode)** ```javascript const token = ""; const geo = "US"; const url = `https://api.scrape.do/plugin/google/trending?token=${token}&geo=${geo}`; fetch(url) .then((res) => res.json()) .then((data) => console.log(JSON.stringify(data, null, 2))); ``` *(Go, Ruby, Java, C#, PHP examples are also available on the HTML version.)* **Example response** ```json { "search_parameters": { "geo": "US", "hl": "en", "hours": 24, "cat": 0, "sort": "relevance", "status": "all" }, "trends": [ { "title": "lakers vs warriors", "search_volume": 200000, "growth_percentage": 1000, "started_at": 1775782200, "status": "active", "related_queries": [ "lakers vs warriors", "warriors vs lakers", "steph curry", "lebron james" ], "category_ids": [17], "trend_url": "https://trends.google.com/trends/explore?q=lakers+vs+warriors&geo=US" }, { "title": "Solar Eclipse", "search_volume": 200000, "growth_percentage": 1200, "started_at": 1775720000, "ended_at": 1775811200, "status": "ended", "related_queries": ["solar eclipse 2026", "eclipse time"], "category_ids": [15], "trend_url": "https://trends.google.com/trends/explore?q=Solar+Eclipse&geo=US" } ] } ``` ## FAQ ### What is the Google Trends API? It's a scraping API that extracts data from Google Trends as structured JSON. You can get search interest over time (normalized 0-100 values), regional interest breakdowns, related queries, related topics, and real-time trending searches without dealing with Google's internal APIs or session management. ### What data can I extract? The API has two endpoints. The Trends Data endpoint returns interest over time, interest by region, related queries (top and rising), and related topics. The Trending Now endpoint returns real-time trending searches with search volume, growth percentage, related queries, and category tags. ### How do I get related queries or related topics? Use the data_type parameter. Set data_type=RELATED_QUERIES for related queries, or data_type=RELATED_TOPICS for related topic entities from Google's Knowledge Graph. These are not included in the default response. You request them explicitly. ### Can I track trends for a specific country or region? Yes. Use the geo parameter for country-level targeting (e.g., geo=US, geo=GB, geo=DE) or sub-region targeting (e.g., geo=US-CA for California). For the Trending Now endpoint, geo is required. ### Can I filter trending searches by category? Yes. The Trending Now endpoint supports a cat parameter with category IDs. For example, cat=17 for Sports, cat=18 for Technology, cat=4 for Entertainment, and so on. Set cat=0 for all categories. ### Does the API support bulk processing? Yes. Use the Async API with the google/trends plugin key to process multiple trend queries in parallel. Submit up to 1000 parameter sets in a single job. See the [Async API documentation](/documentation/async-api/plugins/) for details. ### Where can I find the full API reference? Check out the [Google Trends API documentation](/documentation/google-scraper-api/trends/) for the complete parameter list, all data_type options, and full response field descriptions.