# B2b Lead Scraper (`salahboussettah/b2b-lead-scraper`) Actor

Scrape B2B leads from Google Maps, Yellow Pages, and Yelp. Get emails, phones, websites, addresses, and ratings. Auto-deduplication and email enrichment. Great Apollo.io alternative.

- **URL**: https://apify.com/salahboussettah/b2b-lead-scraper.md
- **Developed by:** [Salah Eddine Boussettah](https://apify.com/salahboussettah) (community)
- **Categories:** Lead generation
- **Stats:** 9 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.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.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

## B2B Lead Scraper - Multi-Source Business Leads with Emails

Find business leads from multiple public sources in one run. Scrapes Google Maps, Yellow Pages, and Yelp, then enriches results with email addresses extracted directly from business websites. All results are deduplicated automatically.

### What data do you get?

| Field | Description |
|-------|-------------|
| Company Name | Full business name |
| Email | Extracted from the business website (homepage + contact page) |
| Phone | Business phone number |
| Website | Business website URL |
| Address | Full street address |
| City | City name |
| State | State or region |
| Category | Business category or industry |
| Rating | Star rating from the source |
| Reviews Count | Number of reviews |
| Source | Which platform the lead came from (google_maps, yellow_pages, yelp) |
| Latitude/Longitude | GPS coordinates (Google Maps only) |

### How to use

1. Enter the **industry or business type** (e.g., "marketing agencies", "dentists", "SaaS companies")
2. Enter the **location** (e.g., "New York", "London", "California")
3. Choose your **data sources** (Google Maps, Yellow Pages, Yelp)
4. Set the **max results** and click **Start**

### Input example

```json
{
    "industry": "marketing agencies",
    "location": "New York",
    "maxResults": 50,
    "sources": ["google_maps", "yellow_pages"],
    "extractEmails": true,
    "language": "en"
}
````

### Output example

```json
{
    "company_name": "Digital Agency NYC",
    "email": "hello@digitalagencynyc.com",
    "phone": "+1 212-555-0199",
    "website": "https://digitalagencynyc.com",
    "address": "350 5th Ave, New York, NY 10118",
    "city": "New York",
    "state": "NY",
    "category": "Marketing agency",
    "rating": 4.8,
    "reviews_count": 127,
    "source": "google_maps",
    "latitude": 40.7484,
    "longitude": -73.9857,
    "source_url": "https://www.google.com/maps/place/..."
}
```

### Why this scraper?

- **Multi-source**: Combines Google Maps + Yellow Pages + Yelp in one run
- **Deduplicated**: Same business listed on multiple sites? You get it once
- **Email enrichment**: Visits each business website to find real email addresses
- **Smart filtering**: Filters out junk emails (noreply, tracking pixels, generic addresses)

### Use cases

- **Lead generation**: Build targeted B2B contact lists with verified emails and phone numbers
- **Sales prospecting**: Find businesses in any niche and location for cold outreach
- **Market research**: Analyze competitors by category, rating, and review count
- **CRM enrichment**: Fill in missing contact data for existing leads
- **Agency prospecting**: Find potential clients by industry and location

### How email extraction works

The scraper visits each business's website and scans the homepage and common contact pages (/contact, /contact-us, /about) for email addresses. It filters out generic emails (noreply, mailer-daemon) and tracking pixels to give you real, usable business emails.

### Supported sources

- **Google Maps**: Best for local businesses, restaurants, services. Includes coordinates and detailed ratings.
- **Yellow Pages**: Great for US businesses, includes phone numbers and categories.
- **Yelp**: Good for restaurants, services, and local businesses with review data.

### Limitations

- Google Maps typically shows up to 120 results per search
- Yellow Pages is US-focused
- Yelp may require US/EU location for best results
- Email extraction depends on whether the business lists an email on their website
- Coordinates are only available from Google Maps source

# Actor input Schema

## `industry` (type: `string`):

Type of business to find (e.g., 'marketing agencies', 'dentists', 'law firms', 'restaurants', 'SaaS companies')

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

City, state, or country to search in (e.g., 'New York', 'London', 'California', 'United States')

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

Maximum number of leads to scrape (more results = longer runtime)

## `sources` (type: `array`):

Which public sources to scrape leads from

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

Visit each business website to extract email addresses (slower but more complete data)

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

Language code for results (e.g., 'en', 'fr', 'es')

## Actor input object example

```json
{
  "industry": "marketing agencies",
  "location": "New York",
  "maxResults": 50,
  "sources": [
    "google_maps",
    "yellow_pages"
  ],
  "extractEmails": true,
  "language": "en"
}
```

# Actor output Schema

## `leads` (type: `string`):

List of B2B leads with company details, emails, phones, and addresses

# 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 = {
    "industry": "marketing agencies",
    "location": "New York",
    "sources": [
        "google_maps",
        "yellow_pages"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("salahboussettah/b2b-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 = {
    "industry": "marketing agencies",
    "location": "New York",
    "sources": [
        "google_maps",
        "yellow_pages",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("salahboussettah/b2b-lead-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 '{
  "industry": "marketing agencies",
  "location": "New York",
  "sources": [
    "google_maps",
    "yellow_pages"
  ]
}' |
apify call salahboussettah/b2b-lead-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "B2b Lead Scraper",
        "description": "Scrape B2B leads from Google Maps, Yellow Pages, and Yelp. Get emails, phones, websites, addresses, and ratings. Auto-deduplication and email enrichment. Great Apollo.io alternative.",
        "version": "0.1",
        "x-build-id": "Anb9x4FJMf8sT9hHh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/salahboussettah~b2b-lead-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-salahboussettah-b2b-lead-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/salahboussettah~b2b-lead-scraper/runs": {
            "post": {
                "operationId": "runs-sync-salahboussettah-b2b-lead-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/salahboussettah~b2b-lead-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-salahboussettah-b2b-lead-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": [
                    "industry",
                    "location"
                ],
                "properties": {
                    "industry": {
                        "title": "Industry / Business Type",
                        "type": "string",
                        "description": "Type of business to find (e.g., 'marketing agencies', 'dentists', 'law firms', 'restaurants', 'SaaS companies')"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, state, or country to search in (e.g., 'New York', 'London', 'California', 'United States')"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of leads to scrape (more results = longer runtime)",
                        "default": 50
                    },
                    "sources": {
                        "title": "Data Sources",
                        "type": "array",
                        "description": "Which public sources to scrape leads from",
                        "items": {
                            "type": "string",
                            "enum": [
                                "google_maps",
                                "yellow_pages",
                                "yelp"
                            ]
                        },
                        "default": [
                            "google_maps",
                            "yellow_pages"
                        ]
                    },
                    "extractEmails": {
                        "title": "Extract Emails from Websites",
                        "type": "boolean",
                        "description": "Visit each business website to extract email addresses (slower but more complete data)",
                        "default": true
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Language code for results (e.g., 'en', 'fr', 'es')",
                        "default": "en"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
