Google Trends Scraper
/apify/google-trends-scraperasync$0.0075 / resultScrape 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. Runs as an Apify actor (20–120 s); results are dataset rows.
Charged per returned row plus the flat fee.
searchTermsarray(Required if 'spreadsheetId' is not provided) List of search terms to be scraped.
isMultiplebooleanIf checked, a comma is treated as a separator for multiple terms (default false)
timeRangestringChoose a predefined search's time range (defaults to 'Past 12 months') (default "")
, now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 5-y, …
geostringGet results from a specific geo area (defaults to 'Worldwide'). This maps to different fields in the dataset results: smaller countries like Greece return just 'interestByCity' data, while larger ones like the United States return 'interestBySubregion' data as well. When omitted (Worldwide), 'intere (default "")
, AF, AL, DZ, AS, AD, AO, AI, …
viewedFromstringCountry for residential proxies to ensure correct results
, us, af, al, dz, as, ad, ao, …
skipDebugScreenbooleanBy default, a snapshot of each visited Google Trends page is saved to the key-value store (default false)
startUrlsarrayCopy a Google Trends URL and paste it here.
spreadsheetIdstring(Optional) ID of the Google Sheet from where search terms will be loaded. Spreadsheet must have only one column. Row 1 is considered the title of the column so it will not be loaded as a search term. The provided spreadsheet must be publicly available. Check the actor documentation for more info.
categorystringChoose a category to filter the search for (defaults to 'All categories') (default "")
, 3, 47, 44, 22, 12, 5, 7, …
maxItemsintegerMaximum number of items to scrape. Zero means no limit. (default 0)
customTimeRangestringProvide custom time range. If present, it takes precedence over regular timeRange. Format is: `YYYY-MM-DD YYYY-MM-DD`. See examples in the documentation.
maxConcurrencyintegerHow many pages will be opened in parallel if enough CPU is available. (default 10)
maxRequestRetriesintegerHow many times will the Actor retry a request if it fails. (default 7)
pageLoadTimeoutSecsintegerHow long it will wait for page loading before it abandons the loading and tries again. (default 180)
| Field | Type | Required | Description |
|---|---|---|---|
| searchTerms | array | — | (Required if 'spreadsheetId' is not provided) List of search terms to be scraped. |
| isMultiple | boolean | — | If checked, a comma is treated as a separator for multiple terms (default false) |
| timeRange | string (, now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 5-y, …) | — | Choose a predefined search's time range (defaults to 'Past 12 months') (default "") |
| geo | string (, AF, AL, DZ, AS, AD, AO, AI, …) | — | Get results from a specific geo area (defaults to 'Worldwide'). This maps to different fields in the dataset results: smaller countries like Greece return just 'interestByCity' data, while larger ones like the United States return 'interestBySubregion' data as well. When omitted (Worldwide), 'intere (default "") |
| viewedFrom | string (, us, af, al, dz, as, ad, ao, …) | — | Country for residential proxies to ensure correct results |
| skipDebugScreen | boolean | — | By default, a snapshot of each visited Google Trends page is saved to the key-value store (default false) |
| startUrls | array | — | Copy a Google Trends URL and paste it here. |
| spreadsheetId | string | — | (Optional) ID of the Google Sheet from where search terms will be loaded. Spreadsheet must have only one column. Row 1 is considered the title of the column so it will not be loaded as a search term. The provided spreadsheet must be publicly available. Check the actor documentation for more info. |
| category | string (, 3, 47, 44, 22, 12, 5, 7, …) | — | Choose a category to filter the search for (defaults to 'All categories') (default "") |
| maxItems | integer | — | Maximum number of items to scrape. Zero means no limit. (default 0) |
| customTimeRange | string | — | Provide custom time range. If present, it takes precedence over regular timeRange. Format is: `YYYY-MM-DD YYYY-MM-DD`. See examples in the documentation. |
| maxConcurrency | integer | — | How many pages will be opened in parallel if enough CPU is available. (default 10) |
| maxRequestRetries | integer | — | How many times will the Actor retry a request if it fails. (default 7) |
| pageLoadTimeoutSecs | integer | — | How long it will wait for page loading before it abandons the loading and tries again. (default 180) |
Run it
Or ask your agent: it will call inspect for this schema and run it over MCP.