# Google Maps Local SEO Scraper (`shahabuddin38/google-maps-local-seo-scraper`) Actor

Google Maps Local SEO Scraper helps agencies, marketers, and lead generation teams extract public Google Maps business data for local SEO, competitor analysis, and local lead discovery. It  turn Google Maps results into structured business intelligence you can export, filter, and market research.

- **URL**: https://apify.com/shahabuddin38/google-maps-local-seo-scraper.md
- **Developed by:** [Shahab Uddin](https://apify.com/shahabuddin38) (community)
- **Categories:** Developer tools, SEO tools, Lead generation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN 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/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### Google Maps Scraper for Local SEO

Extract public Google Maps business data into structured local SEO datasets for lead generation, competitor research, citation discovery, and market analysis.

This Apify Actor helps agencies, local businesses, and growth teams collect structured Google Maps results without needing a Google Maps API key. It is designed for public business listing intelligence, not private Google Business Profile owner analytics.

#### Why teams use this Actor

- Build local SEO audit datasets for a city, service area, or niche
- Compare top ranking businesses by reviews, ratings, category usage, and profile completeness
- Create lead lists from businesses with weak websites, low review counts, or incomplete listings
- Benchmark a target business across related local keywords
- Export agency-ready data to CSV or JSON for dashboards, reporting, and outreach workflows

#### Who this Actor is for

- Local SEO agencies running competitor audits and recurring client reports
- Lead generation teams sourcing local businesses with visible optimization gaps
- Consultants mapping category saturation and city-by-city competition
- Multi-location brands reviewing how local markets differ by query and region

#### What this Actor extracts

For each Google Maps result, the Actor can collect public fields such as:

- Business name
- Category
- Address
- Phone number
- Website
- Rating
- Review count
- Review snippets
- Opening hours
- Coordinates
- Images or photo availability
- Google Maps URL
- Ranking position for the query

Depending on public availability, the Actor may also return:

- Review text snippets
- Competitor profile completeness signals
- Keyword relevance indicators
- Authority and health scores
- Citation sources discovered from public web pages

#### Best use cases

##### Local SEO

Use this Actor to analyze businesses ranking for a keyword in a city or service area and quickly spot where profiles are strong, weak, or under-optimized.

Examples:

- dentists in chicago
- real estate agents in toronto
- mobile repair near me
- plumbers in dubai

##### Lead generation

Find local businesses missing key profile elements such as:

- no website
- low review count
- weak ratings
- incomplete business information

##### Competitor research

Compare top Google Maps competitors by:

- ratings
- review count
- website presence
- category usage
- profile completeness

##### Agency reporting

Export structured Google Maps data to CSV or JSON and plug it into dashboards, client reports, prospecting systems, or internal scoring workflows.

#### How it works

1. Enter a search query, such as a keyword, business type, or location-based phrase.
2. The Actor requests public Google local results HTML.
3. It extracts visible Google Maps business cards.
4. It can optionally enrich businesses with extra public website, citation, and coordinate signals.
5. It stores normalized business rows in the default dataset.
6. It stores the full summary payload in the default key-value store as `OUTPUT`.

#### Input

The Actor accepts these main inputs:

- `query` - required primary search term
- `location` - optional city, area, or geo modifier
- `businessName` - optional target business for benchmarking
- `keywords` - optional extra keywords for rank checks
- `country` - Google country code such as `us`, `gb`, `ca`
- `language` - Google language code such as `en`
- `maxResults` - number of Google Maps results to collect, up to `20`
- `includeBusinessEnrichment` - whether to enrich results from public web sources
- `includeKeywordGeoRankings` - whether to check the target business across extra keywords
- `useGoogleSerpProxy` - whether to use the Apify `GOOGLE_SERP` proxy group for Google requests

#### Output

The Actor stores one business per dataset item in the default dataset and now includes Apify output metadata for cleaner Console and API presentation.

Each dataset row includes fields such as:

- `query`
- `location`
- `rank`
- `organicRank`
- `businessName`
- `category`
- `address`
- `phone`
- `website`
- `websiteUrl`
- `rating`
- `reviewCount`
- `openingHours`
- `coordinates`
- `photos`
- `relevanceScore`
- `authorityScore`
- `healthScore`
- `profileClassification`
- `googleBusinessProfileUrl`
- `googleReviewsUrl`
- `fetchedAt`

The Actor also writes richer run-level outputs to the default key-value store:

- `OUTPUT` - full actor payload
- `SUMMARY` - condensed summary, opportunities, competitors, and keyword rank checks

Apify metadata files in `.actor/` also define:

- dataset schema for the default output table
- output schema for dataset and key-value store links
- key-value store collections for `SUMMARY` and `OUTPUT`

##### Example dataset item

```json
{
  "query": "dentist",
  "location": "Chicago, IL",
  "searchQuery": "dentist, Chicago, IL",
  "country": "us",
  "language": "en",
  "fetchedAt": "2026-04-15T12:00:00.000Z",
  "source": "google-local-results-html",
  "usedGoogleSerpProxy": true,
  "rank": 1,
  "organicRank": 1,
  "sponsored": false,
  "businessName": "Smile Dental",
  "category": "Dentist",
  "address": "123 N Michigan Ave, Chicago, IL 60601",
  "phone": "+1 312-555-0148",
  "website": "smiledentalchicago.com",
  "websiteUrl": "https://www.smiledentalchicago.com/",
  "rating": 4.7,
  "reviewCount": 186,
  "reviews": [
    {
      "snippet": "Friendly staff and same-day appointments.",
      "source": "google-local-card"
    }
  ],
  "openingHours": {
    "summary": "Open until 7 PM",
    "currentStatus": "Open now",
    "note": "Closes 7 PM",
    "weeklyHours": null
  },
  "coordinates": {
    "lat": 41.8837,
    "lng": -87.6233
  },
  "photos": [
    {
      "id": "photo-1",
      "url": "https://lh3.googleusercontent.com/p/example-photo",
      "source": "google-local-card"
    }
  ],
  "priceLevel": "$$",
  "serviceMentions": ["Emergency dentist", "Dental implants"],
  "googleBusinessProfileUrl": "https://www.google.com/maps/search/?api=1&query=Smile%20Dental%2C%20123%20N%20Michigan%20Ave%2C%20Chicago%2C%20IL%2060601%2C%20Chicago%2C%20IL",
  "googleReviewsUrl": "https://www.google.com/search?tbm=lcl&hl=en&gl=us&q=Smile%20Dental%20123%20N%20Michigan%20Ave%20Chicago%20IL%2060601%20Chicago%20IL%20reviews",
  "phoneUrl": "tel:+13125550148",
  "citationSources": [
    "https://www.yelp.com/biz/smile-dental-chicago",
    "https://www.healthgrades.com/dentist/dr-example"
  ],
  "relevanceScore": 60,
  "relevanceLabel": "Strong Match",
  "completenessScore": 85,
  "authorityScore": 81,
  "healthScore": 75,
  "healthLabel": "Strong",
  "profileClassification": "Leader"
}
````

##### Example `SUMMARY` record

```json
{
  "query": "dentist",
  "location": "Chicago, IL",
  "fetchedAt": "2026-04-15T12:00:00.000Z",
  "summaryMetrics": {
    "totalResults": 10,
    "averageRating": 4.5,
    "averageReviewCount": 92,
    "businessesWithWebsite": 8,
    "businessesWithPhone": 9,
    "openNowCount": 7,
    "exactMatchCount": 1,
    "businessesMissingWebsite": 2,
    "businessesMissingReviews": 1
  },
  "groupedInsights": {
    "topCategories": [
      { "category": "Dentist", "count": 7 },
      { "category": "Cosmetic Dentist", "count": 2 }
    ],
    "keywordMatchDistribution": {
      "Strong Match": 6,
      "Partial Match": 3,
      "Weak Match": 1
    },
    "averageCompletenessScore": 72,
    "averageAuthorityScore": 69,
    "openNowVsClosed": {
      "open": 7,
      "closed": 2
    }
  },
  "opportunities": [
    {
      "type": "Missing Website",
      "businessName": "City Dental Care",
      "description": "Has no linked website. Could easily be overtaken by a competitor with a strong localized landing page.",
      "impact": "High Impact",
      "rank": 3
    }
  ],
  "competitors": [
    {
      "businessName": "City Dental Care",
      "category": "Dentist",
      "organicRank": 2
    }
  ],
  "keywordGeoRankings": [
    {
      "keyword": "emergency dentist",
      "location": "Chicago, IL",
      "rank": 1,
      "found": true,
      "topResults": [
        { "rank": 1, "businessName": "Smile Dental", "category": "Dentist" },
        { "rank": 2, "businessName": "City Dental Care", "category": "Dentist" }
      ]
    }
  ]
}
```

#### Apify project structure

```text
.
├── .actor/
│   ├── actor.json
│   ├── INPUT_SCHEMA.json
│   ├── dataset_schema.json
│   ├── key_value_store_schema.json
│   └── output_schema.json
├── assets/
│   ├── apify-store-image.png
│   └── apify-store-image.svg
├── src/
│   ├── google_maps.js
│   ├── intelligence.js
│   └── main.js
├── Dockerfile
├── package.json
└── README.md
```

The `assets/` folder includes an editable SVG plus an upload-ready PNG for the Apify Store listing image.

#### Run on Apify

Open the Actor on Apify Store, fill in the input form, and start the run.

If you are scraping Google results on the Apify platform, keeping `useGoogleSerpProxy` enabled is recommended when your plan supports the `GOOGLE_SERP` proxy group.

#### Run locally

Install dependencies:

```bash
npm install
```

Start the actor:

```bash
npm start
```

For local runs with the Apify CLI:

```bash
apify run
```

#### Example input

```json
{
  "query": "dentist",
  "location": "Chicago, IL",
  "businessName": "Smile Dental",
  "keywords": ["emergency dentist", "family dentist"],
  "country": "us",
  "language": "en",
  "maxResults": 10,
  "includeBusinessEnrichment": true,
  "includeKeywordGeoRankings": true,
  "useGoogleSerpProxy": true
}
```

#### Recommended searches

- restaurant in london
- real estate agency in mississauga
- mobile phone repair in peshawar
- dentist near me
- car dealer in houston
- gym in dubai

#### Important limitations

This Actor is intended for **public Google Maps data**.

It does **not** provide private business-owner metrics such as:

- Google Business Profile views
- Calls from owner dashboard
- Website clicks from owner dashboard
- Direction requests from owner dashboard
- Private profile performance analytics

Public Google HTML structure can change over time, so selectors may require updates if Google changes the layout. Some enrichment fields are best-effort and may be empty depending on what is publicly visible.

#### FAQ

##### Do I need a Google Maps API key?

No. This Actor is built for public Google Maps result extraction and does not rely on a Google Maps API key.

##### Does it scrape private Google Business Profile analytics?

No. It only works with publicly visible listing data.

##### Can I use it for local SEO?

Yes. This Actor is built specifically for local SEO research, local competitor analysis, and local business discovery.

##### Can I export the results?

Yes. Results are stored in the default dataset and can be exported in multiple formats.

##### Why did Apify say `.actor/.actor/INPUT_SCHEMA.json` does not exist?

That happens when the `input` field inside `.actor/actor.json` points to `.actor/INPUT_SCHEMA.json`. The correct path from inside `.actor/actor.json` is `./INPUT_SCHEMA.json`.

#### Support

If you need custom features such as:

- keyword clustering
- review intelligence
- local rank tracking workflows
- competitor scoring
- white-label exports

contact the Actor maintainer through the Apify Store page.

# Actor input Schema

## `query` (type: `string`):

Enter the core keyword or business type to search in Google Maps, such as <code>dentist</code>, <code>plumber</code>, <code>coffee shop</code>, or <code>real estate agent</code>.

## `location` (type: `string`):

Add a city, state, region, or service area to localize the results. Example: <code>Chicago, IL</code>, <code>Toronto</code>, or <code>Dubai Marina</code>.

## `businessName` (type: `string`):

Optionally enter a business you want to benchmark. The Actor will try to match it against the scraped results and use it for competitor and ranking analysis.

## `keywords` (type: `array`):

Optional extra keywords for local rank checks. You can choose suggested examples or enter your own custom keywords.

## `country` (type: `string`):

Two-letter country code used for Google market targeting. You can select a common market or type your own custom code.

## `language` (type: `string`):

Language code used in the Google request. Keep <code>en</code> for most English-language searches, or switch to the local market language when needed.

## `maxResults` (type: `integer`):

How many Google Maps results to extract from the public results page. A value of <code>10</code> is a strong default for quick local SEO audits.

## `includeBusinessEnrichment` (type: `boolean`):

Turn on public-data enrichment for website, phone, citations, photo availability, and coordinate signals when available.

## `includeKeywordGeoRankings` (type: `boolean`):

Run additional Google Maps searches for the tracked keywords and check whether the target business appears in those local results.

## `useGoogleSerpProxy` (type: `boolean`):

Use the Apify <code>GOOGLE\_SERP</code> proxy group for Google requests when available, with direct-request fallback if unavailable. This is recommended for more stable Google scraping on Apify.

## Actor input object example

```json
{
  "query": "dentist",
  "location": "Chicago, IL",
  "businessName": "Smile Dental",
  "keywords": [
    "emergency dentist",
    "family dentist"
  ],
  "country": "us",
  "language": "en",
  "maxResults": 10,
  "includeBusinessEnrichment": true,
  "includeKeywordGeoRankings": true,
  "useGoogleSerpProxy": true
}
```

# Actor output Schema

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

One dataset item per scraped Google Maps business listing, including rank, contact data, ratings, and SEO scoring fields.

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

Condensed run summary with competitors, grouped insights, opportunities, keyword ranking checks, and category analysis.

## `fullOutput` (type: `string`):

Complete run payload, including dataset-style results and all derived intelligence objects.

# 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 = {
    "query": "dentist",
    "location": "Chicago, IL",
    "businessName": "Smile Dental",
    "keywords": [
        "emergency dentist",
        "family dentist"
    ],
    "country": "us",
    "language": "en",
    "maxResults": 10,
    "includeBusinessEnrichment": true,
    "includeKeywordGeoRankings": true,
    "useGoogleSerpProxy": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahabuddin38/google-maps-local-seo-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 = {
    "query": "dentist",
    "location": "Chicago, IL",
    "businessName": "Smile Dental",
    "keywords": [
        "emergency dentist",
        "family dentist",
    ],
    "country": "us",
    "language": "en",
    "maxResults": 10,
    "includeBusinessEnrichment": True,
    "includeKeywordGeoRankings": True,
    "useGoogleSerpProxy": True,
}

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

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

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

```

## CLI example

```bash
echo '{
  "query": "dentist",
  "location": "Chicago, IL",
  "businessName": "Smile Dental",
  "keywords": [
    "emergency dentist",
    "family dentist"
  ],
  "country": "us",
  "language": "en",
  "maxResults": 10,
  "includeBusinessEnrichment": true,
  "includeKeywordGeoRankings": true,
  "useGoogleSerpProxy": true
}' |
apify call shahabuddin38/google-maps-local-seo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahabuddin38/google-maps-local-seo-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Local SEO Scraper",
        "description": "Google Maps Local SEO Scraper helps agencies, marketers, and lead generation teams extract public Google Maps business data for local SEO, competitor analysis, and local lead discovery. It  turn Google Maps results into structured business intelligence you can export, filter, and market research.",
        "version": "0.4",
        "x-build-id": "6Zmr2mzPhQfaQXemq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahabuddin38~google-maps-local-seo-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahabuddin38-google-maps-local-seo-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/shahabuddin38~google-maps-local-seo-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahabuddin38-google-maps-local-seo-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/shahabuddin38~google-maps-local-seo-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahabuddin38-google-maps-local-seo-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Primary search query",
                        "minLength": 1,
                        "type": "string",
                        "description": "Enter the core keyword or business type to search in Google Maps, such as <code>dentist</code>, <code>plumber</code>, <code>coffee shop</code>, or <code>real estate agent</code>."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Add a city, state, region, or service area to localize the results. Example: <code>Chicago, IL</code>, <code>Toronto</code>, or <code>Dubai Marina</code>.",
                        "default": "Chicago, IL"
                    },
                    "businessName": {
                        "title": "Target business name",
                        "type": "string",
                        "description": "Optionally enter a business you want to benchmark. The Actor will try to match it against the scraped results and use it for competitor and ranking analysis."
                    },
                    "keywords": {
                        "title": "Tracked keywords",
                        "maxItems": 8,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Optional extra keywords for local rank checks. You can choose suggested examples or enter your own custom keywords.",
                        "items": {
                            "type": "string",
                            "enumSuggestedValues": [
                                "emergency dentist",
                                "family dentist",
                                "cosmetic dentist",
                                "dentist near me",
                                "best dentist"
                            ]
                        }
                    },
                    "country": {
                        "title": "Country code",
                        "pattern": "^[a-z]{2,5}$",
                        "minLength": 2,
                        "maxLength": 5,
                        "type": "string",
                        "description": "Two-letter country code used for Google market targeting. You can select a common market or type your own custom code.",
                        "default": "us"
                    },
                    "language": {
                        "title": "Language code",
                        "pattern": "^[a-z]{2,5}$",
                        "minLength": 2,
                        "maxLength": 5,
                        "type": "string",
                        "description": "Language code used in the Google request. Keep <code>en</code> for most English-language searches, or switch to the local market language when needed.",
                        "default": "en"
                    },
                    "maxResults": {
                        "title": "Maximum results",
                        "minimum": 3,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many Google Maps results to extract from the public results page. A value of <code>10</code> is a strong default for quick local SEO audits.",
                        "default": 10
                    },
                    "includeBusinessEnrichment": {
                        "title": "Include business enrichment",
                        "type": "boolean",
                        "description": "Turn on public-data enrichment for website, phone, citations, photo availability, and coordinate signals when available.",
                        "default": true
                    },
                    "includeKeywordGeoRankings": {
                        "title": "Include keyword geo rankings",
                        "type": "boolean",
                        "description": "Run additional Google Maps searches for the tracked keywords and check whether the target business appears in those local results.",
                        "default": true
                    },
                    "useGoogleSerpProxy": {
                        "title": "Use Apify Google SERP proxy",
                        "type": "boolean",
                        "description": "Use the Apify <code>GOOGLE_SERP</code> proxy group for Google requests when available, with direct-request fallback if unavailable. This is recommended for more stable Google scraping on Apify.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
