Google Trends Scraper
7 days trial then $20.00/month - No credit card required now
Google Trends Scraper
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.
Do you want to learn more about this Actor?
Get a demo🌍 What is Google Trends Scraper?
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 |
🌐 How do I use Google Trends Scraper?
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:
- Create an Apify account
- Open Google Trends Scraper.
- Enter your search term, location, and time range. Or use a Google Trends URL with applied filters instead.
- Click the “Start” button and wait for the data to be extracted.
- 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.
📉 What can you do with scraped Google Trends data?
🔍 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:
❓FAQ
Is there a Google Trends API?
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.
Can I use Google Trends Scraper data with API?
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.
Can I create a Google Trends integration using data from this scraper?
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.
Can I use this Google Trends API in Python?
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.
Is it legal to scrape Google Trends data?
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.
Actor Metrics
105 monthly users
-
38 stars
99% runs succeeded
5.5 hours response time
Created in Jan 2020
Modified 2 days ago