# Business Contact Finder & Lead Cleaner (`faithful_schlumbergera/business-contact-finder-lead-cleaner`) Actor

Find public business emails, phone numbers, contact pages, and social links from company websites. Remove duplicates and export clean lead lists to CSV. No external API key required.

- **URL**: https://apify.com/faithful_schlumbergera/business-contact-finder-lead-cleaner.md
- **Developed by:** [代美 小澤](https://apify.com/faithful_schlumbergera) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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

## Business Contact Finder & Lead Cleaner

**Find public business contact details from company websites and export clean lead lists to CSV. No external API key required.**

### What does this Actor do?

Business Contact Finder & Lead Cleaner helps sales teams, researchers, and business owners collect publicly available company contact information.

Enter company website URLs, run the Actor, and download organized results.

### Features

- Find publicly listed business email addresses
- Detect phone numbers from accessible contact pages
- Find company contact and about pages
- Collect LinkedIn, Facebook, Instagram, X, and YouTube links
- Remove duplicate website entries
- Record source pages for verification
- Export results to CSV
- Report websites where contact information was not found
- No paid external data API required

### How to use

1. Enter up to 10 company website URLs, one per line.
2. Choose how many pages to scan per website.
3. Enable or disable social link collection.
4. Click **Start**.
5. Download your results from the run's Storage section.

#### Example input

```json
{
  "websiteUrls": "https://apify.com",
  "maxPagesPerSite": 4,
  "includeSocialLinks": true
}
```

### Output files

**LEADS.csv** contains the collected business contact information.

**REPORT.md** summarizes the scan.

**OUTPUT** provides execution statistics.

The dataset also includes structured records for each website.

### CSV fields

| Field | Description |
|---|---|
| website | Company website URL |
| company_name | Detected company name |
| emails | Publicly detected email addresses |
| phone_numbers | Detected phone numbers |
| contact_page | Relevant contact page URL |
| social_links | Public social profile links |
| source_pages | Pages checked |
| pages_scanned | Number of pages scanned |
| status | Scan result |
| note | Additional information or limitations |

### Important information

This Actor scans publicly accessible HTML pages and respects robots.txt restrictions. It does not bypass logins, CAPTCHAs, or access restrictions.

Some websites may block automated requests or load contact details dynamically. Results are not guaranteed to be complete or error-free. Verify contact details before business use.

Missing contact information is left blank rather than invented.

No external paid data API or API key is needed. Apify platform usage charges may still apply.

### Ideal for

- B2B lead research
- Company contact list building
- Public business directory research
- Sales prospect preparation
- Market research and business data organization

# Actor input Schema

## `websiteUrls` (type: `string`):

Paste each company's official website on its own line. For example: https://example.com

## `maxPagesPerSite` (type: `integer`):

Scan up to this many accessible HTML pages per company. Lower values save time and cost.

## `includeSocialLinks` (type: `boolean`):

Collect social links found on the scanned pages without visiting the social platforms.

## Actor input object example

```json
{
  "websiteUrls": "https://example.com",
  "maxPagesPerSite": 4,
  "includeSocialLinks": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `report` (type: `string`):

No description

## `summary` (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 = {
    "websiteUrls": "https://example.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("faithful_schlumbergera/business-contact-finder-lead-cleaner").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 = { "websiteUrls": "https://example.com" }

# Run the Actor and wait for it to finish
run = client.actor("faithful_schlumbergera/business-contact-finder-lead-cleaner").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 '{
  "websiteUrls": "https://example.com"
}' |
apify call faithful_schlumbergera/business-contact-finder-lead-cleaner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,faithful_schlumbergera/business-contact-finder-lead-cleaner"
        }
    }
}
```

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/PN7ing7arDExszPDm/builds/jA5UfCKNYt08tHfyU/openapi.json
