Scrape Google Search Engine Results Pages (SERPs). Select the country or language and extract organic and paid results, AI overviews, ads, queries, People Also Ask, prices, reviews, like a Google SERP API. Export scraped data, run the scraper via API, schedule runs, or integrate with other tools.
Use regular search words or enter Google Search URLs. You can also apply advanced Google search techniques, such as AI site:twitter.com or javascript OR python. You can also define selected search filters as separate fields below (in the Advanced search filters section). Just ensure that your queries do not exceed 32 words to comply with Google Search limits.
Results per page
resultsPerPageintegerOptional
Max pages per search
maxPagesPerQueryintegerOptional
Add-on: Enable paid results (ads) extraction
focusOnPaidAdsbooleanOptional
Enable extraction of paid results (Google Ads). This feature improves ad detection accuracy by using an ad-specialized proxy to perform 3 checks on each search page. Best used for queries likely to show ads. Extra cost per search page applies when enabled, regardless of ads found. Pricing depends on your Apify subscription plan.
Default value of this property is false
Country
countryCodeEnumOptional
Specifies the country used for the search and the Google Search domain (e.g. google.es for Spain). By default, the actor uses United States (google.com).
Restricts search results to pages in a specific language. For example, choosing 'German' results in pages only in German. Passed to Google Search as the lr URL query parameter. Read more here.
Language of the Google Search interface (menus, buttons, etc. - not the search results themselves). Passed to Google Search as the hl URL query parameter. From Google Reference: You can use the hl request parameter to identify the language of your graphical interface. The hl parameter value may affect search results, especially on international queries when language restriction (using the lr parameter) is not explicitly specified. Read more here.
The code for the exact location for the Google search. It's passed to Google Search as the uule URL query parameter. You can use the UULE code generator. Learn more about emulating local search.
Force exact match
forceExactMatchbooleanOptional
If checked, the scraper will search for the exact phrase in the query. This is done by wrapping the query in quotes. Note that this may return fewer results. Also note that if you're using operators such as OR or AND, the whole query will be wrapped in quotes, such as "Windows AND macOS". If you want to search for queries such as "Windows" AND "macOS", you need to specify them directly in the queries field.
Default value of this property is false
Site
sitestringOptional
Limits the search to a specific site, such as: site:example.com. Note that the site filter takes precedence over the relatedToSite filter. If both filters are set, the relatedToSite filter will be ignored and not added to the search queries.
Related to site
relatedToSitestringOptional
Filters pages related to a specific site, such as: related:example.com. Note that the site filter takes precedence over the relatedToSite filter. If both filters are set, the relatedToSite filter will be ignored and not added to the search queries.
Words in title
wordsInTitlearrayOptional
Filters pages with specific words in the title. The scraper uses the intitle: operator, even for multiple words (e.g. recipe site:allrecipes.com intitle:"easy apple" intitle:pie). There's also a allintitle: operator available, but it's problematic when combined with other search filters, so the scraper avoids using it. If you need to use the allintitle: operator specifically, you can include it in your custom queries from the queries field.
Default value of this property is []
Words in text
wordsInTextarrayOptional
Filters pages with specific words in the text. The scraper uses the intext: operator, even for multiple words (e.g. cartoon site:wikipedia.com intext:cat intext:mouse). There's also a allintext: operator available, but it's problematic when combined with other search filters, so the scraper avoids using it. If you need to use the allintext: operator specifically, you can include it in your custom queries from the queries field.
Default value of this property is []
Words in URL
wordsInUrlarrayOptional
Filters pages with specific words in the URL. The scraper uses the inurl: operator, even for multiple words (e.g. recipe site:allrecipes.com inurl:apple inurl:pie). There's also a allinurl: operator available, but it's problematic when combined with other search filters, so the scraper avoids using it. If you need to use the allinurl: operator specifically, you can include it in your custom queries from the queries field.
Default value of this property is []
Quick date range
quickDateRangestringOptional
Filters results from a specific date range. d[number] specifies the number of past days (e.g. the past 10 days can be written as d10). The same applies to hours, weeks, months, and years: h[number], w[number], m[number], y[number]. Example for the past year: 'y1' or even 'y'. The value is passed to Google Search using the tbs URL query parameter, prefixed with qdr:. You should avoid combining this filter with the beforeDate and afterDate filters to prevent conflicts.
Before date
beforeDatestringOptional
Filters results from before the specified date. Either absolute date (e.g. 2024-05-03) or relative date from now into the past (e.g. 8 days, 3 months). JSON input also supports adding time in both absolute (ISO standard, e.g. 2024-05-03T20:00:00) and relative (e.g. 3 hours) formats. Absolute time is always interpreted in the UTC timezone, not your local timezone - please convert accordingly. Supported relative date & time units: minutes, hours, days, weeks, months, years. You should avoid combining this filter with the quickDateRange filter to prevent conflicts.
After date
afterDatestringOptional
Filters results from after the specified date. Either absolute date (e.g. 2024-05-03) or relative date from now into the past (e.g. 8 days, 3 months). JSON input also supports adding time in both absolute (ISO standard, e.g. 2024-05-03T20:00:00) and relative (e.g. 3 hours) formats. Absolute time is always interpreted in the UTC timezone, not your local timezone - please convert accordingly. Supported relative date & time units: minutes, hours, days, weeks, months, years. You should avoid combining this filter with the quickDateRange filter to prevent conflicts.
File types
fileTypesarrayOptional
Filters results of specific file types using the filetype: operator, such as filetype:pdf. You can select multiple file types as well. They will be combined with the OR operator, for example: filetype:doc OR filetype:txt. If you need to use a file type that is not in the list (such as a source code file type), you can include it in your custom queries from the queries field, using the filetype: operator.
Mobile results
mobileResultsbooleanOptional
If checked the scraper will return results for mobile version of Google search. Otherwise desktop results are returned.
Default value of this property is false
Unfiltered results
includeUnfilteredResultsbooleanOptional
If checked the lower quality results that Google normally filters out will be included.
Default value of this property is false
Save HTML to dataset
saveHtmlbooleanOptional
If checked the HTML of the Google Search results pages will be stored to the default dataset, under the html property. This is useful if you need to process the HTML, but it makes the dataset large.
Default value of this property is false
Save HTML to key-value store
saveHtmlToKeyValueStorebooleanOptional
If checked the HTML of the Google Search results pages will be stored to the default key-value store and links to the files stored to the dataset under the htmlSnapshotUrl property. This is useful for debugging since you can easily view the pages in the browser. However, the use of this feature may slow down the Actor.
Default value of this property is true
Include icon image data (base64)
includeIconsbooleanOptional
If checked all of the results (organicResults, paidResults, suggestedResults) will contain Base64-encoded icon image data if found.