← API Catalog
Apify·Async

Google Search Results Scraper

Search & SEO$0.0025 / Scraped search result page

What it does

Scrape Google Search Engine Results Pages (SERPs). Select the country or language and extract organic and paid results, AI Mode, AI overviews, ads, queries, People Also Ask, prices, reviews, like a Google SERP API. Export data, run the scraper via API, schedule runs, or integrate with other tools.

Returns: Scrape Google Search Engine Results Pages (SERPs). Select the country or language and extract organic and paid results, AI Mode, AI overviews, ads, queries, People Also Ask, prices, reviews, like a Google SERP API. Export data, run the scraper via API, schedule runs, or integrate with other tools.

Parameters

ParameterTypeRequiredDescription
sitetextNoLimits 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.
queriestextareaYesUse regular search words or enter Google Search URLs. You can also apply [advanced Google search techniques](https://blog.apify.com/how-to-scrape-google-like-a-pro/), 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.
saveHtmlbooleanNoIf checked, the HTML of the Google Search results pages is stored in the default dataset, under the html property. This is useful if you need to process the HTML, but it makes the dataset large.
afterDatetextNoFilters 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). Absolute time is always interpreted in the UTC timezone, not your local timezone - please convert accordingly. Supported relative date & time units: days, weeks, months, years. You should avoid combining this filter with the quickDateRange filter to prevent conflicts.
fileTypesselectNoFilters 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.
aiOverviewjsonNoGet the complete AI Overview whenever Google shows one for your query - handy when the short snippet isn't enough. May take slightly longer than a standard run, and works best on queries likely to trigger an AI Overview. Costs extra per captured AI Overview - see the Pricing tab for your rate.
beforeDatetextNoFilters 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). Absolute time is always interpreted in the UTC timezone, not your local timezone - please convert accordingly. Supported relative date & time units: days, weeks, months, years. You should avoid combining this filter with the quickDateRange filter to prevent conflicts.
wordsInUrlarrayNoFilters 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.
countryCodeselectNoSpecifies 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).
wordsInTextarrayNoFilters 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.
aiModeSearchjsonNoSee how your brand appears in Google AI Mode, Google's dedicated AI search interface on google.com (distinct from the AI Overview snippets in regular results). Great for AEO and GEO tracking. Costs extra per result - see the Pricing tab for your rate.
geminiSearchjsonNoGet an AI answer from Google Gemini (gemini.google.com), Google's standalone assistant, separate from Google Search. Costs extra per result - see the Pricing tab for your rate.
includeIconsbooleanNoIf checked, all of the results (organicResults, paidResults, suggestedResults) will contain Base64-encoded icon image data if found.
languageCodeselectNoLanguage of the Google Search interface (menus, buttons, etc. - not the search results themselves). Passed to Google Search as the hl URL query parameter. It can still affect results on international queries when no search-language restriction (the lr parameter) is set. Read more here.
locationUuletextNoThe 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.
wordsInTitlearrayNoFilters 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.
chatGptSearchjsonNoGet AI answers from OpenAI's search model. The output includes query fan-out under queryFanOut - the extra searches the model ran to answer you. Costs extra per result - see the Pricing tab for your rate.
copilotSearchjsonNoGet AI answers from Microsoft Copilot.
mobileResultsbooleanNoIf checked, the scraper returns results from the mobile version of Google Search. Otherwise, desktop results are returned.
relatedToSitetextNoFilters 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.
focusOnPaidAdsbooleanNoTurn on to capture the Google Ads shown for each query.
quickDateRangetextNoFilters 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.
searchLanguageselectNoRestricts 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.
forceExactMatchbooleanNoIf 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.
linkProspectingjsonNoCharged events: search-page-scraped (base, per Google SERP page), website-content-scraped, lead-scraped (up to 5 contacts per domain, marketing and C-suite roles only), and one event per enabled AI engine query. See the Pricing tab for rates. ⚠️ If business leads enrichment is also active, domains that appear in both organic results and AI citations may be enriched by both features and charged for leads separately. ⚠️ If the Full website content add-on is also active, pages shared between the two add-ons are scraped and charged only once.
maxPagesPerQuerynumberNoMaximum number of pages to scrape per search query. Each page contains approximately 10 results.
perplexitySearchjsonNoGet AI answers and citations from Perplexity's Sonar model. Costs extra per result - see the Pricing tab for your rate.
websiteContentScraperjsonNoGet the full page content of every organic result as websiteContent.text, plus websiteContent.markdown when the page converts cleanly (null otherwise). Uses the Website Content Crawler. Charged event: website-content-scraped, per successfully scraped page. See the Pricing tab for rates. ⚠️ If the Link prospecting tool add-on is also active, pages shared between the two add-ons are scraped and charged only once.
saveHtmlToKeyValueStorebooleanNoIf checked, the HTML of the Google Search results pages is stored in the default key-value store, and links to the files are stored in the dataset under the htmlSnapshotUrl property. This is useful for debugging, since you can easily view the pages in the browser. Note that this feature may slow down the Actor.
includeUnfilteredResultsbooleanNoIf checked, the lower-quality results that Google normally filters out are included.
leadsEnrichmentDepartmentsselectNoInclude only leads from specific departments, such as Sales, Marketing, or C-suite. Only applies when business leads enrichment (maximumLeadsEnrichmentRecords) is enabled. Note that some job titles may be miscategorized.
verifyLeadsEnrichmentEmailsbooleanNoCheck whether each lead's email is actually deliverable before you reach out. Adds an emailVerification object to every lead with the result and a quality score. Charged (decisive results): valid (ok), invalid, and disposable addresses. Not charged: catch-all, unknown, and error results. ⚠️ Requires business leads enrichment to be enabled.
maximumLeadsEnrichmentRecordsnumberNoMaximum number of lead records to scrape per domain found. Set to 0 (the default) to disable leads enrichment. ⚠️ Some fields contain personal data, which is protected by GDPR in the European Union and by similar laws elsewhere. Only scrape personal data if you have a legitimate reason to do so; if you're unsure, consult an attorney. ⚠️ This value is a multiplier - see the section description above for how costs are calculated.

Endpoints

GET/v1/agents/resources/inspect/apify.apify.google-search-scraperPublic
POST/v1/agents/resources/estimate/apify.apify.google-search-scraperPublic
POST/v1/agents/resources/run/apify.apify.google-search-scraperAgent key
GET/v1/agents/resources/runs/{run_id}Agent key

Quick start

Run it with one Agent One Key over the OpenAI-compatible resource rail.

curl -X POST https://api.deva.me/v1/agents/resources/run/apify.apify.google-search-scraper \
  -H "Authorization: Bearer deva_i1_your_key_here" \
  -H "Content-Type: application/json" \
  --data '{
    "params": {}
  }'

Related in Search & SEO

Google Search Results (~$0.05/1K Results)
🔥 ~$0.05/1K results ($0.50/1,000 SERPs) 🔥 CHEAPEST Google Search Results (SERP) Scraper with real-time SERP data and support for multiple countries. Billed per 1 full SERP page (~10 results) — making it ~10× cheaper than others.
Skip Trace
Locate hard-to-find individuals with our powerful skip trace/tracing API. TruePeopleSearch, Fastpeoplesearch, Lead Finder, Truthfinder, Spokeo, BeenVerified, PeopleFinders. Please leave 5 stars ⭐️ if found useful. If you do not receive any results, please contact: 📬 support@realtyapi.io
Similarweb Scraper
A simple but powerful scraper for similarweb.com. Retrieve website popularity information and get it in a JSON/XML/CSV/Excel/HTML table format. Get data such as total visits, traffic sources, competitors, top countries, company info, etc..
Amazon Reviews Scraper
[UPDATED] Scrape Amazon reviews per product! Filter by stars, keywords, media & verified purchases. Extract global reviews (20+ regions). Export JSON/CSV. Perfect for market research & SEO.
Instagram Scraper Followers / Following ✅ No cookies ✅
Download an Instagram account’s followers or following . Input a username or array. Auto-paginates with safe delays and outputs clean JSON/CSV (id, username, name, profile link, privacy flags). Free users: limited by available run budget. Paid users:limited by requested results and max cost per run.
Linkedin Employees Scraper
Effortlessly gather LinkedIn URLs and names of employees in bulk. Ideal for HR and recruitment, this tool quickly provides essential contact information, simplifying talent search and networking opportunities.