If you've used pytrends , you know the feeling: it works for five keywords, then Google answers 429 Too Many Requests and your notebook stalls. Google Trends has no official public API, and it rate-limits hard.
Here's the approach I use for batches of keywords and countries, where failures are retried from a different IP automatically.
What you can get per keyword
interest over time (any timeframe, from the past hour to 2004)
interest by region
related queries and topics (top and rising)
The code
I run a hosted scraper I maintain on Apify ( Google Trends Scraper ). Python client ( pip install apify-client pandas ):
from apify_client import ApifyClient import pandas as pd
client = ApifyClient ( "<YOUR_APIFY_TOKEN>" ) run = client . actor ( "fjordlabs/google-trends" ) . call ( run_input = { "keywords" : [ "chatgpt" , "gemini" , "claude" , "copilot" ] , "geos" : [ "US" , "GB" , "DE" ] , "timeframe" : "past_12_months" , "proxy" : { "useApifyProxy" : True } , } )
items = list ( client .…