# Wholesalers Email List Scraper (`insightflow/wholesalers-email-list-scraper`) Actor

🏢 Wholesalers Email List Scraper — build a wholesaler email list from Google Maps. Every record carries address, phone, website, rating & review count, plus emails and socials. 📈 For retail buyers & B2B procurement outreach campaigns.

- **URL**: https://apify.com/insightflow/wholesalers-email-list-scraper.md
- **Developed by:** [InsightFlow](https://apify.com/insightflow) (community)
- **Categories:** Lead generation, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

### Wholesalers Email List Scraper

**Wholesalers Email List Scraper** is a practical email extraction tool for building targeted wholesaler contact lists from public web data. It helps marketers, sales teams, data analysts, and researchers find business contact details faster, turning manual prospecting into a scalable bulk email scraper and business email scraper for lead generation software workflows. 🚀

### What is Wholesalers Email List Scraper? 🔍

Wholesalers Email List Scraper is an Apify actor designed to help you collect public business contact details for wholesalers from publicly available sources. It works from your chosen search term and location to build a wholesaler database with useful contact data extraction results such as emails, phone numbers, websites, social media profiles, ratings, and addresses.

This wholesaler email scraper is built for teams that need faster B2B contact scraping without hours of manual research. Instead of collecting contacts one by one, the Wholesalers Email List Scraper helps you generate targeted email leads at scale. It is especially useful for marketers, recruiters, sales prospecting teams, and researchers who need a reliable prospect list builder for outreach and analysis. 📬

### What Data Does Wholesalers Email List Scraper Collect? 📊

The Wholesalers Email List Scraper collects business-level contact and location details, plus enrichment fields that help you qualify leads quickly. It is especially useful when you need a wholesaler contact list with names, websites, phones, and extracted contact signals for outreach planning.

| Data Category | Fields Extracted | Description |
|---|---|---|
| Contact | `scraped_emails`, `scraped_phones` | Public emails and phone numbers found from publicly available sources |
| Identity | `name` | Business name |
| Context | `website`, `scraped_social_media` | Website and social media links for each business |
| Discovery | `place_id` | Internal place identifier for the business record |
| Location | `full_address`, `city`, `state`, `zip`, `country_code`, `lat`, `long` | Address and location details |
| Performance | `avg_rating`, `total_reviews` | Rating and review count |
| Scraping stats | `emails_found`, `pages_scraped`, `scrape_status` | Run outcome and extraction progress |

### What Do Results from Wholesalers Email List Scraper Look Like? 👀

Each result is saved as a structured dataset item in Apify, making it easy to export and use in CRM systems, spreadsheets, or outreach tools. Here’s a realistic example of the dataset output:

```json
{
  "name": "Midwest Wholesale Supply",
  "website": "https://www.midwestwholesalesupply.com",
  "phone": "+1 312-555-0148",
  "full_address": "2148 W Lake St Chicago IL 60612 US",
  "city": "Chicago",
  "state": "IL",
  "zip": "60612",
  "country_code": "US",
  "scraped_emails": ["info@midwestwholesalesupply.com", "sales@midwestwholesalesupply.com"],
  "scraped_phones": ["+1 312-555-0148"],
  "scraped_social_media": ["https://www.linkedin.com/company/midwest-wholesale-supply"],
  "emails_found": 2,
  "pages_scraped": 5,
  "avg_rating": 4.6,
  "total_reviews": 128,
  "lat": "41.8853",
  "long": "-87.6541",
  "place_id": "ChIJj61dQgK6I4gRrYf3O5hE1oA",
  "scrape_status": "success"
}
```

#### Core Features: Wholesalers Email List Scraper ⚡

| Feature | Benefit |
|---|---|
| ✅ **Search Term Filtering** | Focus on the exact wholesaler niche you want to study or prospect |
| ✅ **Location Targeting** | Narrow results to specific cities or regions for better relevance |
| ✅ **Contact Data Extraction** | Collect emails, phone numbers, and social media links from public sources |
| ✅ **Business Enrichment** | Capture ratings, reviews, addresses, and website details in one run |
| ✅ **Result Limit Control** | Set a maximum number of businesses to keep runs focused and efficient |
| ✅ **Per-Location Option** | Collect a separate number of results for each location when needed |
| ✅ **Proxy Support** | Use built-in proxy settings for more reliable large-scale scraping |
| ✅ **Structured Dataset Output** | Get clean, labeled records ready for analysis or import |
| ✅ **Public Data Only** | Works with publicly available business information only |

### Getting Started with Wholesalers Email List Scraper 🚀

1. **Open the actor in Apify** — Go to the actor page and open the input configuration.
2. **Enter your search term** — Use a business type or niche, such as wholesaler-focused terms relevant to your campaign.
3. **Add one or more locations** — Provide the cities or regions you want to target.
4. **Set your result limit** — Choose how many businesses with emails you want to collect.
5. **Choose per-location behavior** — Decide whether the limit applies to each location or across all locations.
6. **Configure proxy settings** — Enable proxy support for more stable large-scale runs.
7. **Start the run** — Launch the actor and monitor progress in real time.
8. **Export your dataset** — Download results in JSON or CSV from the dataset tab. 📥

### Ways to Use Wholesalers Email List Scraper 💡

- 🎯 **B2B Lead Generation** — Build a wholesaler database for outreach and prospecting
- 📣 **Email Marketing** — Gather targeted email leads for campaigns and follow-ups
- 🔎 **Market Research** — Analyze wholesaler contact patterns by location or niche
- 🤝 **Sales Prospecting** — Create a clean wholesalers contact list for pipeline building
- 🧩 **CRM Enrichment** — Add websites, phones, addresses, and ratings to existing records
- ⚙️ **Data Workflows** — Feed scraped business contact data into reporting or automation tools

#### Input Parameters — Wholesalers Email List Scraper

```json
{
  "googleMapsSearchTerm": "Wholesalers",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | string | Yes | `Wholesalers` | The business type or niche you want to search for. |
| `googleMapsLocation` | array | Yes | `["New York"]` | One or more target locations for the search. |
| `maxBusinesses` | integer | No | `5` | Maximum number of businesses with emails to collect. The run stops when this number is reached. |
| `scrapeMaxBusinessesPerLocation` | boolean | No | `false` | If enabled, the actor collects up to the maximum number of results for each location. If disabled, it uses one total limit across all locations. |
| `proxyConfiguration` | object | No | `{ "proxy support": true }` | Proxy settings for the run. Recommended for large-scale scraping. |

#### Output Parameters — Wholesalers Email List Scraper

```json
{
  "name": "Midwest Wholesale Supply",
  "website": "https://www.midwestwholesalesupply.com",
  "phone": "+1 312-555-0148",
  "full_address": "2148 W Lake St Chicago IL 60612 US",
  "city": "Chicago",
  "state": "IL",
  "zip": "60612",
  "country_code": "US",
  "scraped_emails": ["info@midwestwholesalesupply.com", "sales@midwestwholesalesupply.com"],
  "scraped_phones": ["+1 312-555-0148"],
  "scraped_social_media": ["https://www.linkedin.com/company/midwest-wholesale-supply"],
  "emails_found": 2,
  "pages_scraped": 5,
  "avg_rating": 4.6,
  "total_reviews": 128,
  "lat": "41.8853",
  "long": "-87.6541",
  "place_id": "ChIJj61dQgK6I4gRrYf3O5hE1oA",
  "scrape_status": "success"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | Name of the business. |
| `website` | Website | link | Business website URL. |
| `phone` | Phone | text | Main phone number listed for the business. |
| `full_address` | Address | text | Full address compiled from the available location details. |
| `city` | City | text | City listed for the business. |
| `state` | State | text | State listed for the business. |
| `zip` | zip | text | ZIP or postal code. |
| `country_code` | country\_code | text | Country code for the business location. |
| `scraped_emails` | Emails Found | array | List of public email addresses found. |
| `scraped_phones` | Phone Numbers | array | List of phone numbers found from public sources. |
| `scraped_social_media` | Social Media | array | List of social media links found for the business. |
| `emails_found` | # Emails | number | Number of email addresses found for the business. |
| `pages_scraped` | Pages Scraped | number | Number of pages processed during contact extraction. |
| `avg_rating` | Rating | number | Average business rating. |
| `total_reviews` | Reviews | number | Total number of reviews. |
| `lat` | lat | text | Latitude value for the business location. |
| `long` | long | text | Longitude value for the business location. |
| `place_id` | place\_id | text | Business place identifier. |
| `scrape_status` | Status | text | Status of the scraping result, such as success or failure. |

### Why Choose Wholesalers Email List Scraper? 🏆

If you need a wholesaler email scraper that produces structured, usable data quickly, this actor is built for practical workflows. It supports targeted business search by location, gives you clean output, and is designed for scalable public web data collection. That makes it a strong choice for lead generation software, supplier email list building, and contact data extraction tasks where accuracy and speed both matter. Plus, proxy support helps improve reliability when running larger jobs. 💪

### How Many Results Can You Scrape? 📈

The number of results depends on your input settings and the number of public wholesaler businesses available in your selected locations. You can set `maxBusinesses` from 1 to 1000, and the actor stops when that target is reached. For broader wholesaler database building, use multiple locations or enable per-location collection to expand coverage.

### Legal Guidelines for Scraping Wholesalers ⚖️

This actor collects only publicly available data from public web sources. It does not require logins or access private content. Users are responsible for following applicable laws and regulations, including privacy and spam rules, as well as the terms of the websites they use the data from. Always use extracted business contact data for legitimate purposes. For data removal requests, contact <insightflowofficial@gmail.com>.

### FAQ — Wholesalers Email List Scraper ❓

#### How does Wholesalers Email List Scraper work?

The actor uses your search term and locations to find relevant public business listings, then extracts contact details and business metadata from publicly available sources. It is designed for practical B2B contact scraping without manual copy-pasting.

#### What kind of businesses can I find with this wholesaler email scraper?

You can use it with wholesaler-related search terms and any supported locations. It is useful when building a wholesalers contact list, a supplier email list, or other targeted email leads for outreach.

#### Does it collect only emails?

No. In addition to emails, it can also collect phone numbers, social media links, websites, ratings, reviews, and address details when they are publicly available.

#### Can I use it for lead generation software workflows?

Yes. The output is structured and easy to export, which makes it a good fit for lead generation software pipelines, CRM enrichment, and other contact data extraction tasks.

#### What if I need results for several cities?

You can add multiple locations in the input. If you enable per-location collection, the actor can gather up to your chosen maximum for each location.

#### Why are some businesses missing emails?

Not every business publishes an email address publicly. Result volume depends on what is available on the public web for the businesses in your target locations.

### Conclusion 🏁

**Wholesalers Email List Scraper** is a fast, practical way to build a wholesalers contact list from public web data. Whether you need a wholesaler database, B2B contact scraping, or targeted email leads for outreach, this actor helps you collect useful contact information at scale. 📬

### 🆘 Support & Feedback

Have a question or feature request for the Wholesalers Email List Scraper?

For help, feedback, or data removal requests, contact <insightflowofficial@gmail.com>.

### Contact Confidence & Provenance

The business already gets a lead score. Now the *contact* gets one too.

| Field | Meaning |
| --- | --- |
| `contactConfidence` | 0-100 for this specific contact |
| `contactConfidenceBand` | `high` (80+), `good` (60-79), `medium` (40-59), `low` (<40) |
| `contactReason` | `own_domain`, `own_domain_role_account`, `free_webmail`, `third_party_domain`, `no_reply_address`, `no_email` |
| `emailMatchesWebsite` | Whether the address is on the business's own domain |
| `contactChannels` | How many ways you can reach them (email, phone) |
| `contactCategory` | Broad industry tag read from the business name and search term |
| `scrapedAt` | UTC timestamp, so you know how fresh the row is |

An address on the company's own domain scores highest; a no-reply address scores
near zero because it is not a way to reach anyone. Finding a phone alongside the
email adds to the score - two channels beat one.

`contactCategory` is left blank rather than guessed when the wording is too
generic to place the business.

**Input:** *Minimum contact confidence* drops rows below a score; `0` keeps
everything.

# Actor input Schema

## `googleMapsSearchTerm` (type: `string`):

Enter the business type or niche for email scraper (e.g., 'coffee shops', 'dentists').

## `googleMapsLocation` (type: `array`):

Target geographic location for the email scraper (e.g., 'Miami, Florida').

## `maxBusinesses` (type: `integer`):

Target number of businesses to find (1-1000). The scraper will stop when this target is reached.

## `scrapeMaxBusinessesPerLocation` (type: `boolean`):

If enabled, the scraper will collect up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit.

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

Proxy settings for scraping. Recommended for large-scale scraping.

## `minBusinessLeadScore` (type: `integer`):

Drop any business whose Business Lead Score (0-100) falls below this. Leave at 0 for no filter.

## `minContactConfidence` (type: `integer`):

Drop any contact scoring below this (0-100). The score reflects whether the address sits on the business's own domain, whether it is a free webmail or no-reply address, and whether a phone number was found alongside it. Leave at 0 for no filter.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "Wholesalers",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "minBusinessLeadScore": 0,
  "minContactConfidence": 0
}
```

# Actor output Schema

## `dataset` (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 = {
    "googleMapsSearchTerm": "Wholesalers",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("insightflow/wholesalers-email-list-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 = {
    "googleMapsSearchTerm": "Wholesalers",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("insightflow/wholesalers-email-list-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 '{
  "googleMapsSearchTerm": "Wholesalers",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call insightflow/wholesalers-email-list-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insightflow/wholesalers-email-list-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/AQPdvyv0uWc2qRvnm/builds/UOCBsfnpN8kHhmlGJ/openapi.json
