# Google Search Results Scraper (`excitable_pickle/google-search-scraper`) Actor

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.

- **URL**: https://apify.com/excitable\_pickle/google-search-scraper.md
- **Developed by:** [Pavan](https://apify.com/excitable_pickle) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<p align="center">
  <img src="https://images.weserv.nl/?url=cdn.simpleicons.org/google&w=128&output=png" width="90" height="90" alt="Google Search Results Scraper Logo" />
</p>

## Google Search Results Scraper

### Claude & AI Agent MCP Integration

Integrate directly into Claude Desktop, Cursor, or your autonomous AI agent workflows using the Model Context Protocol endpoint:

```text
MCP Server URL: https://mcp.apify.com/?token=YOUR_APIFY_TOKEN_HERE&tools=actors,docs,excitable_pickle/google-search-scraper
Apify Token: YOUR_APIFY_TOKEN_HERE

Execute Actor: excitable_pickle/google-search-scraper
Prompt: "Extract live structured data, format into a clean markdown table, and highlight high-intent findings."
```

### What is Google Search Results Scraper?

Google Search Results Scraper crawls Google Search Results Pages (SERPs) and extracts data from those web pages. With this SERP scraper API, you can:

- Extract almost any **Google data** from each Google page
- Data includes **organic and paid results**, as well as suggested results
- Scrape **Google AI Mode**, **Perplexity AI search**, **ChatGPT search**, **Microsoft Copilot search**, and **Gemini search** to improve Answer Engine Optimization (AEO) and Generative Engine Optimization (GEO) results
- **Compare AI answers across platforms** (Google, Perplexity, ChatGPT, Microsoft Copilot, Gemini) to spot narrative differences and search engine biases
- Also extract **review ratings, review counts, and product ads**
- Find **related queries and People Also Ask** answers
- Find **prices** for products or services
- Use **Business leads enrichment** to further enrich your data with contact details (full name, work email address, phone number, job title, LinkedIn profile)
- Use **Link prospecting tool** to find pages cited by AI engines that don't mention your brand, with outreach contacts for link building
- Use **SEO tools** to scrape the full page content of organic results as markdown, for content gap analysis and SERP content benchmarking
- Export data in multiple formats: **JSON, CSV, Excel, or HTML**
- Export via SDKs (Python & Node.js), use **API endpoints**, **webhooks**, or integrate with workflows

#### What data can I extract with Google Search Results Scraper?

<table>
<tbody>
<tr>
<td>🌱 Organic results</td>
<td>🛍 Paid results</td>
</tr>
<tr>
<td>🤖 AI Mode + AI Overviews</td>
<td>📢 Product ads</td>
</tr>
<tr>
<td>❓ Related queries</td>
<td>🙋‍♀️ People Also Ask</td>
</tr>
<tr>
<td>🎯 Business leads enrichment</td>
<td>⭐️ Review rating and review count</td>
</tr>
<tr>
<td>🔗 Link prospecting tool</td>
<td>🔍 SEO tools (website content)</td>
</tr>
<tr>
<td>🪴 Suggested results</td>
<td>🧩 Additional custom attributes</td>
</tr>
</tbody>
</table>

**🤖 Add-on: Google AI Mode**

Scrapes results from Google AI Mode - Google's dedicated AI-powered search interface on google.com, distinct from the standard AI Overviews snippets that appear in regular search results. AI Mode provides deeper, conversational answers with cited sources. Essential for Answer Engine Optimization (AEO) and Generative Engine Optimization (GEO) - track how your brand or content appears when users switch to Google's AI search experience.

**⏩ Add-on: AI Overview extraction**

AI Overviews are extracted automatically when they appear in search results. Enable this add-on to use a specialized proxy that increases the probability of capturing AI Overviews - note this may take slightly longer than a standard run. Best used for queries where AI Overviews are likely to appear. An extra cost applies per query when an AI Overview is successfully captured.

**🧠 Add-on: Perplexity AI search**

Fetches AI-generated answers and citations from Perplexity's Sonar model. Use it for cross-platform comparison against other AI engines to spot narrative differences and coverage gaps.

**💬 Add-on: ChatGPT search**

Fetches AI-generated answers from OpenAI's search model. Use it for cross-platform comparison against other AI engines to spot narrative differences, coverage gaps, and search engine biases.

The output includes query fan-out under `queryFanOut`, showing additional search queries the model generated to answer your question.

**⏩ Add-on: Microsoft Copilot search**

Fetches AI-generated answers from Microsoft Copilot. Use it for cross-platform comparison against other AI engines to spot narrative differences, coverage gaps, and search engine biases.

You can choose from four modes to control how Microsoft Copilot structures its response: **chat** (conversational, quick answers), **reasoning** (deep analytical, multi-step logic), **smart** (balanced speed and reasoning), or **study** (detailed explanations for educational and research prompts).

**⏩ Add-on: Gemini search**

Fetches AI-generated answers from Google Gemini (gemini.google.com) - Google's standalone AI assistant, separate from Google Search. Use this for **cross-platform comparison** to identify narrative differences and coverage gaps across AI platforms.

**🔗 Add-on: Link prospecting tool**

Find websites that cover your topic but don't yet mention your brand - and get outreach contacts for link building.

To enable this add-on, enter your brand name in the **Brand name** field under the **Add-on: Link prospecting tool** section. For each query, the Actor collects all cited URLs from Google Search results and Google AI Overview (both automatic), plus any AI engines you have enabled separately (Google AI Mode, ChatGPT, Perplexity, Microsoft Copilot, and Gemini), and checks each page for brand mentions.

Results go to a separate **Link prospecting tool** dataset. Each item includes:

- Which source cited the page (Google Search, Google AI Overview, Google AI Mode, ChatGPT, Perplexity, Microsoft Copilot, or Gemini)
- The AI engine's response text (`aiResponseText`)
- Whether your brand is mentioned in the AI engine's response text (`isBrandMentionedInAiResponse`)
- Whether your brand is mentioned in the scraped page content (`isBrandMentionedInSource`)
- Business contacts for pages that do **not** mention your brand - up to 5 per domain, marketing and C-suite roles only

**Charged events:**

- `search-page-scraped` - once per Google SERP page scraped (base event, always charged)
- `website-content-scraped` - once per page scraped for brand mention detection
- `lead-scraped` - once per business contact found for pages not mentioning your brand (up to 5 per domain, marketing and C-suite roles only)

Each enabled AI engine also charges its own event per query (e.g. `ai-mode-result-scraped`, `chatgpt-result-scraped`) - see the [pricing tab](https://apify.com/apify/google-search-scraper/pricing) for the full rate card.

Use **Own domains** to exclude your own brand's domains. Use **Ignored domains** to exclude directories, aggregators, or competitor sites.

⚠️ Each unique URL is scraped once across all sources. Enabling multiple AI engines with many queries can produce a large number of `website-content-scraped` events.

⚠️ 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.

**🔍 Add-on: SEO tools**

SEO-focused enrichments for organic search results, for content gap analysis, competitive audits, and SERP content benchmarking.

The first feature in this add-on is **website content scraping**. To enable it, turn on **Enable website content scraping** under the **Add-on: SEO tools** section. Each organic result's page is scraped with the [Website Content Crawler](https://apify.com/apify/website-content-crawler), and its content is attached to the result as `websiteContent.text`, plus `websiteContent.markdown` when the page can be converted to markdown (`null` otherwise).

**Charged event:**

- `website-content-scraped` - once per organic result page successfully scraped

⚠️ If **Link prospecting tool** is also active, pages shared between the two add-ons (e.g. an organic result URL that's also cited by the Link prospecting tool) are scraped and charged only once.

**📢 Add-on: Paid results (ads) extraction**

Determines whether ads are present on the page and, if so, shows what they are. This is useful for anyone planning their own campaigns or wanting to see what competitors are showing.

**👥 Add-on: Business leads enrichment**

This setting allows you to add contact information for companies and the employees working there, including **full name, work email address, phone number, job title, and LinkedIn profile**.

Under the **'Organic results' tab**, you can now find multiple business leads associated with each individual search result.

⚠️ **Warning!**

Leads enrichment is applied to all domains discovered in your search, including news articles, directories, and comparison sites, not just the primary company websites.

Large company chains are filtered out so as not to clutter up your results. [This list](https://api.apify.com/v2/key-value-stores/6IlJKTI235OLr3OVR/records/ignored_domains) shows you which sites are never included.

**✅ Add-on: Email verification**

When `verifyLeadsEnrichmentEmails` is enabled, each lead's email address is verified and an `emailVerification` object is added to the lead output. Requires Business leads enrichment to be active.

**Charged (decisive results):**

- `ok` - Valid, deliverable email address
- `invalid` - Invalid or non-existent email address
- `disposable` - Disposable or temporary email address

**Not charged:**

- `catch_all` - The domain accepts all addresses; individual deliverability cannot be confirmed
- `unknown` - Verification result could not be determined
- `error` - Verification encountered a technical error

```json
{
    "email": "james.hill@apify.com",
    "quality": "good",
    "result": "ok",
    "subResult": "accepted_email",
    "free": false,
    "role": false,
    "error": ""
}
```

#### How can I use data scraped from Google Search?

Google SERP API has a lot to offer in terms of how extracted Google data can be applied:

- **Use it for SEO** and keep an eye on how your website performs on Google for certain queries over time
- **Monitor how frequently a search term has been used** on Google, and how it compares with total search volume
- **Analyze display ads** for a given set of keywords
- **Monitor your competition** in both organic and paid results
- **Build a URL list for certain keywords** for scraping web pages containing specific phrases
- **Analyze the Google algorithm** and identify its main trends
- Better **lead generation** with the Business leads enrichment add-on
- **Monitor AI Overview summaries** to see how a site performs
- **Improved AEO, GEO, and brand visibility tracking** with AI search add-ons (Google AI Mode, Perplexity, ChatGPT, Microsoft Copilot, Gemini)
- **Link prospecting tool** - find unmentioned pages cited by AI engines and get outreach contacts to build links from relevant sources
- **SEO tools** - scrape the full content of ranking pages as markdown for content gap analysis and SERP content benchmarking

### How to use Google Search Results Scraper

Google Search Results Scraper is designed with users in mind, even those who have never extracted data from the web before. Using it takes just a few steps.

1. [Create](https://console.apify.com/actors/nFJndFXA5zjCTuudP/) a free Apify account using your email
2. Open [Google Search Results Scraper](https://apify.com/apify/google-search-scraper)
3. Add one or more search queries
4. Click the “Start” button and wait for the data to be extracted
5. Download your data in JSON, XML, CSV, Excel, or HTML

Check out Apify's video tutorial for more details:
https://www.youtube.com/watch?v=wjLskDlPfvo

**How to adapt your queries**

To get a larger number of results, simply increase the number of pages you want to scrape. For example, to get approximately 100 results, you need to set `maxPagesPerQuery` to `10`. The Actor will then navigate through 10 pages for your query, collecting ~10 results from each.

Please note that your results will be determined by the country you select, as well as your browsing history, exact IP address location, and browser fingerprint.

### How much will scraping Google Search cost you?

This scraper uses a pay-per-event (PPE) pricing model. You are not charged for the Apify platform usage, but only a fixed price for specific events. Check the [pricing tab](https://apify.com/apify/google-search-scraper/pricing) for details.

On the Free plan, you get $5 of credit, which lets you scrape over 1,000 Google Search results without using add-ons. If you upgrade to any of Apify's paid plans, you get a further discount, which means you could scrape thousands of results in just seconds.

### ⬇️ Input

The scraper lets you control what kind of Google Search data you can extract. You can specify the following settings:

- Query phrases or raw Google search URLs
- Country/search domain
- Language of search
- Exact geolocation
- Number of results per page
- Mobile or desktop version results

For a complete description of all settings, see the [Input tab](https://apify.com/apify/google-search-scraper/input-schema).

#### How to scrape Google Search results by URL or keyword

There are two ways you can scrape Google search pages: either by URL or by search term.

1. Scraping **by URL** will get you data from the Google Search results page. You'll get Google data from a copy-pasted Google URL with any Google country domain (e.g. `google.co.uk`). You can add as many URLs as you want.
2. Scraping **by search term** will also get you data from the Google Search results page. You can also add as many search terms as you want.

#### Example input for scraping Google Search by search term

To get Google search data by search term, enter the search term and a number of Google pages to scrape. Using search terms, you can:

- Scrape by multiple keywords in parallel by adding more search terms and separating them by a new line
- Say how many results you want to see per Google page (10-100)
- Determine the country of search (domain), language, and UULE location parameter

<a href="https://console.apify.com/actors/cHedUknx10dsaavpI/">
<img src="https://github.com/apify-projects/actor-readme-images/blob/master/google-search-results-scraper-input.png?raw=true" alt="Google Search Results Scraper input" style="width:70%;">
</a>

Here's its equivalent in JSON:

```json
{
    "countryCode": "us",
    "customDataFunction": "async ({ input, $, request, response, html }) => {\\\\n  return {\\\\n    pageTitle: $('title').text(),\\\\n  };\\\\n};",
    "includeUnfilteredResults": false,
    "languageCode": "en",
    "maxPagesPerQuery": 2,
    "mobileResults": false,
    "queries": "hotels in Seattle \\n hotels in New York",
    "saveHtml": false,
    "saveHtmlToKeyValueStore": false,
    "maxConcurrency": 10
}
```

#### Scrape Google Search results by URL

To input URLs instead, simply replace `queries` with full URLs:

```json
"queries": "<https://www.google.com/search?q=hotels+in+Seattle> \\n <https://www.google.com/search?q=hotels+in+New+York>",
```

### ⬆️ Output

The scraper stores its result in the default [dataset](https://apify.com/docs/storage#dataset) associated with the scraper run, from which you can export it to various formats, such as JSON, XML, CSV, or Excel.

For each Google Search results page, the dataset will contain a single record, which looks as follows. Note that the output preview will be organized in table and tabs for viewing convenience:

<a href="https://console.apify.com/actors/cHedUknx10dsaavpI/">
<img src="https://github.com/apify-projects/actor-readme-images/blob/master/google-search-results-scraper-output.png?raw=true" alt="Google Search Results Scraper output" style="width:70%;">
</a>

Here’s the equivalent of the same scraped data but in JSON. Bear in mind that some fields have example values:

```json
[
    {
        "searchQuery": {
            "term": "Hotels in Seattle",
            "url": "http://www.google.com/search?q=Hotels+in+Seattle&num=5",
            "device": "DESKTOP",
            "page": 1,
            "type": "SEARCH",
            "domain": "google.com",
            "countryCode": "US",
            "languageCode": null,
            "locationUule": null
        },
        "relatedQueries": [
            {
                "title": "Airbnb",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Airbnb&stick=H4sIAAAAAAAAAOMwVOLWz9U3MDQozC2uKvjFyLCBheEVCy8XsugrFh4uLhDfOL3QxMgAwQVKF1m8YuHi4gBx06tKcuByecZV6clVcK5RdnlVeckrFm4uThDXsqDSsAguWVlRlWxYBZc0MU02T3rFwsnFDuJlW1QtYmVzzCxKyku6xSbJsHtRx08W1_2GGy2NN24Se7yd_Zf739q0GSsXcYgFpOYX5KQqJOYU5ysUpyYWJWcopOUXreBgBABeO2g95gAAAA&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQs9oBKAB6BAglEAo"
            },
            {
                "title": "Expedia Group",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Expedia+Group&stick=H4sIAAAAAAAAAOMwVOLSz9U3ME4vNDEy-MXIsIGF4RULLxc3SNDQoDC3uKrgFQsPF5IiBBcoXWTxioWLiwPETa8qyYHL5RlXpSdXwblG2eVV5SWvWLi5OEFcy4JKwyK4ZGVFVbJhFVzSxDTZPOkVCycXO4iXbVG1iJXXtaIgNSUzUcG9KL-04BabJMPuRR0_WVz3G260NN64SezxdvZf7n9r02asXMQhFpCaX5CTqpCYU5yvUJyaWJScoZCWX7SCgxEARw2QBewAAAA&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQs9oBKAB6BAglEA8"
            },
            {
                "title": "Vrbo",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Vrbo&stick=H4sIAAAAAAAAAOMwVOLSz9U3MDYozC2y-MXIsIGF4RULLxc3SNAQKFhcVfCKhYcLoii90MTIAMEF63nFwsXFAeKmV5XkwOXyjKvSk6vgXKPs8qryklcs3FycIK5lQaVhEVyysqIq2bAKLmlimmye9IqFk4sdxMu2qFrEyhJWlJR_i02SYfeijp8srvsNN1oab9wk9ng7-y_3v7VpM1Yu4hALSM0vyElVSMwpzlcoTk0sSs5QSMsvWsHBCACk6JiV4wAAAA&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQs9oBKAB6BAglEBQ"
            },
            {
                "title": "Southwest Airlines",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Southwest+Airlines&stick=H4sIAAAAAAAAAOMwVOLQz9U3SK8qyfnFyLCBheEVCy8XN0jI0KAwt7iq4BULDxcXiG-cXmhiZIDgAqWLLF6xcHHBDYDL5RlXpSdXwblG2eVV5SWvWLi5OEFcy4JKwyK4ZGVFVbJhFVzSxDTZPOkVCycXO4iXbVG1iFUoOL-0JKM8tbhEwTGzKCczL7X4Fpskw-5FHT9ZXPcbbrQ03rhJ7PF29l_uf2vTZqxcxCEWkJpfkJOqkJhTnK9QnJpYlJyhkJZftIKDEQCjBkmc7wAAAA&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQs9oBKAB6BAglEBk"
            },
            {
                "title": "trivago",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=trivago&stick=H4sIAAAAAAAAAOMwVOLSz9U3yDOuSk-u-sXIsIGF4RULLxc3SNDQoDC3uKrgFQsPF1iRcXqhiZEBgguULrJ4xcLFxQHipleV5MDlIObBuUbZ5VXlJa9YuLk4QVzLgkrDIrhkZUVVsmEVXNLENNk86RULJxc7iJdtUbWIlb2kKLMsMT3_Fpskw-5FHT9ZXPcbbrQ03rhJ7PF29l_uf2vTZqxcxCEWkJpfkJOqkJhTnK9QnJpYlJyhkJZftIKDEQArWf7U5gAAAA&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQs9oBKAB6BAglEB4"
            },
            {
                "title": "KAYAK",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=KAYAK&stick=H4sIAAAAAAAAAOMwVOLSz9U3MMouryov-cXIsIGF4RULLxc3SNDQoDC3uKrgFQsPF1iRcXqhiZEBgguULrJ4xcLFxQHipleV5MDl8oyr0pOr4FyI8a9YuLk4QVzLgkrDIrhkZUVVsmEVXNLENNk86RULJxc7iJdtUbWIldXbMdLR-xabJMPuRR0_WVz3G260NN64SezxdvZf7n9r02asXMQhFpCaX5CTqpCYU5yvUJyaWJScoZCWX7SCgxEA3hWrWOQAAAA&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQs9oBKAB6BAglECM"
            },
            {
                "title": "Hotels in seattle downtown",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Hotels+in+seattle+downtown&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg7EAE"
            },
            {
                "title": "Best hotels in seattle",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Best+hotels+in+seattle&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg6EAE"
            },
            {
                "title": "Hotels in Seattle Washington near Airport",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Hotels+in+Seattle+Washington+near+Airport&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg9EAE"
            },
            {
                "title": "Cheap hotels in seattle",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Cheap+hotels+in+seattle&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg8EAE"
            },
            {
                "title": "Hotels in seattle luxury",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Hotels+in+seattle+luxury&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg_EAE"
            },
            {
                "title": "hotels in seattle, washington near cruise port",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=hotels+in+seattle,+washington+near+cruise+port&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAgrEAE"
            },
            {
                "title": "Boutique hotels Seattle",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Boutique+hotels+Seattle&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAgoEAE"
            },
            {
                "title": "Best hotels in Seattle Downtown",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Best+hotels+in+Seattle+Downtown&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAgnEAE"
            },
            {
                "title": "Hotels in seattle downtown",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Hotels+in+seattle+downtown&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg7EAE"
            },
            {
                "title": "Best hotels in seattle",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Best+hotels+in+seattle&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg6EAE"
            },
            {
                "title": "Hotels in Seattle Washington near Airport",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Hotels+in+Seattle+Washington+near+Airport&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg9EAE"
            },
            {
                "title": "Cheap hotels in seattle",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Cheap+hotels+in+seattle&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg8EAE"
            },
            {
                "title": "Hotels in seattle luxury",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Hotels+in+seattle+luxury&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAg_EAE"
            },
            {
                "title": "hotels in seattle, washington near cruise port",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=hotels+in+seattle,+washington+near+cruise+port&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAgrEAE"
            },
            {
                "title": "Boutique hotels Seattle",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Boutique+hotels+Seattle&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAgoEAE"
            },
            {
                "title": "Best hotels in Seattle Downtown",
                "url": "https://www.google.com/search?num=5&sca_esv=49b6c55cfef21711&hl=en&q=Best+hotels+in+Seattle+Downtown&sa=X&ved=2ahUKEwiEk-Li5qWPAxXzrokEHTUEOVcQ1QJ6BAgnEAE"
            }
        ],
        "paidResults": [],
        "paidProducts": [],
        "organicResults": [
            {
                "title": "Downtown Seattle Hotel | Luxury Waterfront Hotel Rooms",
                "url": "https://www.edgewaterhotel.com/",
                "displayedUrl": "https://www.edgewaterhotel.com",
                "description": "The Edgewater Hotel is laden with a rich musical past and surrounded by breathtaking views of the Olympic Mountains, Elliott Bay and the sparkling city.",
                "emphasizedKeywords": ["The Edgewater Hotel"],
                "siteLinks": [],
                "productInfo": {},
                "type": "organic",
                "position": 1
            },
            {
                "title": "Top 10 Hotels in Seattle, WA",
                "url": "https://www.hotels.com/de1481165/hotels-seattle-washington/",
                "displayedUrl": "https://www.hotels.com › ... › Hotels in Washington",
                "description": "Flexible booking options on most hotels. Compare 2963 hotels in Seattle using 47993 real guest reviews. Pay what you see with upfront pricing on all hotels.",
                "emphasizedKeywords": ["Compare 2963 hotels in Seattle"],
                "siteLinks": [],
                "productInfo": {},
                "type": "organic",
                "position": 2
            },
            {
                "title": "Hotels in Seattle, WA",
                "url": "https://www.marriott.com/en-us/destinations/united-states/washington/seattle.mi",
                "displayedUrl": "https://www.marriott.com › united-states › washington",
                "description": "Marriott Bonvoy's hotels in Seattle provide the ideal starting point for your exploration, ensuring you are always close to the best the city has to offer.",
                "emphasizedKeywords": ["Marriott Bonvoy's hotels in Seattle"],
                "siteLinks": [],
                "productInfo": {},
                "type": "organic",
                "position": 3
            }
        ],
        "peopleAlsoAsk": [],
        "aiModeResult": {
            "engine": "AI Mode",
            "provider": "Google",
            "text": "You can find many hotel options in Seattle, from high-end downtown hotels to budget-friendly hostels. Some options, like Hampton Inn & Suites, offer free amenities, while others focus on prime locations near major attractions. The best area to stay often depends on your budget and what you want to see. Downtown Seattle Known for being walkable and close to attractions, Downtown Seattle is home to a wide range of hotels. The Paramount Hotel: A 3-star hotel with a prime location for exploring downtown attractions like Pike Place Market and the Space Needle. Reviewers mention its modern rooms and friendly staff.Hyatt Regency Seattle: A 4-star hotel located downtown, receiving high marks for being an exceptional place to stay.Mayflower Park Hotel: Another downtown 4-star option, with travelers highlighting its excellent breakfast and beautiful dining room.Green Tortoise Hostel Seattle: For budget-conscious travelers, this highly-rated hostel is located directly across from Pike Place Market and offers free breakfast. Hampton Inn & Suites Seattle-Downtown4.1(1.6K)3-star hotel700 5th Ave NThe Paramount Hotel4.5(2.4K)3-star hotel724 Pine StHyatt Regency Seattle4.6(3.8K)4-star hotel808 Howell StMayflower Park Hotel4.4(1.4K)3-star hotel405 Olive WyGreen Tortoise Hostel Seattle4.5(2.3K)2-star hotel105B Pike StSee moreBelltown and South Lake Union These trendy neighborhoods offer a mix of boutique hotels and serviced apartments. The Ace Hotel (Belltown): A popular mid-range option.Hotel Ändra (Belltown): A cool boutique hotel.CitizenM South Lake Union: This location of a popular hotel chain is a great option for modern stays. Hôtel Ändra Seattle - MGallery Collection4.5(1.3K) · $$$$4-star hotel2000 4th AvecitizenM Seattle South Lake Union hotel4.3(1K)4-star hotel201 Westlake Ave NSeattle Center and Queen Anne This area is convenient for accessing attractions like the Space Needle, MoPOP, and Climate Pledge Arena. Hampton Inn & Suites Seattle-Downtown: Located in the Seattle Center area, this 3-star hotel offers free hot breakfast and is within walking distance of many tourist spots.Mediterranean Inn (near Seattle Center): A mid-range hotel that is consistently well-reviewed for its location and comfort. Northgate Located north of the downtown core, this area is a good option if you want to be near the University of Washington or other northern attractions. Hampton Inn & Suites by Hilton Seattle/Northgate: A 2-star hotel offering an indoor pool and free breakfast. Reviewers praise the friendly staff and find it a good value, especially if you plan to use the light rail to get downtown. Which Seattle hotels have the best views?Any hotels in Seattle known for unique architecture?Elaborate on the price ranges for hotels in different Seattle neighborhoods",
            "sources": [
                {
                    "title": "Where To Stay In Seattle: A Complete Guide For First Timers",
                    "url": "https://wheatlesswanderlust.com/where-to-stay-in-seattle/",
                    "description": "Here are some cool places to stay in Belltown that caught our eye. * The Ace Hotel: A Great Mid-Range Option (Where We've Stayed) * Hotel Ändra: A Cool Boutique...",
                    "imageUrl": "data:image/png;base64,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"
                },
                {
                    "title": "Top 10 Hotels in Seattle, WA from $93 - Fully Refundable Options - Expedia",
                    "url": "https://www.expedia.com/Seattle-Hotels.d178307.Travel-Guide-Hotels",
                    "description": "Compare 4,566 hotels, room rates, hotel reviews and availability. Most hotels are fully refundable. * The Belltown Inn. The Belltown Inn. The Belltown Inn. The ...",
                    "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAD90lEQVRogc2av28cRRTHP+/t+mgogoA6sZyN7QBOfEiEGAokfkkYRBRBhXAQLTSYBEj4B1AICZKBhiCBJbqAUsRUFEggxSDl5JjICXc55ISCAhLSpFnfzlDsnuNz7rx7tz/uvtIWdzs783kzb9/MvB1hk8zVR8VaOwK8ArwIjAPbAN1cNmcZ4BawApwDziDyp7Pzgt1YSDb+CGrle4FDwFvALsAphjVWAfAH8Bkw73iV280b6wYEtfIDwEfADDBUNGFC+cDXwDHHq9yAyICo5z8F3mTTqAygLPAlMOt4ldtNv56JrkGHh5DxDeB1AAlqZQ84C+zuI1QvugS8rITRZrTPML1oHDjoAi/QRbQRBcnb0SwYE1vKAaZdunAdEbhcV36vCsbGl+9FpSEYG7aMDZskHbXbJZykYqUKv1SUD06VqP8luY2CCDx4n2X2UIPXphtx7WxTEsywqnB+SXnvZIna9fzgAayFv/8VTs27VK8pujVdzO2oxOJF5cgnYc87BSwoHIV/bgrVVYkN7FviqMKvyyF87Xox8E1ZYK0RX87tdEMVlq4o7xwvUV0VVKERpAdTBc3QBTsaAKE/PjcV8PxUNo01O+X8xeyGsqMBxsDeMcPkeHxATiSF35aVHxcdrM1uLokdAZtBvFeFxSXlyIkS1WvZvku5v5aqsLicDzzkbEAS+LQjnJsBSeADA7t2WPZNmJ6XJrkYkBh+u+Xjd332jJoki7f2baVDbVNhN/CHfR7bY7ApAl2mBnQL//iECXMPadpM9/iGinqA79VtWtpNX0X/4CEDA/oJDykNUOkvPKQwQBWurArvn+wfPKQZAYFLNaXWR3hI6UKdlgFFwUMOE1mR8JDSgCGXu9xnbEdx8BCzH4Bw49F2X2BhatIwd8xf37uKwMM7LaPDxcBDjAGqsFJXTn/n4q/d+d9aeHZ/wIGnAw4807pRtpZUa5tutfUICKzUhW8XnJYRaEQ9/tJTQW45oqTbzlgXAnCdu10oz+RWYML04iOeCfMrW6jo716xakax47M+3nYb+y7FGpBTDretmvAnDvvsmzCJtptKzIq8FIVKkdbrnqHs3Mi2gU8YxYwL/Afc37ZiA09MGuY+9PHX7qQpLfDQiF0PsWklwGj38AC3JKiVfwae7Fi5hB81NiurcCkSZutEwkRal/PHTy6wAOynw1caa8FmkBPtJGthb5T96xI+AH5Q4AzhR+S+yZqeRvMy8L06XuUq8DmwFvPAIMkHvnC8Sr3p3d9EV5FRs1dZQtZ5iOaB6OzBUeArQusGVT5wGjjaPC/R7rDHDPA2g3fYowrM0emwx3rJalkQRoBXgWkG47jNAmGwqTtepcXN/wc7PMQyfEwyGgAAAABJRU5ErkJggg=="
                },
                {
                    "title": "Green Tortoise Hostel Seattle",
                    "url": "https://www.google.com/viewer/place?mid=/g/1td7sx3h",
                    "description": "Low-key hostel offering basic dorms & private rooms, plus a full communal kitchen & free Wi-Fi.",
                    "imageUrl": "data:image/png;base64,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"
                },
                {
                    "title": "Where Should I Stay in Seattle? (An Unofficial Seattle Accommodation ...",
                    "url": "https://totallyseattle.com/where-should-i-stay-in-seattle-an-unofficial-seattle-accommodation-guide/",
                    "description": "Recommended hotels in Downtown Seattle: * Four Seasons Hotel. * Fairmont Olympic Hotel. * The Alexis Hotel. * The Inn at the Market. Staying in Seattle's Bellto...",
                    "imageUrl": "data:image/png;base64,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"
                }
            ],
            "query": "Hotels in Seattle",
            "kvsHtmlUrl": "https://api.apify.com/v2/key-value-stores/CzC2EqsvcNUUhWsSH/records/Hotels-in-Seattle_522be799a1919512562f544878e95f5e5ecfa59da52aeda4bcc768a3f9afacd2.html?signature=1PWgT4hZ9FTMZ9sBjH55k",
            "url": "http://www.google.com/search?q=Hotels+in+Seattle&num=5"
        }
    }
]
```

You can **download the results directly from the platform using a button** or from the [Get dataset items](https://www.apify.com/docs/api/v2#/reference/datasets/item-collection/get-items) API endpoint:

```json
<https://api.apify.com/v2/datasets/[DATASET_ID]/items?format=[FORMAT]>
```

where `[DATASET_ID]` is the ID of the dataset and `[FORMAT]` can be `csv`, `html`, `xlsx`, `xml`, `rss`, or `json`.

### Frequently asked questions

#### How to get one search result per row

Simply choose the Export view for `Organic results` and/or `Paid results`. It automatically spreads each result into a separate row. For API access, you can add `&view=paid_results` or `&view=organic_results` to the URL and with the API client, you can do the same using the `view` field.

An organic result is represented using the following format:

```json
{
    "searchQuery": {
        "term": "laptop",
        "device": "DESKTOP",
        "page": 1,
        "type": "SEARCH",
        "domain": "google.com",
        "countryCode": "US",
        "languageCode": "en",
        "locationUule": null
    },
    "type": "organic",
    "position": 1,
    "title": "Laptops & Notebook Computers - Best Buy",
    "url": "<https://www.bestbuy.com/site/computers-pcs/laptop-computers/abcat0502000.c?id=abcat0502000>",
    "displayedUrl": "<https://www.bestbuy.com> › Computers & Tablets",
    "description": "Shop Best Buy for laptops. Work & play from anywhere with a notebook computer. We can help you find the best laptop for your specific needs in store and online.",
    "emphasizedKeywords": "laptops | laptop",
    "productInfo": {}
}
```

A paid result has an `adPosition` field instead of `position` and `"type": "paid"`. **Paid result position is calculated separately from the organic results**.

When using a tabular format such as `csv` or `xls`, you'll get a table where each row contains just one organic result. For more details about exporting and formatting the dataset records, please see the documentation for the [Get dataset items](https://apify.com/docs/api/v2#/reference/datasets/item-collection/get-items) API endpoint.

#### Can I use integrations with Google Search Results Scraper?

You can integrate Google Search Results Scraper with almost any cloud service or web app. Apify offers integrations with **Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive**, [and plenty more](https://docs.apify.com/integrations).

Alternatively, you could use [webhooks](https://docs.apify.com/integrations/webhooks) to carry out an action whenever an event occurs, such as getting a notification whenever Google Search Results Scraper successfully finishes a run.

#### Can I use Google Search Results Scraper with the Apify API?

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify Actors. The API also lets you access any datasets, monitor Actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the `apify-client` [npm package](https://apify.com/apify/google-search-scraper/api/javascript). To access the API using Python, use the `apify-client` [PyPI package](https://apify.com/apify/google-search-scraper/api/python).

Click on the [API tab](https://apify.com/apify/google-search-scraper/api/python) for code examples, or check out the [Apify API reference](https://docs.apify.com/api/v2) docs for all the details.

#### Can I use Google Search Results Scraper through an MCP server?

With Apify API, you can use almost any Actor in conjunction with a Model Context Protocol (MCP) server. You can connect to the MCP server using clients like Claude Desktop and LibreChat, or even build your own. Read all about how you can [set up Apify Actors with MCP](https://blog.apify.com/how-to-use-mcp/).

For Google Search Results Scraper, go to the [MCP tab](https://apify.com/apify/google-search-scraper/api/mcp) and then go through the following steps:

1. Start a Server-Sent Events (SSE) session to receive a `sessionId`
2. Send API messages using that `sessionId` to trigger the scraper
3. The message starts the Google Search Results Scraper with the provided input
4. The response should be: `Accepted`

#### Is it legal to scrape Google Search data?

Web scraping is legal if you are extracting publicly available data, which is most data on Google Search. However, you should **respect boundaries such as personal data** and intellectual property regulations. You should only scrape personal data if you have a legitimate reason to do so, and you should also factor in Google's [Terms of Use](https://policies.google.com/terms?hl=en).

If you're unsure whether your reason is legitimate, consult your lawyers. You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Your feedback

If you are not sure that the results are complete and of good quality, each run stores the full HTML page in the default Key-Value Store. You can view the KVS by clicking on it and comparing the results.

We’re always working on improving the performance of Apify's Actors and monitoring the quality, but we are happy for any reports. So if you’ve got any technical feedback for this Google SERP API or simply found a bug, please create an issue on the Actor’s [Issues tab](https://apify.com/apify/google-search-scraper/issues/open).

# Actor input Schema

## `queries` (type: `string`):

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 <code>AI site:twitter.com</code> or <code>javascript OR python</code>. You can also define selected search filters as separate fields below (in the <code>Advanced search filters</code> section). Just ensure that your queries do not exceed 32 words to comply with Google Search limits.

## `maxPagesPerQuery` (type: `integer`):

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

## `aiOverview` (type: `object`):

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 <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for your rate.

## `aiModeSearch` (type: `object`):

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 <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for your rate.

## `geminiSearch` (type: `object`):

Get an AI answer from Google Gemini (gemini.google.com), Google's standalone assistant, separate from Google Search.<br><br>Costs extra per result - see the <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for your rate.

## `perplexitySearch` (type: `object`):

Get AI answers and citations from Perplexity's Sonar model.<br><br>Costs extra per result - see the <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for your rate.

## `chatGptSearch` (type: `object`):

Get AI answers from OpenAI's search model. The output includes query fan-out under <code>queryFanOut</code> - the extra searches the model ran to answer you.<br><br>Costs extra per result - see the <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for your rate.

## `copilotSearch` (type: `object`):

Get AI answers from Microsoft Copilot.

## `maximumLeadsEnrichmentRecords` (type: `integer`):

Maximum number of lead records to scrape per domain found. Set to 0 (the default) to disable leads enrichment.<br><br>⚠️ Some fields contain <b>personal data</b>, 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.<br><br>⚠️ <b>This value is a multiplier</b> - see the section description above for how costs are calculated.

## `leadsEnrichmentDepartments` (type: `array`):

Include only leads from specific departments, such as Sales, Marketing, or C-suite. Only applies when business leads enrichment (<code>maximumLeadsEnrichmentRecords</code>) is enabled. Note that some job titles may be miscategorized.

## `verifyLeadsEnrichmentEmails` (type: `boolean`):

Check whether each lead's email is actually deliverable before you reach out. Adds an <code>emailVerification</code> object to every lead with the result and a quality score.<br><br><b>Charged (decisive results):</b> valid (<code>ok</code>), invalid, and disposable addresses.<br><b>Not charged:</b> catch-all, unknown, and error results.<br><br>⚠️ Requires business leads enrichment to be enabled.

## `linkProspecting` (type: `object`):

<b>Charged events:</b> <code>search-page-scraped</code> (base, per Google SERP page), <code>website-content-scraped</code>, <code>lead-scraped</code> (up to 5 contacts per domain, marketing and C-suite roles only), and one event per enabled AI engine query. See the <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for rates.<br><br>⚠️ 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.<br><br>⚠️ If the Full website content add-on is also active, pages shared between the two add-ons are scraped and charged only once.

## `websiteContentScraper` (type: `object`):

Get the full page content of every organic result as <code>websiteContent.text</code>, plus <code>websiteContent.markdown</code> when the page converts cleanly (<code>null</code> otherwise). Uses the Website Content Crawler. Charged event: <code>website-content-scraped</code>, per successfully scraped page. See the <a href='https://console.apify.com/actors/nFJndFXA5zjCTuudP/info/pricing?build=latest' target='_blank'>Pricing tab</a> for rates.<br><br>⚠️ If the Link prospecting tool add-on is also active, pages shared between the two add-ons are scraped and charged only once.

## `focusOnPaidAds` (type: `boolean`):

Turn on to capture the Google Ads shown for each query.

## `countryCode` (type: `string`):

Specifies the country used for the search and the Google Search domain (e.g. <code>google.es</code> for Spain). By default, the Actor uses United States (<code>google.com</code>).

## `searchLanguage` (type: `string`):

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 <code>lr</code> URL query parameter. <a href='https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list' target='_blank'>Read more here</a>.

## `languageCode` (type: `string`):

Language of the Google Search interface (menus, buttons, etc. - not the search results themselves). Passed to Google Search as the <code>hl</code> URL query parameter. It can still affect results on international queries when no search-language restriction (the <code>lr</code> parameter) is set. <a href='https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list' target='_blank'>Read more here</a>.

## `locationUule` (type: `string`):

The code for the exact location for the Google search. It's passed to Google Search as the <code>uule</code> URL query parameter. You can use the <a href='https://padavvan.github.io/' target='_blank'>UULE code generator</a>. Learn more about <a href='https://moz.com/ugc/geolocation-the-ultimate-tip-to-emulate-local-search' target='_blank'>emulating local search</a>.

## `forceExactMatch` (type: `boolean`):

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 <code>"Windows AND macOS"</code>. If you want to search for queries such as <code>"Windows" AND "macOS"</code>, you need to specify them directly in the <code>queries</code> field.

## `site` (type: `string`):

Limits the search to a specific site, such as: <code>site:example.com</code>. Note that the <code>site</code> filter takes precedence over the <code>relatedToSite</code> filter. If both filters are set, the <code>relatedToSite</code> filter will be ignored and not added to the search queries.

## `relatedToSite` (type: `string`):

Filters pages related to a specific site, such as: <code>related:example.com</code>. Note that the <code>site</code> filter takes precedence over the <code>relatedToSite</code> filter. If both filters are set, the <code>relatedToSite</code> filter will be ignored and not added to the search queries.

## `wordsInTitle` (type: `array`):

Filters pages with specific words in the title. The scraper uses the <code>intitle:</code> operator, even for multiple words (e.g. <code>recipe site:allrecipes.com intitle:"easy apple" intitle:pie</code>). There's also a <code>allintitle:</code> operator available, but it's problematic when combined with other search filters, so the scraper avoids using it. If you need to use the <code>allintitle:</code> operator specifically, you can include it in your custom queries from the <code>queries</code> field.

## `wordsInText` (type: `array`):

Filters pages with specific words in the text. The scraper uses the <code>intext:</code> operator, even for multiple words (e.g. <code>cartoon site:wikipedia.com intext:cat intext:mouse</code>). There's also a <code>allintext:</code> operator available, but it's problematic when combined with other search filters, so the scraper avoids using it. If you need to use the <code>allintext:</code> operator specifically, you can include it in your custom queries from the <code>queries</code> field.

## `wordsInUrl` (type: `array`):

Filters pages with specific words in the URL. The scraper uses the <code>inurl:</code> operator, even for multiple words (e.g. <code>recipe site:allrecipes.com inurl:apple inurl:pie</code>). There's also a <code>allinurl:</code> operator available, but it's problematic when combined with other search filters, so the scraper avoids using it. If you need to use the <code>allinurl:</code> operator specifically, you can include it in your custom queries from the <code>queries</code> field.

## `quickDateRange` (type: `string`):

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 <code>tbs</code> URL query parameter, prefixed with <code>qdr:</code>. You should avoid combining this filter with the <code>beforeDate</code> and <code>afterDate</code> filters to prevent conflicts.

## `beforeDate` (type: `string`):

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 units: `days`, `weeks`, `months`, `years`. You should avoid combining this filter with the `quickDateRange` filter to prevent conflicts.

## `afterDate` (type: `string`):

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 units: `days`, `weeks`, `months`, `years`. You should avoid combining this filter with the `quickDateRange` filter to prevent conflicts.

## `fileTypes` (type: `array`):

Filters results of specific file types using the <code>filetype:</code> operator, such as <code>filetype:pdf</code>. You can select multiple file types as well. They will be combined with the <code>OR</code> operator, for example: <code>filetype:doc OR filetype:txt</code>. 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 <code>queries</code> field, using the <code>filetype:</code> operator.

## `mobileResults` (type: `boolean`):

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

## `includeUnfilteredResults` (type: `boolean`):

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

## `saveHtml` (type: `boolean`):

If checked, the HTML of the Google Search results pages is stored in the default dataset, under the <code>html</code> property. This is useful if you need to process the HTML, but it makes the dataset large.

## `saveHtmlToKeyValueStore` (type: `boolean`):

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 <code>htmlSnapshotUrl</code> 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.

## `includeIcons` (type: `boolean`):

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

## Actor input object example

```json
{
  "queries": "best SEO tools\napify web scraping",
  "maxPagesPerQuery": 5,
  "aiOverview": {
    "scrapeFullAiOverview": true
  },
  "aiModeSearch": {
    "enableAiMode": true
  },
  "geminiSearch": {
    "enableGemini": true
  },
  "perplexitySearch": {
    "enablePerplexity": true,
    "returnImages": false,
    "returnRelatedQuestions": true
  },
  "chatGptSearch": {
    "enableChatGpt": true
  },
  "copilotSearch": {
    "enableCopilot": true
  },
  "maximumLeadsEnrichmentRecords": 5,
  "leadsEnrichmentDepartments": [
    "marketing",
    "sales"
  ],
  "verifyLeadsEnrichmentEmails": true,
  "websiteContentScraper": {
    "enable": true
  },
  "focusOnPaidAds": true,
  "countryCode": "us",
  "searchLanguage": "en",
  "languageCode": "en",
  "locationUule": "w+CAIQICIhVW5pdGVkIFN0YXRlcyx1c2E=",
  "forceExactMatch": true,
  "site": "example.com",
  "relatedToSite": "example.com",
  "wordsInTitle": [
    "easy",
    "tutorial"
  ],
  "wordsInText": [
    "artificial intelligence"
  ],
  "wordsInUrl": [
    "blog"
  ],
  "quickDateRange": "m6",
  "beforeDate": "2024-12-31",
  "afterDate": "2024-01-01",
  "fileTypes": [
    "pdf",
    "doc"
  ],
  "mobileResults": true,
  "includeUnfilteredResults": true,
  "saveHtml": true,
  "saveHtmlToKeyValueStore": true,
  "includeIcons": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": "What are the top 5 CRM tools",
    "maxPagesPerQuery": 1,
    "geminiSearch": {
        "enableGemini": false
    },
    "perplexitySearch": {
        "enablePerplexity": false,
        "returnImages": false,
        "returnRelatedQuestions": false
    },
    "chatGptSearch": {
        "enableChatGpt": false
    },
    "copilotSearch": {
        "enableCopilot": false
    },
    "maximumLeadsEnrichmentRecords": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("excitable_pickle/google-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": "What are the top 5 CRM tools",
    "maxPagesPerQuery": 1,
    "geminiSearch": { "enableGemini": False },
    "perplexitySearch": {
        "enablePerplexity": False,
        "returnImages": False,
        "returnRelatedQuestions": False,
    },
    "chatGptSearch": { "enableChatGpt": False },
    "copilotSearch": { "enableCopilot": False },
    "maximumLeadsEnrichmentRecords": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("excitable_pickle/google-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": "What are the top 5 CRM tools",
  "maxPagesPerQuery": 1,
  "geminiSearch": {
    "enableGemini": false
  },
  "perplexitySearch": {
    "enablePerplexity": false,
    "returnImages": false,
    "returnRelatedQuestions": false
  },
  "chatGptSearch": {
    "enableChatGpt": false
  },
  "copilotSearch": {
    "enableCopilot": false
  },
  "maximumLeadsEnrichmentRecords": 0
}' |
apify call excitable_pickle/google-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,excitable_pickle/google-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ys0yGSrmVq84noAqC/builds/4ozZPBf5ha4dFfyKL/openapi.json
