Back to Google Search
Apify·Google Search

Google Search Results Scraper

/apify/google-search-scraperasync$0.0113 / result

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. Runs as an Apify actor (20–120 s); results are dataset rows.

Charged per returned row plus the flat fee.

Input
  • queriesstringrequired

    Use 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 Adv

  • maxPagesPerQueryinteger

    Maximum number of pages to scrape per search query. Each page contains approximately 10 results.

  • aiOverviewobject

    Get 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. (default {"scrapeFullAiOverview":false})

  • aiModeSearchobject

    See 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. (default {"enableAiMode":false})

  • geminiSearchobject

    Get 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. (default {"enableGemini":false})

  • perplexitySearchobject

    Get AI answers and citations from Perplexity's Sonar model.Costs extra per result - see the Pricing tab for your rate. (default {"enablePerplexity":false,"returnImages":false,"returnRelatedQuestions":false})

  • chatGptSearchobject

    Get 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. (default {"enableChatGpt":false})

  • copilotSearchobject

    Get AI answers from Microsoft Copilot. (default {"enableCopilot":false})

  • maximumLeadsEnrichmentRecordsinteger

    Maximum 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 y (default 0)

  • leadsEnrichmentDepartmentsarray

    Include 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.

  • verifyLeadsEnrichmentEmailsboolean

    Check 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 bu (default false)

  • linkProspectingobject

    Charged 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 th

  • websiteContentScraperobject

    Get 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 Lin (default {"enable":false})

  • focusOnPaidAdsboolean

    Turn on to capture the Google Ads shown for each query. (default false)

  • countryCodestring

    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).

    , af, al, dz, as, ad, ao, ai, …

  • searchLanguagestring

    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. (default "")

    , ar, bg, ca, cs, da, de, el, …

  • languageCodestring

    Language 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. (default "")

    , af, sq, sm, ar, az, eu, be, …

  • locationUulestring

    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.

  • forceExactMatchboolean

    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 wan (default false)

  • sitestring

    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.

  • relatedToSitestring

    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.

  • wordsInTitlearray

    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 scra (default [])

  • wordsInTextarray

    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 u (default [])

  • wordsInUrlarray

    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 (default [])

  • quickDateRangestring

    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

  • beforeDatestring

    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`). Absolute time is always interpreted in the UTC timezone, not your local timezone - please convert accordingly. Supported relative date & time

  • afterDatestring

    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`). Absolute time is always interpreted in the UTC timezone, not your local timezone - please convert accordingly. Supported relative date & time u

  • fileTypesarray

    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

  • mobileResultsboolean

    If checked, the scraper returns results from the mobile version of Google Search. Otherwise, desktop results are returned. (default false)

  • includeUnfilteredResultsboolean

    If checked, the lower-quality results that Google normally filters out are included. (default false)

  • saveHtmlboolean

    If 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. (default false)

  • saveHtmlToKeyValueStoreboolean

    If 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 dow (default true)

  • includeIconsboolean

    If checked, all of the results (organicResults, paidResults, suggestedResults) will contain Base64-encoded icon image data if found. (default false)

Run it

curl -s https://sooma.dev/v1/run \ -H "Authorization: Bearer $SOOMA_API_KEY" \ -H "Content-Type: application/json" \ -d '{"provider":"apify","endpoint":"/apify/google-search-scraper","input":{"queries":"What are the top 5 CRM tools"}}'

Or ask your agent: it will call inspect for this schema and run it over MCP.