# Company Website Lead Enricher (`peroxo/company-website-lead-enricher`) Actor

Extract public company names, contact details, legal identifiers, and social links from company websites.

- **URL**: https://apify.com/peroxo/company-website-lead-enricher.md
- **Developed by:** [Michael Beetz](https://apify.com/peroxo) (community)
- **Categories:** Business, Marketing, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00 / 1,000 enriched domains

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

## Company Website Lead Enricher

Extract public B2B lead details from company websites and domains. Provide a list of websites and the Actor returns structured company identity, contact, legal, social, and evidence fields that can be exported as JSON or CSV.

### What it does

For each website, the Actor fetches the homepage and prioritizes likely company information pages such as contact, about, imprint/impressum, legal, privacy, and support pages. It then extracts best-effort structured fields:

- Company or site name
- Legal company name when available
- Public email addresses
- Public phone numbers
- Postal address from structured data or legal pages
- Social profile links: LinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok, GitHub
- VAT / tax IDs and registration numbers when visible
- Source pages used as evidence
- Optional evidence snippets for found contact/legal fields
- Confidence score and warnings

### Common use cases

- Enrich a CRM list from known domains
- Build a lightweight B2B prospecting dataset
- Collect public contact channels for partner, sales, or recruiting research
- Audit whether websites expose clear contact and legal information
- Convert a spreadsheet of company domains into structured JSON/CSV

### Input

```json
{
  "websites": [
    "https://www.apify.com",
    "example.com"
  ],
  "maxPagesPerWebsite": 6,
  "includePageTextSnippets": true,
  "requestTimeoutSecs": 20,
  "maxWebsites": 100
}
````

#### Input fields

| Field | Type | Description |
| --- | --- | --- |
| `websites` | array of strings | Company homepages or bare domains to enrich. |
| `maxPagesPerWebsite` | integer | Maximum pages to fetch per website. Higher values can find more contact/legal pages but take longer. |
| `includePageTextSnippets` | boolean | Include short snippets showing where contact/legal values were found. |
| `requestTimeoutSecs` | integer | HTTP timeout for each fetched page. |
| `maxWebsites` | integer | Safety limit for large input lists. |

### Output

Each dataset item represents one input website:

```json
{
  "input": "https://www.apify.com",
  "canonicalUrl": "https://apify.com/",
  "domain": "apify.com",
  "companyName": "Apify",
  "legalName": null,
  "emails": ["hello@apify.com"],
  "phones": [],
  "address": null,
  "socialLinks": {
    "linkedin": ["https://www.linkedin.com/company/apify"]
  },
  "vatIds": [],
  "registrationNumbers": [],
  "sourcePages": ["https://apify.com/"],
  "confidence": 0.66,
  "warnings": []
}
```

#### Output fields

| Field | Description |
| --- | --- |
| `input` | Original website/domain from the input. |
| `canonicalUrl` | Final fetched homepage URL after normalization and redirects. |
| `domain` | Registered domain. |
| `companyName` | Best-effort public company or site name. |
| `legalName` | Legal company name found in structured data or legal/imprint pages. |
| `emails` | Public email addresses found on fetched pages. |
| `phones` | Public phone numbers found on fetched pages. |
| `address` | Best-effort postal address object or raw address string. |
| `socialLinks` | Public social/profile links grouped by platform. |
| `vatIds` | VAT/tax identifiers found on legal pages. |
| `registrationNumbers` | Company registration numbers found on legal pages. |
| `sourcePages` | URLs fetched and used for extraction. |
| `evidence` | Optional snippets showing where values were found. |
| `confidence` | 0-1 score based on how many useful signals were extracted. |
| `warnings` | Fetch/parsing warnings, if any. |

### Data and compliance notes

This Actor extracts only publicly available information from websites you provide. It does not bypass logins, paywalls, CAPTCHAs, private APIs, or access controls. Website structures vary, so results are best-effort and should be reviewed before compliance decisions or outreach campaigns.

### Tips for best results

- Use company homepages, not search result pages.
- Increase `maxPagesPerWebsite` for sites with separate legal/contact pages.
- Enable `includePageTextSnippets` when you need evidence for CRM review.
- Export the dataset as CSV for spreadsheets or as JSON for automation workflows.

# Actor input Schema

## `websites` (type: `array`):

Company homepages or bare domains to enrich, for example https://example.com or example.com.

## `maxPagesPerWebsite` (type: `integer`):

Maximum number of pages to fetch per website. The Actor prioritizes homepage plus contact, about, imprint, privacy, and legal pages.

## `includePageTextSnippets` (type: `boolean`):

Include short evidence snippets for extracted contact details. Disable this for smaller outputs.

## `requestTimeoutSecs` (type: `integer`):

HTTP timeout for each fetched page.

## `maxWebsites` (type: `integer`):

Stop after this many input websites to cap spend on large input lists.

## Actor input object example

```json
{
  "websites": [
    "https://www.apify.com",
    "example.com"
  ],
  "maxPagesPerWebsite": 6,
  "includePageTextSnippets": true,
  "requestTimeoutSecs": 20,
  "maxWebsites": 100
}
```

# Actor output Schema

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

Dataset with one structured enrichment item per input website.

## `resultsCsv` (type: `string`):

Dataset exported as CSV for spreadsheets and CRMs.

# 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 = {
    "websites": [
        "https://www.apify.com",
        "example.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("peroxo/company-website-lead-enricher").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 = { "websites": [
        "https://www.apify.com",
        "example.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("peroxo/company-website-lead-enricher").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 '{
  "websites": [
    "https://www.apify.com",
    "example.com"
  ]
}' |
apify call peroxo/company-website-lead-enricher --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Company Website Lead Enricher",
        "description": "Extract public company names, contact details, legal identifiers, and social links from company websites.",
        "version": "0.1",
        "x-build-id": "HfD4KfGess8ktssG2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/peroxo~company-website-lead-enricher/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-peroxo-company-website-lead-enricher",
                "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/peroxo~company-website-lead-enricher/runs": {
            "post": {
                "operationId": "runs-sync-peroxo-company-website-lead-enricher",
                "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/peroxo~company-website-lead-enricher/run-sync": {
            "post": {
                "operationId": "run-sync-peroxo-company-website-lead-enricher",
                "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": [
                    "websites"
                ],
                "properties": {
                    "websites": {
                        "title": "Company websites or domains",
                        "type": "array",
                        "description": "Company homepages or bare domains to enrich, for example https://example.com or example.com.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPagesPerWebsite": {
                        "title": "Maximum pages per website",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of pages to fetch per website. The Actor prioritizes homepage plus contact, about, imprint, privacy, and legal pages.",
                        "default": 6
                    },
                    "includePageTextSnippets": {
                        "title": "Include evidence snippets",
                        "type": "boolean",
                        "description": "Include short evidence snippets for extracted contact details. Disable this for smaller outputs.",
                        "default": true
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout in seconds",
                        "minimum": 5,
                        "maximum": 60,
                        "type": "integer",
                        "description": "HTTP timeout for each fetched page.",
                        "default": 20
                    },
                    "maxWebsites": {
                        "title": "Maximum websites",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Stop after this many input websites to cap spend on large input lists.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
