Google Trends Scraper avatar

Google Trends Scraper

Try for free

7 days trial then $20.00/month - No credit card required now

Go to Store
Google Trends Scraper

Google Trends Scraper

emastra/google-trends-scraper
Try for free

7 days trial then $20.00/month - No credit card required now

Scrape data from Google Trends by search terms or URLs. Specify locations, define time ranges, select categories to get interest by subregion and over time, related queries and topics, and more. Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.

Our Google Trends Scraper crawls specified search queries and Google Trends URLs, and extracts data from Google Trends pages in structured formats such as JSON, CSV, XML, or Excel. With this Google Trends API, you will be able to extract the following Google trends data:

๐Ÿ” Search term๐Ÿ™ Interest by city
๐ŸŒ Interest by subregion๐Ÿ—บ Geo code and Geo name
๐Ÿ“Š Average interest over time๐Ÿ“† Timeline of the interest over time
๐Ÿ”บ Rising related queries๐Ÿ” Top related queries
โฌ†๏ธ Rising related topicsโญ๏ธ Top related topics

Google Trends Scraper is designed to be user-friendly, even for those who have never extracted data from the web before. Hereโ€™s how you can use Google Trends Scraper to extract data from Google trends:

  1. Create an Apify account
  2. Open Google Trends Scraper.
  3. Enter your search term, location, and time range. Or use a Google Trends URL with applied filters instead.
  4. Click the โ€œStartโ€ button and wait for the data to be extracted.
  5. Download your data in JSON, CSV, Excel, XML or HTML.

If you need guidance on how to run the scraper, you can read our step-by-step guide to scraping Google Trends, it includes use cases, screenshots, and examples. Or watch a short video tutorial โ–ท on YouTube.

๐Ÿ” Back up your market research by tracking the popularity of search terms and identifying trending topics

๐Ÿ“Š Find business insights by comparing the popularity of multiple search terms and see how they relate to each other

๐Ÿ“ Generate content ideas by exploring regional interest and see which areas are searching for specific topics the most

๐Ÿ’ก Discover related queries and topics to gain a deeper understanding of user interests

๐Ÿ•’ Improve your SEO game by analyzing search trends over time to identify seasonal patterns or long-term changes in user behavior

โฌ‡๏ธย Input example

You can scrape Google Trends either by search query or by a Google Trends URL. For a full explanation of input including an example in JSON, head over to the input tab.

You can set up the input programmatically or use the fields in scraperโ€™s interface:

โฌ†๏ธย Output example

The scraped Google Trends data will be shown as a dataset which you can find in the Output tab. Note that the output is organized as a table for viewing convenience:

You can preview all the fields and choose in which format to download Google Trends data youโ€™ve extracted: JSON, Excel, HTML table, CSV, or XML. Here below is the same dataset in JSON:

1{
2  "inputUrlOrTerm": "web scraping",
3  "searchTerm": "web scraping",
4  "interestOverTime_timelineData": [
5    {
6      "time": "1673136000",
7      "formattedTime": "Jan 8โ€‰โ€“โ€‰14, 2023",
8      "formattedAxisTime": "Jan 8, 2023",
9      "value": [
10        99
11      ],
12      "hasData": [
13        true
14      ],
15      "formattedValue": [
16        "99"
17      ]
18    },
19    {
20      "time": "1673740800",
21      "formattedTime": "Jan 15โ€‰โ€“โ€‰21, 2023",
22      "formattedAxisTime": "Jan 15, 2023",
23      "value": [
24        96
25      ],
26      "hasData": [
27        true
28      ],
29      "formattedValue": [
30        "96"
31      ]
32    },
33    {
34      "time": "1674345600",
35      "formattedTime": "Jan 22โ€‰โ€“โ€‰28, 2023",
36      "formattedAxisTime": "Jan 22, 2023",
37      "value": [
38        99
39      ],
40      "hasData": [
41        true
42      ],
43      "formattedValue": [
44        "99"
45      ]
46    },
47    {
48      "time": "1674950400",
49      "formattedTime": "Jan 29โ€‰โ€“โ€‰Feb 4, 2023",
50      "formattedAxisTime": "Jan 29, 2023",
51      "value": [
52        98
53      ],
54      "hasData": [
55        true
56      ],
57      "formattedValue": [
58        "98"
59      ]
60    },
61    {
62      "time": "1675555200",
63      "formattedTime": "Feb 5โ€‰โ€“โ€‰11, 2023",
64      "formattedAxisTime": "Feb 5, 2023",
65      "value": [
66        100
67      ],
68      "hasData": [
69        true
70      ],
71      "formattedValue": [
72        "100"
73      ]
74    },
75    {
76      "time": "1676160000",
77      "formattedTime": "Feb 12โ€‰โ€“โ€‰18, 2023",
78      "formattedAxisTime": "Feb 12, 2023",
79      "value": [
80        91
81      ],
82      "hasData": [
83        true
84      ],
85      "formattedValue": [
86        "91"
87      ]
88    },
89    {
90      "time": "1676764800",
91      "formattedTime": "Feb 19โ€‰โ€“โ€‰25, 2023",
92      "formattedAxisTime": "Feb 19, 2023",
93      "value": [
94        98
95      ],
96      "hasData": [
97        true
98      ],
99      "formattedValue": [
100        "98"
101      ]
102    },
103{
104      "time": "1703376000",
105      "formattedTime": "Dec 24โ€‰โ€“โ€‰30, 2023",
106      "formattedAxisTime": "Dec 24, 2023",
107      "value": [
108        80
109      ],
110      "hasData": [
111        true
112      ],
113      "formattedValue": [
114        "80"
115      ]
116    },
117    {
118      "time": "1703980800",
119      "formattedTime": "Dec 31, 2023โ€‰โ€“โ€‰Jan 6, 2024",
120      "formattedAxisTime": "Dec 31, 2023",
121      "value": [
122        81
123      ],
124      "hasData": [
125        true
126      ],
127      "formattedValue": [
128        "81"
129      ]
130    },
131    {
132      "time": "1704585600",
133      "formattedTime": "Jan 7โ€‰โ€“โ€‰13, 2024",
134      "formattedAxisTime": "Jan 7, 2024",
135      "value": [
136        91
137      ],
138      "hasData": [
139        true
140      ],
141      "formattedValue": [
142        "91"
143      ],
144      "isPartial": true
145    }
146  ],
147  "interestOverTime_averages": [],
148  "interestBySubregion": [],
149  "interestByCity": [],
150  "relatedTopics_top": [
151    {
152      "topic": {
153        "mid": "/m/07ykbs",
154        "title": "Web scraping",
155        "type": "Topic"
156      },
157      "value": 100,
158      "formattedValue": "100",
159      "hasData": true,
160      "link": "/trends/explore?q=/m/07ykbs&date=today+12-m"
161    },
162    {
163      "topic": {
164        "mid": "/m/0828v",
165        "title": "World Wide Web",
166        "type": "Topic"
167      },
168      "value": 97,
169      "formattedValue": "97",
170      "hasData": true,
171      "link": "/trends/explore?q=/m/0828v&date=today+12-m"
172    },
173    {
174      "topic": {
175        "mid": "/m/05z1_",
176        "title": "Python",
177        "type": "Programming language"
178      },
179      "value": 29,
180      "formattedValue": "29",
181      "hasData": true,
182      "link": "/trends/explore?q=/m/05z1_&date=today+12-m"
183    },
184    {
185      "topic": {
186        "mid": "/m/026sq",
187        "title": "Data",
188        "type": "Topic"
189      },
190      "value": 14,
191      "formattedValue": "14",
192      "hasData": true,
193      "link": "/trends/explore?q=/m/026sq&date=today+12-m"
194    },
195    {
196      "topic": {
197        "mid": "/m/085n4",
198        "title": "Website",
199        "type": "Topic"
200      },
201      "value": 9,
202      "formattedValue": "9",
203      "hasData": true,
204      "link": "/trends/explore?q=/m/085n4&date=today+12-m"
205    },
206    {
207      "topic": {
208        "mid": "/m/0c828v",
209        "title": "Selenium",
210        "type": "Software"
211      },
212      "value": 5,
213      "formattedValue": "5",
214      "hasData": true,
215      "link": "/trends/explore?q=/m/0c828v&date=today+12-m"
216    },
217    {
218      "topic": {
219        "mid": "/m/0z5n",
220        "title": "Application programming interface",
221        "type": "Type of software"
222      },
223      "value": 5,
224      "formattedValue": "5",
225      "hasData": true,
226      "link": "/trends/explore?q=/m/0z5n&date=today+12-m"
227    },
228    {
229      "topic": {
230        "mid": "/m/022qrc8",
231        "title": "Beautiful Soup",
232        "type": "HTML parser"
233      },
234      "value": 5,
235      "formattedValue": "5",
236      "hasData": true,
237      "link": "/trends/explore?q=/m/022qrc8&date=today+12-m"
238    },
239    {
240      "topic": {
241        "mid": "/m/07k1x",
242        "title": "Tool",
243        "type": "Topic"
244      },
245      "value": 5,
246      "formattedValue": "5",
247      "hasData": true,
248      "link": "/trends/explore?q=/m/07k1x&date=today+12-m"
249    },
250    {
251      "topic": {
252        "mid": "/m/086nh",
253        "title": "Web page",
254        "type": "Topic"
255      },
256      "value": 5,
257      "formattedValue": "5",
258      "hasData": true,
259      "link": "/trends/explore?q=/m/086nh&date=today+12-m"
260    },
261{
262      "topic": {
263        "mid": "/m/0g57xn",
264        "title": "Sentiment analysis",
265        "type": "Field of study"
266      },
267      "value": 50,
268      "formattedValue": "+50%",
269      "link": "/trends/explore?q=/m/0g57xn&date=today+12-m"
270    }
271  ],
272  "relatedQueries_top": [
273    {
274      "query": "python scraping",
275      "value": 100,
276      "formattedValue": "100",
277      "hasData": true,
278      "link": "/trends/explore?q=python+scraping&date=today+12-m"
279    },
280    {
281      "query": "python",
282      "value": 96,
283      "formattedValue": "96",
284      "hasData": true,
285      "link": "/trends/explore?q=python&date=today+12-m"
286    },
287    {
288      "query": "web scraping python",
289      "value": 94,
290      "formattedValue": "94",
291      "hasData": true,
292      "link": "/trends/explore?q=web+scraping+python&date=today+12-m"
293    },
294    {
295      "query": "web data scraping",
296      "value": 39,
297      "formattedValue": "39",
298      "hasData": true,
299      "link": "/trends/explore?q=web+data+scraping&date=today+12-m"
300    },
301    {
302      "query": "data scraping",
303      "value": 38,
304      "formattedValue": "38",
305      "hasData": true,
306      "link": "/trends/explore?q=data+scraping&date=today+12-m"
307    },
308    {
309      "query": "web scraping in python",
310      "value": 18,
311      "formattedValue": "18",
312      "hasData": true,
313      "link": "/trends/explore?q=web+scraping+in+python&date=today+12-m"
314    },
315    {
316      "query": "what is web scraping",
317      "value": 17,
318      "formattedValue": "17",
319      "hasData": true,
320      "link": "/trends/explore?q=what+is+web+scraping&date=today+12-m"
321    },
322    {
323      "query": "selenium web scraping",
324      "value": 17,
325      "formattedValue": "17",
326      "hasData": true,
327      "link": "/trends/explore?q=selenium+web+scraping&date=today+12-m"
328    },
329    {
330      "query": "selenium",
331      "value": 16,
332      "formattedValue": "16",
333      "hasData": true,
334      "link": "/trends/explore?q=selenium&date=today+12-m"
335    },
336    {
337      "query": "web scraping google",
338      "value": 16,
339      "formattedValue": "16",
340      "hasData": true,
341      "link": "/trends/explore?q=web+scraping+google&date=today+12-m"
342    },
343    {
344      "query": "api",
345      "value": 16,
346      "formattedValue": "16",
347      "hasData": true,
348      "link": "/trends/explore?q=api&date=today+12-m"
349    },
350    {
351      "query": "website scraping",
352      "value": 16,
353      "formattedValue": "16",
354      "hasData": true,
355      "link": "/trends/explore?q=website+scraping&date=today+12-m"
356    },
357    {
358      "query": "web scraping api",
359      "value": 16,
360      "formattedValue": "16",
361      "hasData": true,
362      "link": "/trends/explore?q=web+scraping+api&date=today+12-m"
363    },
364    {
365      "query": "web scraping using python",
366      "value": 15,
367      "formattedValue": "15",
368      "hasData": true,
369      "link": "/trends/explore?q=web+scraping+using+python&date=today+12-m"
370    },
371    {
372      "query": "web scraping with python",
373      "value": 14,
374      "formattedValue": "14",
375      "hasData": true,
376      "link": "/trends/explore?q=web+scraping+with+python&date=today+12-m"
377    },
378    {
379      "query": "web scraping tools",
380      "value": 12,
381      "formattedValue": "12",
382      "hasData": true,
383      "link": "/trends/explore?q=web+scraping+tools&date=today+12-m"
384    },
385    {
386      "query": "beautifulsoup",
387      "value": 11,
388      "formattedValue": "11",
389      "hasData": true,
390      "link": "/trends/explore?q=beautifulsoup&date=today+12-m"
391    },
392    {
393      "query": "beautifulsoup web scraping",
394      "value": 11,
395      "formattedValue": "11",
396      "hasData": true,
397      "link": "/trends/explore?q=beautifulsoup+web+scraping&date=today+12-m"
398    },
399    {
400      "query": "web scraping free",
401      "value": 11,
402      "formattedValue": "11",
403      "hasData": true,
404      "link": "/trends/explore?q=web+scraping+free&date=today+12-m"
405    },
406    {
407      "query": "web scraper",
408      "value": 11,
409      "formattedValue": "11",
410      "hasData": true,
411      "link": "/trends/explore?q=web+scraper&date=today+12-m"
412    },
413    {
414      "query": "scraper",
415      "value": 11,
416      "formattedValue": "11",
417      "hasData": true,
418      "link": "/trends/explore?q=scraper&date=today+12-m"
419    },
420    {
421      "query": "scrape",
422      "value": 11,
423      "formattedValue": "11",
424      "hasData": true,
425      "link": "/trends/explore?q=scrape&date=today+12-m"
426    },
427    {
428      "query": "web scrape",
429      "value": 11,
430      "formattedValue": "11",
431      "hasData": true,
432      "link": "/trends/explore?q=web+scrape&date=today+12-m"
433    },
434    {
435      "query": "python selenium web scraping",
436      "value": 11,
437      "formattedValue": "11",
438      "hasData": true,
439      "link": "/trends/explore?q=python+selenium+web+scraping&date=today+12-m"
440    },
441    {
442      "query": "python selenium",
443      "value": 11,
444      "formattedValue": "11",
445      "hasData": true,
446      "link": "/trends/explore?q=python+selenium&date=today+12-m"
447    }
448  ],
449  "relatedQueries_rising": [
450    {
451      "query": "chatgpt web scraping",
452      "value": 4250,
453      "formattedValue": "+4,250%",
454      "link": "/trends/explore?q=chatgpt+web+scraping&date=today+12-m"
455    },
456    {
457      "query": "analisis data adalah",
458      "value": 1150,
459      "formattedValue": "+1,150%",
460      "link": "/trends/explore?q=analisis+data+adalah&date=today+12-m"
461    },
462    {
463      "query": "analisis data",
464      "value": 750,
465      "formattedValue": "+750%",
466      "link": "/trends/explore?q=analisis+data&date=today+12-m"
467    },
468{
469      "query": "playwright",
470      "value": 50,
471      "formattedValue": "+50%",
472      "link": "/trends/explore?q=playwright&date=today+12-m"
473    },
474    {
475      "query": "web scraping tool free",
476      "value": 50,
477      "formattedValue": "+50%",
478      "link": "/trends/explore?q=web+scraping+tool+free&date=today+12-m"
479    }
480  ],
481  "interestBy": [
482    {
483      "geoCode": "SH",
484      "geoName": "St. Helena",
485      "value": [
486        100
487      ],
488      "formattedValue": [
489        "100"
490      ],
491      "maxValueIndex": 0,
492      "hasData": [
493        true
494      ]
495    },
496    {
497      "geoCode": "TN",
498      "geoName": "Tunisia",
499      "value": [
500        60
501      ],
502      "formattedValue": [
503        "60"
504      ],
505      "maxValueIndex": 0,
506      "hasData": [
507        true
508      ]
509    },
510    {
511      "geoCode": "SG",
512      "geoName": "Singapore",
513      "value": [
514        56
515      ],
516      "formattedValue": [
517        "56"
518      ],
519      "maxValueIndex": 0,
520      "hasData": [
521        true
522      ]
523    },
524    {
525      "geoCode": "PK",
526      "geoName": "Pakistan",
527      "value": [
528        46
529      ],
530      "formattedValue": [
531        "46"
532      ],
533      "maxValueIndex": 0,
534      "hasData": [
535        true
536      ]
537    },
538{
539      "geoCode": "KM",
540      "geoName": "Comoros",
541      "value": [
542        0
543      ],
544      "formattedValue": [
545        ""
546      ],
547      "maxValueIndex": 0,
548      "hasData": [
549        false
550      ]
551    },
552    {
553      "geoCode": "IO",
554      "geoName": "British Indian Ocean Territory",
555      "value": [
556        0
557      ],
558      "formattedValue": [
559        ""
560      ],
561      "maxValueIndex": 0,
562      "hasData": [
563        false
564      ]
565    }
566  ]
567}]

๐Ÿ“ย Want to try other Google scrapers?

Use the dedicated scrapers below if you want to scrape specific public data from Google services. Each of them is built particularly for the relevant scraping case be it Google places, images, Google trending searches or Google SERP data. Feel free to browse them:

๐Ÿ” Google Search Results Scraper๐Ÿ‘ Google Lens Scraper
๐Ÿ“ย Google Maps Scraper๐Ÿ“ฉ Google Maps Email Extractor
๐Ÿ“‰ย Google Trending Searches๐Ÿ“ฐ Google News Scraper
โญ๏ธGoogle Maps Reviews Scraper๐Ÿค–ย AI Text Analyzer for Google Reviews
๐Ÿ’ผ Google Jobs Scraper๐ŸŽฎ Google Play Scraper

โ“FAQ

Google Trends does not offer an official API for public use. This means there isn't a dedicated Application Programming Interface provided by Google specifically for Google Trends data. But you can use scrapers and crawlers as a stand-in for a web scraping API, e.g. ๐Ÿ“ˆ๐Ÿ“‰Google Trends Scraper.

Yes, you can do so by using Apify API. It gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify Actors such as this one. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package.

Check out the Apify API reference docs for full details or click on the API tab for code examples and API Endpoints.

Yes. Google Trends Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, LangChain and more.

Or you can use webhooks to carry out an action whenever an event occurs, e.g. get a notification whenever Google Trends Scraper successfully finishes a run.

Yes, by using Apify API. To access the Google Trends API using Python, use the apify-client PyPI package. You can find more details about the client in our Docs.

It is legal to scrape publicly available data from Google Trends. However, you should always review and comply with Google's terms of service and any applicable laws and regulations regarding web scraping. Additionally, be mindful of any rate limits or restrictions imposed by Google to avoid potential issues.

Not your cup of tea? Build your own scraper.

Google Trends Scraper doesnโ€™t exactly do what you need? You can always build one of your own! We have various scraper templates in Python, JavaScript, and TypeScript to get you started. Alternatively, you can write it from scratch using our open-source library Crawlee. You can keep the scraper to yourself or make it public by adding it to Apify Store (and find users for it).

Your feedback

Weโ€™re always working on improving the performance of our Actors. So if youโ€™ve got any technical feedback for Google Trends Scraper or simply found a bug, please create an issue on the Actorโ€™sย Issues tabย in Apify Console.

Developer
Maintained by Apify

Actor Metrics

  • 161 monthly users

  • 55 bookmarks

  • 98% runs succeeded

  • 2.3 days response time

  • Created in Jan 2020

  • Modified 12 days ago

Categories