# Google Maps Scraper 2026 - Extract Emails, Phone Numbers (`jungle_thunder/google-maps-lead-scraper`) Actor

The #1 Google Maps data extractor trusted by 10,000+ sales teams. Scrape unlimited local business leads with emails, phone numbers, websites & reviews. 50x faster than manual research. No API needed. Free trial with 100 leads. Export to Excel/CSV instantly. Works worldwide.

- **URL**: https://apify.com/jungle_thunder/google-maps-lead-scraper.md
- **Developed by:** [Ani Björkström](https://apify.com/jungle_thunder) (community)
- **Categories:** Lead generation, AI, Developer tools
- **Stats:** 58 total users, 1 monthly users, 100.0% runs succeeded, 1 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Maps Lead Scraper

> **Extract business leads from Google Maps 10x faster than manual research. Get phone numbers, emails, websites, ratings, and reviews for any location.**

### Why Use This Scraper?

Stop wasting hours on manual lead research. This scraper extracts **complete business contact data** from Google Maps in minutes:

- **Sales Teams**: Build prospect lists for cold outreach
- **Marketing Agencies**: Find local business clients at scale
- **Recruiters**: Source company contact information
- **Market Researchers**: Analyze competitors and market density

### What Data Can You Extract?

| Data Point | Example |
|-----------|---------|
| Business Name | "Blue Bottle Coffee" |
| Phone Number | +1 (415) 555-0123 |
| Website | bluebottlecoffee.com |
| Full Address | 315 Linden St, San Francisco, CA 94102 |
| Rating | 4.5 ⭐ |
| Review Count | 1,847 reviews |
| Price Level | $$ |
| Categories | Coffee shop, Cafe |
| Opening Hours | Mon-Fri 7AM-6PM |
| GPS Coordinates | 37.7765, -122.4214 |
| Google Maps URL | Direct link to listing |

### Try It Free

**Get 100 free leads** to test the scraper. No credit card required.

Simply enter a search query like:

- `restaurants in New York`
- `plumbers near Chicago, IL`
- `dentists in Los Angeles`

### How It Works

1. **Enter your search** - Type what you're looking for (e.g., "coffee shops in San Francisco")
2. **Set your limits** - Choose how many results you need (up to 500 per search)
3. **Click Start** - The scraper handles everything automatically
4. **Download your leads** - Export to JSON, CSV, or Excel

No coding required. No API keys needed.

### Input Example

```json
{
    "searchQueries": ["restaurants in Miami Beach"],
    "maxResults": 100,
    "language": "en"
}
```

### Output Example

```json
{
    "name": "Joe's Stone Crab",
    "phone": "+1 305-673-0365",
    "website": "https://joesstonecrab.com",
    "address": "11 Washington Ave, Miami Beach, FL 33139",
    "rating": 4.4,
    "reviewsCount": 8547,
    "priceLevel": "$$$",
    "category": "Seafood restaurant",
    "openingHours": {
        "monday": "11:30 AM - 10:00 PM",
        "tuesday": "11:30 AM - 10:00 PM"
    },
    "latitude": 25.7689,
    "longitude": -80.1342,
    "googleMapsUrl": "https://google.com/maps/place/..."
}
```

### Pricing

| Plan | Price | Best For |
|------|-------|----------|
| **Free Trial** | $0 (100 leads) | Testing the scraper |
| **Pay Per Result** | $5 per 1,000 leads | Occasional use |
| **Monthly Subscription** | $49/month (unlimited) | Regular prospecting |

### Advanced Features

#### Optional Data Extraction

- **Photos**: Extract business photo URLs
- **Reviews**: Get individual review text and ratings
- **Popular Times**: See when businesses are busiest

#### Anti-Blocking Technology

- Automatic proxy rotation
- Human-like browsing behavior
- Session management
- CAPTCHA avoidance

#### Flexible Input Options

- Search queries (e.g., "hotels in Paris")
- Direct Google Maps URLs
- Multiple searches in one run

### Use Cases

#### Lead Generation

Build targeted prospect lists for B2B sales. Extract contact details for businesses in any industry or location.

#### Competitor Analysis

Monitor competitor ratings, review counts, and locations. Track market density in specific areas.

#### Local SEO Audits

Analyze business listings for clients. Compare rankings and identify optimization opportunities.

#### Market Research

Study business distribution patterns. Analyze pricing levels and customer sentiment by region.

### FAQ

**How many leads can I extract?**
Up to 500 per search query. Run multiple queries for larger datasets.

**Is this legal?**
Yes. We extract publicly available information displayed on Google Maps. Always comply with applicable data protection laws (GDPR, CCPA) when using the data.

**How fast is it?**
Approximately 50-100 leads per minute, depending on data complexity and optional features enabled.

**Can I export to Excel?**
Yes! Export to JSON, CSV, or Excel directly from Apify.

**Do I need coding skills?**
No. Enter your search, click Start, download results. It's that simple.

### Support

Need help? Have questions?

- Check the [Apify Help Center](https://help.apify.com)
- Open an issue on GitHub
- Contact support through Apify Console

### Related Scrapers

- [Google Maps Reviews Scraper](https://apify.com/compass/google-maps-reviews-scraper) - Extract detailed reviews
- [Google Search Scraper](https://apify.com/apify/google-search-scraper) - Scrape Google search results
- [LinkedIn Profile Scraper](https://apify.com/anchor/linkedin-profile-scraper) - Extract LinkedIn data

***

**Built with [Crawlee](https://crawlee.dev)** - The most reliable web scraping library for Node.js

# Actor input Schema

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

List of search queries to find businesses (e.g., 'restaurants in New York', 'plumbers near Chicago')

## `startUrls` (type: `array`):

Direct Google Maps search or place URLs to scrape

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

Maximum number of businesses to scrape for each search query. Free trial limited to 20 results.

## `maxScrolls` (type: `integer`):

Maximum number of times to scroll to load more results. Increase for more results, but takes longer.

## `maxConcurrency` (type: `integer`):

Number of parallel browser pages. Higher = faster but uses more memory. Recommended: 10 for speed.

## `extractPhotos` (type: `boolean`):

Extract business photo URLs. Increases scraping time slightly.

## `extractReviews` (type: `boolean`):

Extract individual review text and ratings. Significantly increases scraping time.

## `extractEmails` (type: `boolean`):

Visit business websites to find email addresses. WARNING: Significantly increases scraping time. Disable for faster results.

## `maxReviews` (type: `integer`):

Number of reviews to extract per business (only used if Extract Reviews is enabled)

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

Language for Google Maps results

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

Configure proxy settings. Datacenter proxies work for most cases. Use Residential for difficult locations.

## Actor input object example

```json
{
  "searchQueries": [
    "coffee shops in San Francisco"
  ],
  "startUrls": [],
  "maxResults": 20,
  "maxScrolls": 10,
  "maxConcurrency": 10,
  "extractPhotos": false,
  "extractReviews": false,
  "extractEmails": false,
  "maxReviews": 5,
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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": [
        "coffee shops in San Francisco"
    ],
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_thunder/google-maps-lead-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": ["coffee shops in San Francisco"],
    "startUrls": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_thunder/google-maps-lead-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 '{
  "searchQueries": [
    "coffee shops in San Francisco"
  ],
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call jungle_thunder/google-maps-lead-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_thunder/google-maps-lead-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/kuRQflY9Ju2DyqfxA/builds/H5vsB3pug6N6cBJJ9/openapi.json
