# Contact Info Finder (`supreme_coder/contact-info-finder`) Actor

Find people and their contact info from any website or Linkedin URL in bulk

- **URL**: https://apify.com/supreme\_coder/contact-info-finder.md
- **Developed by:** [Supreme Coder](https://apify.com/supreme_coder) (community)
- **Categories:** Lead generation, Social media, Other
- **Stats:** 892 total users, 108 monthly users, 100.0% runs succeeded, 15 bookmarks
- **User rating**: 3.10 out of 5 stars

## Pricing

from $0.01 / 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 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

Find unlimited contact information: details of people, emails and phone numbers from websites and LinkedIn profiles in bulk

### 🚀 Features

- **Bulk Contact Discovery**: Extract contact information from company websites and LinkedIn profiles
- **Advanced Filtering**: Filter contacts by seniority level
- **Email Verification**: Get verified, guessed, or all email addresses
- **Phone Numbers**: Access work phone numbers with validation status
- **Comprehensive Data**: Employment history, company information, and professional details
- **Flexible Output**: Clean, structured data in camelCase format
- **Cost-Effective**: Pay-per-contact pricing based on information found

### 📥 Input

#### Required Fields

- **URLs**: Array of website URLs or LinkedIn profile URLs to scrape

#### Optional Fields

- **Get Emails**: Request access to emails and scrape them (default: true)
- **Exclude Guessed Emails**: Exclude extrapolated/guessed emails (default: false)
- **Exclude No Emails**: Exclude people without email addresses (default: false)
- **Number of Contacts**: Limit contacts per URL (default: 100)
- **Seniority Filter**: Filter by seniority level (c\_suite, director, entry, founder, head, intern, manager, owner, partner, senior, vp)
- **Job Title Keywords**: Filter by keywords in job titles (case-insensitive)

#### Example Input

```json
{
  "urls": [
    {"url": "https://apify.com"},
    {"url": "https://www.linkedin.com/in/williamhgates"}
  ],
  "getEmails": true,
  "excludeGuessedEmails": false,
  "excludeNoEmails": false,
  "numberOfContacts": 25,
  "seniorityFilter": ["c_suite", "director", "manager"]
}
```

### 📤 Output

Each contact record contains comprehensive information:

#### Basic Contact Information

- `fullName`: Complete name
- `firstName`: First name
- `lastName`: Last name
- `emailAddress`: Email address
- `jobTitle`: Current job title
- `headline`: Professional headline

#### Location Information

- `city`: City
- `stateProvince`: State or province
- `country`: Country
- `timezone`: Timezone
- `currentLocation`: Current address

#### Professional Information

- `departments`: Array of departments
- `jobFunctions`: Array of job functions
- `seniorityLevel`: Seniority level
- `subdepartments`: Array of subdepartments

#### Contact Methods

- `linkedinProfile`: LinkedIn profile URL
- `linkedinUsername`: LinkedIn username
- `twitterProfile`: Twitter profile URL
- `facebookProfile`: Facebook profile URL
- `githubProfile`: GitHub profile URL
- `personalWebsite`: Personal website URL

#### Email Information

- `emailIsCatchall`: Whether email is catchall
- `emailVerificationStatus`: Email verification status
- `emailTrueStatus`: Detailed email status

#### Employment History

- `workHistory`: Array of employment records with:
  - `positionTitle`: Job title
  - `isCurrentPosition`: Whether current position
  - `employerName`: Company name
  - `employmentStartDate`: Start date
  - `employmentEndDate`: End date
  - `workAddress`: Work address

#### Phone Information

- `contactNumbers`: Array of phone numbers with:
  - `phoneNumber`: Sanitized phone number
  - `phoneType`: Type of phone (work\_hq, mobile, etc.)
  - `rawNumber`: Raw phone number
  - `dialingStatus`: Dialing status
  - `dncStatus`: Do Not Call status
  - `countryInfo`: Country information
- `primaryPhone`: Primary phone number

#### Company Information

- `currentCompany`: Current company name
- `companyInfo`: Detailed company information (when available):
  - `companyName`: Company name
  - `companyDomain`: Company domain
  - `website`: Company website
  - `linkedinCompanyUrl`: LinkedIn company URL
  - `twitterHandle`: Twitter handle
  - `facebookPage`: Facebook page
  - `angelListUrl`: AngelList URL
  - `alexaRank`: Alexa ranking
  - `yearFounded`: Year founded
  - `employeeCount`: Number of employees
  - `companyLogo`: Company logo URL
  - `address`: Company address
  - `streetAddress`: Street address
  - `city`: Company city
  - `state`: Company state
  - `country`: Company country
  - `postalCode`: Postal code
  - `primaryIndustry`: Primary industry
  - `industryTags`: Array of industry tags
  - `secondaryIndustries`: Secondary industries

#### Additional Information

- `engagementLikelihood`: Likelihood to engage
- `domainIsFree`: Whether domain is free
- `photoUrl`: Profile photo URL

#### Example Output

```json
{
  "inputUrl": "https://apify.com",
  "type": "company_contact",
  "domain": "apify.com",
  "fullName": "Jan Curn",
  "firstName": "Jan",
  "lastName": "Curn",
  "emailAddress": "jan.curn@apify.com",
  "jobTitle": "Founder and CEO",
  "headline": "CEO at Apify | Building a full-stack platform for web scraping and data for AI.",
  "city": "San Francisco",
  "stateProvince": "California",
  "country": "United States",
  "timezone": "America/Los_Angeles",
  "departments": ["c_suite"],
  "jobFunctions": ["entrepreneurship"],
  "seniorityLevel": "founder",
  "linkedinProfile": "http://www.linkedin.com/in/jancurn",
  "emailVerificationStatus": "verified",
  "emailTrueStatus": "Verifying",
  "workHistory": [
    {
      "positionTitle": "Founder and CEO",
      "isCurrentPosition": true,
      "employerName": "Apify",
      "employmentStartDate": "2015-09-01",
      "employmentEndDate": null,
      "workAddress": null
    }
  ],
  "currentCompany": "Apify",
  "engagementLikelihood": true,
  "contactNumbers": [
    {
      "phoneNumber": "+18004470013",
      "phoneType": "work_hq",
      "rawNumber": "+1 800-447-0013",
      "dialingStatus": "no_status",
      "dncStatus": null,
      "countryInfo": null
    }
  ],
  "primaryPhone": "+18004470013",
  "currentLocation": "San Francisco, CA, USA",
  "domainIsFree": false,
  "photoUrl": null,
  "companyInfo": {
    "companyName": "Apify",
    "companyDomain": "apify.com",
    "website": "http://www.apify.com",
    "linkedinCompanyUrl": "http://www.linkedin.com/company/apifytech",
    "twitterHandle": "https://twitter.com/apify",
    "facebookPage": "https://www.facebook.com/apifier/",
    "alexaRank": 33124,
    "yearFounded": 2015,
    "employeeCount": 130,
    "primaryIndustry": "information technology & services",
    "industryTags": ["information technology & services", "internet", "computer software"]
  }
}
```

### 💰 Pricing

The actor uses a pay-per-contact pricing model based on the information found:

- **Person Detail Found**: $0.0005 (base charge for any contact found)
- **Verified Email Found**: $0.0010 (when email is verified)
- **Guessed Email Found**: $0.0005 (when email is extrapolated/guessed)
- **Phone Number Found**: $0.0010 (when valid phone numbers are present)

#### Example Pricing

For a contact with verified email and phone number:

- Person detail: $0.0005
- Verified email: $0.0010
- Phone number: $0.0010
- **Total**: $0.0025 per contact ($2.5 per 1000 contacts)

### 🚀 Usage Examples

#### Find All Contacts from a Company

```json
{
  "urls": [{"url": "https://apify.com"}],
  "numberOfContacts": 50
}
```

#### Find Only C-Level Executives

```json
{
  "urls": [{"url": "https://apify.com"}],
  "seniorityFilter": ["c_suite", "founder"],
  "excludeNoEmails": true
}
```

#### Find LinkedIn Profile Information

```json
{
  "urls": [
    {"url": "https://www.linkedin.com/in/williamhgates"},
    {"url": "https://www.linkedin.com/in/jeffweiner08"}
  ]
}
```

### 📈 Use Cases

- **Lead Generation**: Find prospects for sales outreach
- **Recruitment**: Identify potential candidates
- **Partnership Development**: Find key decision makers
- **Event Planning**: Build attendee contact lists

# Actor input Schema

## `urls` (type: `array`):

Website URLs or Linkedin profile URLs

## `getEmails` (type: `boolean`):

Request access to emails and scrape them

## `excludeGuessedEmails` (type: `boolean`):

Exclude guessed emails or not. Applicable only when 'Get email' option is enabled

## `excludeNoEmails` (type: `boolean`):

No description

## `numberOfContacts` (type: `integer`):

Leave this field empty if you want to get all contacts

## `seniorityFilter` (type: `array`):

Filter contacts by their seniority level

## Actor input object example

```json
{
  "urls": [
    {
      "url": "https://apify.com"
    },
    {
      "url": "https://www.linkedin.com/in/williamhgates"
    }
  ],
  "getEmails": true,
  "excludeGuessedEmails": false,
  "excludeNoEmails": false,
  "numberOfContacts": 100,
  "seniorityFilter": []
}
```

# 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 = {
    "urls": [
        {
            "url": "https://apify.com"
        },
        {
            "url": "https://www.linkedin.com/in/williamhgates"
        }
    ],
    "numberOfContacts": 100,
    "seniorityFilter": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("supreme_coder/contact-info-finder").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 = {
    "urls": [
        { "url": "https://apify.com" },
        { "url": "https://www.linkedin.com/in/williamhgates" },
    ],
    "numberOfContacts": 100,
    "seniorityFilter": [],
}

# Run the Actor and wait for it to finish
run = client.actor("supreme_coder/contact-info-finder").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 '{
  "urls": [
    {
      "url": "https://apify.com"
    },
    {
      "url": "https://www.linkedin.com/in/williamhgates"
    }
  ],
  "numberOfContacts": 100,
  "seniorityFilter": []
}' |
apify call supreme_coder/contact-info-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=supreme_coder/contact-info-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/g1fqyMggFnEWS4JYY/builds/z5CUOCdeuEcNPW0DQ/openapi.json
