# MapLeads Pro — B2B Lead Extractor from Google Maps (`victorl90/mapleads-pro`) Actor

Extract B2B leads from any industry and city worldwide via Google Maps: phone, website, email, address, category, price, opening hours and coordinates. Clean, deduplicated data filtered by rating — ready for outreach.

- **URL**: https://apify.com/victorl90/mapleads-pro.md
- **Developed by:** [Víctor López](https://apify.com/victorl90) (community)
- **Categories:** Lead generation, E-commerce
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

🚀 MapLeads Pro — B2B Lead Extractor from Google Maps (any industry, any city)

Extract structured local business data from Google Maps automatically: name, phone, website, rating and more — ready for sales outreach or market research.

✨ Why choose MapLeads Pro?

Clean structure: data arrives organized in columns, with no redirect links or extra text.

Real contact data: visits each individual business listing to extract phone number and official website, not just the name.

Email included, no extra add-on required: unlike other scrapers on the market, email is extracted directly from the business website within the base price.

No duplicates: automatically detects and discards repeated businesses, even when combining search results with direct URLs.

Fully customizable: activate only the data you need with optional add-ons.

Works in any country: interface forced to English internally for consistent behavior regardless of local search language.

Easy to use: no coding required. Fill in the form, hit "Run" and download your ready-to-use database.

📊 Data included by default

🏢 Business name
📞 Phone number
🔗 Website
⭐ Rating
💬 Review count
🏙️ City searched

🧩 Optional add-ons (toggle in the input form)

📍 Extract physical address
🏷️ Extract category and price level (e.g. "Italian restaurant", €20–30)
🕒 Extract opening hours
🌐 Extract coordinates (latitude/longitude)
✉️ Extract email from the business website
✅ Only businesses with a website
🌍 Additional locations — search the same term in several cities at once
🔗 Direct Google Maps URLs — paste one or more direct business URLs to extract them straight away, skipping the search step. The rating filter doesn't apply to these, since you've already chosen the business yourself.

📦 Sample result (JSON)

With all add-ons enabled, each dataset row looks like this:

```json
{
    "nombre": "Prado de Flores Restaurant",
    "telefono": "+34 933 21 50 93",
    "web": "https://pradodeflores.es/",
    "rating": 4.8,
    "numResenas": 13260,
    "ciudad": "Barcelona",
    "direccion": "Carrer de Santa Anna, 11, Ciutat Vella, 08002 Barcelona, Spain",
    "categoria": "Mediterranean restaurant",
    "nivelPrecio": "€20–30",
    "horario": "Closes soon · 12 AM · Opens 9 AM Tue",
    "latitud": "41.3851526",
    "longitud": "2.1711624",
    "email": "reservas@pradodeflores.com"
}
````

If an add-on isn't enabled, its field simply won't appear in the result — no empty columns or confusing blanks.

🛠 How to use it

Search term: enter the industry you're looking for (e.g. "Restaurants", "Hotels", "Gyms").

Location: enter the main city or neighborhood.

Additional locations (optional): add more cities to extract several at once.

Direct URLs (optional): paste specific Google Maps business URLs if you already know which ones you want.

Maximum results: define how many businesses to extract per city.

Minimum rating: filter by the minimum score businesses must have (default 4.0).

Enable the add-ons you need and run.

⏱️ About run times

Time depends on how many add-ons are enabled and how many results you request:

- Basic data only: ~10-15 seconds per business.
- With email add-on enabled: ~25-35 seconds per business.
- Large extractions (50+ results) with several add-ons active can take 20-30 minutes — that's expected, let the Actor finish.

💡 Ideal use cases

Marketing agencies: prospect local businesses with direct contact email included.

Market research: analyze pricing, categories and ratings of competitors in any area.

Lead generation: build complete contact lists for your own or third-party sales campaigns.

⚠️ Note: this Actor extracts publicly available information from Google Maps listings and business websites. Use of the resulting data is the user's responsibility. Some fields (email, price, opening hours) depend on whether the business has made that information public.

# Actor input Schema

## `search` (type: `string`):

E.g. Restaurants, Hotels, Cafes

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

City or neighborhood, e.g. Barcelona

## `ubicacionesAdicionales` (type: `array`):

Add more cities to search the same term in all of them at once. Increases run time proportionally.

## `urlsDirectas` (type: `array`):

Paste one or more direct Google Maps business URLs to extract them directly, skipping search. Rating filter does not apply to these.

## `maxResultados` (type: `integer`):

How many businesses to open per city searched. A low value (10) keeps test runs fast; you can raise it up to 100.

## `minRating` (type: `number`):

Only extract businesses with this rating or higher

## `extraerDireccion` (type: `boolean`):

Adds the business's address to the result

## `soloConWeb` (type: `boolean`):

Discards businesses without a website

## `extraerCategoriaYPrecio` (type: `boolean`):

Adds the business type and price range (€) if available

## `extraerHorario` (type: `boolean`):

Adds the business's opening hours, if available

## `extraerCoordenadas` (type: `boolean`):

Adds the exact latitude and longitude of the business

## `extraerEmail` (type: `boolean`):

Visits the business website and looks for a public email address. Increases run time per business.

## Actor input object example

```json
{
  "search": "Restaurants",
  "location": "Barcelona",
  "maxResultados": 10,
  "minRating": 4,
  "extraerDireccion": false,
  "soloConWeb": false,
  "extraerCategoriaYPrecio": false,
  "extraerHorario": false,
  "extraerCoordenadas": false,
  "extraerEmail": false
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("victorl90/mapleads-pro").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("victorl90/mapleads-pro").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 '{}' |
apify call victorl90/mapleads-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=victorl90/mapleads-pro",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MapLeads Pro — B2B Lead Extractor from Google Maps",
        "description": "Extract B2B leads from any industry and city worldwide via Google Maps: phone, website, email, address, category, price, opening hours and coordinates. Clean, deduplicated data filtered by rating — ready for outreach.",
        "version": "0.0",
        "x-build-id": "uLQACSw5BaujatiRQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/victorl90~mapleads-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-victorl90-mapleads-pro",
                "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/victorl90~mapleads-pro/runs": {
            "post": {
                "operationId": "runs-sync-victorl90-mapleads-pro",
                "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/victorl90~mapleads-pro/run-sync": {
            "post": {
                "operationId": "run-sync-victorl90-mapleads-pro",
                "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": [
                    "search",
                    "location"
                ],
                "properties": {
                    "search": {
                        "title": "Search term",
                        "type": "string",
                        "description": "E.g. Restaurants, Hotels, Cafes",
                        "default": "Restaurants"
                    },
                    "location": {
                        "title": "Main location",
                        "type": "string",
                        "description": "City or neighborhood, e.g. Barcelona",
                        "default": "Barcelona"
                    },
                    "ubicacionesAdicionales": {
                        "title": "Additional locations (optional)",
                        "type": "array",
                        "description": "Add more cities to search the same term in all of them at once. Increases run time proportionally.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urlsDirectas": {
                        "title": "Direct Google Maps URLs (optional)",
                        "type": "array",
                        "description": "Paste one or more direct Google Maps business URLs to extract them directly, skipping search. Rating filter does not apply to these.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultados": {
                        "title": "Maximum results to extract (per location)",
                        "minimum": 3,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many businesses to open per city searched. A low value (10) keeps test runs fast; you can raise it up to 100.",
                        "default": 10
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only extract businesses with this rating or higher",
                        "default": 4
                    },
                    "extraerDireccion": {
                        "title": "Extract physical address",
                        "type": "boolean",
                        "description": "Adds the business's address to the result",
                        "default": false
                    },
                    "soloConWeb": {
                        "title": "Only businesses with a website",
                        "type": "boolean",
                        "description": "Discards businesses without a website",
                        "default": false
                    },
                    "extraerCategoriaYPrecio": {
                        "title": "Extract category and price level",
                        "type": "boolean",
                        "description": "Adds the business type and price range (€) if available",
                        "default": false
                    },
                    "extraerHorario": {
                        "title": "Extract opening hours",
                        "type": "boolean",
                        "description": "Adds the business's opening hours, if available",
                        "default": false
                    },
                    "extraerCoordenadas": {
                        "title": "Extract coordinates (latitude/longitude)",
                        "type": "boolean",
                        "description": "Adds the exact latitude and longitude of the business",
                        "default": false
                    },
                    "extraerEmail": {
                        "title": "Extract email from the business website",
                        "type": "boolean",
                        "description": "Visits the business website and looks for a public email address. Increases run time per business.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
