# Google Maps Low Rating Leads | 💵$5/1K (`webdata_labs/google-maps-reputation-leads-scraper`) Actor

\[💵 $5.00 / 1K] Find Google Maps businesses below your rating threshold, with phones, websites, and a contactability-aware lead score. Built for reputation-management and local SEO agencies that need filtered outreach leads, not a raw Maps dump.

- **URL**: https://apify.com/webdata\_labs/google-maps-reputation-leads-scraper.md
- **Developed by:** [WebData Labs](https://apify.com/webdata_labs) (community)
- **Categories:** Lead generation, SEO tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 low-rating leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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

## Google Maps Low Rating Leads

**Find local businesses below your Google rating threshold - scored and ready for outreach.** This Actor is for reputation-management and local SEO agencies that need qualified prospects, not a raw Google Maps export.

### ✅ What you get / ❌ what this isn't

| You get | This is not |
|---|---|
| Only businesses at or below your rating threshold | Not a generic Maps dump |
| Phone, website, address, category, rating, and Maps URL | Not a review-text scraper |
| A contactability-aware lead score and reasons | Not a claim about review volume |
| Per-query diagnostics in the run `OUTPUT` record | Not affiliated with Google |

### 🔎 Why use this Actor

Raw Maps results make you filter hundreds of businesses that do not have a visible reputation problem. This Actor applies the filter before delivery, so the dataset contains the prospects a reputation-management agency can actually contact.

### 👥 Who it's for

- Reputation-management and review-recovery agencies.
- Local SEO consultants.
- Sales teams prospecting local businesses by category and city.
- Automation builders sending filtered leads to a CRM or spreadsheet.

### ⚙️ How it works

1. Enter searches such as `property management companies in Dallas, TX`.
2. Choose the maximum rating, for example `4.0`.
3. The Actor reads Google's structured Maps search feed through rotating proxies.
4. It emits only matching businesses, plus a per-query summary.

### 📥 Input

```json
{
  "searchQueries": ["property management companies in Dallas, TX"],
  "leadFilter": "low_rating",
  "maxRating": 4.0,
  "maxLeadsPerQuery": 50,
  "countryCode": "us",
  "language": "en"
}
```

Use one category and city per query for the clearest results. Set `leadFilter` to `all` only for diagnostics.

### 📤 Output

```json
{
  "recordType": "reputation_lead",
  "name": "Example Property Management",
  "category": "Property management company",
  "rating": 3.8,
  "phone": "+1 214-555-0123",
  "websiteUrl": "https://example.com",
  "leadScore": 60,
  "leadReasons": ["below-threshold rating (3.8)", "phone number available"],
  "googleMapsUrl": "https://maps.google.com/?cid=...",
  "searchQuery": "property management companies in Dallas, TX"
}
```

### 💵 Pricing

The intended price is **$5 per 1,000 matching leads**, with lower per-result prices on higher Apify plans. You pay for delivered matching rows, not every business scanned.

### 🔁 Automation ideas

- Schedule weekly city/category searches and send datasets to a CRM.
- Run one query per territory for local sales teams.
- Chain results into Website Contact Extractor for email enrichment.
- Deduplicate repeated territories with Lead List Deduplicator.

### ⚠️ Limits

- Google does not return low-rating businesses for every category or city; an empty lead set can be a valid result.
- This version filters on the star rating. It does not claim or filter by review count because the stable bulk endpoint does not expose that field consistently.
- Google may rate-limit individual proxy IPs. The Actor rotates sessions and retries retryable responses.
- Results reflect what Google shows for the requested country and language at run time.

### 🧩 Related Actors

- Google Maps No-Website Leads Scraper - prospects that need a website.
- Website Contact Extractor - emails, phones, and social profiles from business sites.
- Lead List Deduplicator - merge and clean prospect lists before CRM import.

### ❓ FAQ

#### Why is the result count lower than a normal Maps scraper?

Because this Actor charges and returns only businesses that pass your rating threshold.

#### Can I return all businesses?

Yes. Set `leadFilter` to `all` for diagnostics, but the product is designed around filtered low-rating leads.

#### Does it need a proxy?

Yes. Keep the default Apify residential proxy setting for reliable cloud runs.

### 🛠️ Support

Open an Actor issue with the run URL, search query, country code, and expected behavior. Do not include credentials or private lead data.

# Actor input Schema

## `searchQueries` (type: `array`):

Google Maps searches to mine for reputation leads, e.g. "dentists in Phoenix, AZ" or "roofers in Dallas, TX". One category + city per line works best.

## `maxLeadsPerQuery` (type: `integer`):

Stop after this many matching leads per search query. You are only charged for leads that match the selected reputation filter. 0 = no limit.

## `leadFilter` (type: `string`):

Return only businesses at or below the rating threshold, or return all businesses with scoring for diagnostics.

## `maxRating` (type: `number`):

Businesses at or below this rating count as low-rating leads.

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

Two-letter country code used for Google localization (gl parameter), e.g. "us", "gb", "de".

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

Interface language for Google results (hl parameter).

## `minHitRate` (type: `number`):

Stop mining a search early if fewer than this fraction of scanned businesses match the filter after warm-up. This keeps cost-per-lead bounded. Set to 0 to disable.

## `proxyConfiguration` (type: `object`):

Proxy to use for Google Maps XHR requests. Keep the default residential pool unless you know what you are doing.

## `debugDumpHtml` (type: `boolean`):

Developer option - stores raw Google result pages in the key-value store for debugging.

## Actor input object example

```json
{
  "searchQueries": [
    "property management companies in Dallas, TX"
  ],
  "maxLeadsPerQuery": 10,
  "leadFilter": "low_rating",
  "maxRating": 4,
  "countryCode": "us",
  "language": "en",
  "minHitRate": 0.08,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "debugDumpHtml": false
}
```

# Actor output Schema

## `OUTPUT` (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 = {
    "searchQueries": [
        "property management companies in Dallas, TX"
    ],
    "maxLeadsPerQuery": 10,
    "leadFilter": "low_rating",
    "maxRating": 4,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdata_labs/google-maps-reputation-leads-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 = {
    "searchQueries": ["property management companies in Dallas, TX"],
    "maxLeadsPerQuery": 10,
    "leadFilter": "low_rating",
    "maxRating": 4,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("webdata_labs/google-maps-reputation-leads-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 '{
  "searchQueries": [
    "property management companies in Dallas, TX"
  ],
  "maxLeadsPerQuery": 10,
  "leadFilter": "low_rating",
  "maxRating": 4,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call webdata_labs/google-maps-reputation-leads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/fSfK1chSHgpUNWzm0/builds/ytsMNzikaM2bTGnyt/openapi.json
