# LinkedIn Contact Data Enrichment Tool (`monumental_world/linkedin-contact-enrichment`) Actor

Enrich any LinkedIn profile URL into a comprehensive contact record. Returns 500+ structured data points — full experience history, education, skills, certifications — plus verified email. Built for data teams, researchers, and enrichment pipelines.

- **URL**: https://apify.com/monumental\_world/linkedin-contact-enrichment.md
- **Developed by:** [Raised Pro](https://apify.com/monumental_world) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 6 total users, 3 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 enriched leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## LinkedIn Contact Data Enrichment Tool

Convert LinkedIn profile URLs into comprehensive, structured contact records. This actor retrieves 500+ data points per profile — complete employment history, education, skills, certifications, languages, and more — and appends a verified email address sourced and confirmed independently.

Designed for data engineers, market researchers, and analysts who need reliable, structured LinkedIn data in bulk without managing cookies, sessions, or LinkedIn API access.

### Data Coverage

#### Identity & Contact
- Full name (first, middle, last parsed)
- Verified email + deliverability status
- LinkedIn URL + vanity slug
- Location (city, region, country)
- Languages spoken

#### Professional
- Current title and employer
- Complete employment history: company name, industry, headcount, start/end dates, description, location
- Seniority indicators from title parsing

#### Company (Current Employer)
- Company LinkedIn URL
- Website / company domain
- Industry classification
- Employee count range
- Headquarters location

#### Education
- Institution name and URL
- Degree and field of study
- Start and end year

#### Content & Influence
- LinkedIn follower count
- Connection count
- Profile summary / about section
- Featured content links

#### Signals
- Also-viewed profiles (useful for building audience graphs)
- Skills list (up to 50)
- Certifications with issuing organization and dates
- Volunteer activity

### Technical Specs

- **Input format:** JSON array of LinkedIn profile URLs (standard or Sales Navigator)
- **Output format:** Structured JSON per profile, exportable as CSV from Apify dataset
- **Rate:** ~40 profiles/minute
- **Pagination:** Not applicable (profile endpoint returns complete record in one call)
- **Caching:** Optional — use cached data for profiles recently enriched, or force fresh pull

### Input Schema

```json
{
  "profile_urls": ["https://www.linkedin.com/in/example/"],
  "find_email": true,
  "include_skills": true,
  "include_extra": true,
  "use_cache": "if-recent"
}
````

**`use_cache` options:**

- `if-present` — return cached data if any exists (fastest, lowest cost)
- `if-recent` — return cached data only if refreshed within 7 days (default)
- `never` — always fetch live data (freshest, highest cost)

### Output Record Structure

```json
{
  "full_name": "Alexandra Chen",
  "first_name": "Alexandra",
  "last_name": "Chen",
  "headline": "Data Engineering Lead at Stripe",
  "location": "New York, NY",
  "country": "US",
  "linkedin_url": "https://www.linkedin.com/in/alexandrachen/",
  "email": "a.chen@stripe.com",
  "email_status": "valid",
  "email_confidence": 94,
  "millionverifier_result": "ok",
  "millionverifier_quality": "high",
  "current_company": "Stripe",
  "current_title": "Data Engineering Lead",
  "company_domain": "stripe.com",
  "company_linkedin_url": "https://www.linkedin.com/company/stripe/",
  "industry": "Financial Services",
  "employee_count": "5001-10000",
  "followers": 8300,
  "connections": 500,
  "about": "Building data infrastructure at scale...",
  "skills": ["Apache Spark", "dbt", "Snowflake", "Python"],
  "experience": [
    {
      "title": "Data Engineering Lead",
      "company": "Stripe",
      "start_date": "2021-09",
      "end_date": null,
      "location": "New York, NY",
      "description": "..."
    }
  ],
  "education": [...],
  "certifications": [...],
  "also_viewed": [...]
}
```

### Enrichment Pipeline Integration

This actor is designed to sit inside larger data pipelines:

**Apify API call (Python):**

```python
import apify_client

client = apify_client.ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("ACTOR_SLUG").call(run_input={
    "profile_urls": profile_url_list,
    "find_email": True,
    "include_extra": True
})
dataset = client.dataset(run["defaultDatasetId"]).list_items()
```

Works natively with Clay (Apify integration), n8n (HTTP Request node), Make, and Zapier.

### Pricing

Pay-per-event — charged only on successful record delivery:

- **Profile + verified email:** $0.020/record ($20/1,000)
- **Profile only (no email):** $0.008/record ($8/1,000)

### Data Quality Notes

- Emails are found using domain-matched lookup against the company domain extracted from the profile, then independently verified by MillionVerifier
- Profiles with incomplete company data (freelancers, students, self-employed) have lower email find rates
- `include_extra: true` adds gender signal, birthdate (where public), full industry classification, and extended experience descriptions at +1 enrichment credit credit per profile
- `also_viewed` is useful as a starting point for building audience lookalike graphs

### FAQ

**How fresh is the profile data?**
By default the actor uses cached data refreshed within 7 days. Set `use_cache: never` to force live pulls on every profile.

**What's the email find rate?**
Typically 55–75% for B2B profiles at companies with standard domain structures. Lower for freelancers, students, and profiles with incomplete employment sections.

**Can I export to BigQuery or Snowflake?**
Yes — export the Apify dataset as JSON or NDJSON and load via your standard ingestion pipeline.

**Is there a bulk input method?**
Yes. The `profile_urls` field accepts an array. You can submit up to 500 URLs per run. For larger batches, call the actor multiple times or use the Apify API to queue runs programmatically.

# Actor input Schema

## `linkedin_urls` (type: `array`):

One profile URL per row (standard or Sales Navigator). Paste hundreds or thousands of URLs here. Duplicates are removed automatically.

## `linkedin_url` (type: `string`):

Optional. Used only if "LinkedIn profile URL(s)" is empty — for older integrations that pass one URL here.

## `extract_email` (type: `boolean`):

Find and verify the person's work email using their name and company. Included by default.

## Actor input object example

```json
{
  "linkedin_url": "",
  "extract_email": true
}
```

# Actor output Schema

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

LinkedIn profiles enriched with verified work emails, stored in the default dataset

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("monumental_world/linkedin-contact-enrichment").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("monumental_world/linkedin-contact-enrichment").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 '{}' |
apify call monumental_world/linkedin-contact-enrichment --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Contact Data Enrichment Tool",
        "description": "Enrich any LinkedIn profile URL into a comprehensive contact record. Returns 500+ structured data points — full experience history, education, skills, certifications — plus verified email. Built for data teams, researchers, and enrichment pipelines.\n",
        "version": "1.0",
        "x-build-id": "aP273szhxJ4g5opxA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/monumental_world~linkedin-contact-enrichment/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-monumental_world-linkedin-contact-enrichment",
                "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/monumental_world~linkedin-contact-enrichment/runs": {
            "post": {
                "operationId": "runs-sync-monumental_world-linkedin-contact-enrichment",
                "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/monumental_world~linkedin-contact-enrichment/run-sync": {
            "post": {
                "operationId": "run-sync-monumental_world-linkedin-contact-enrichment",
                "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",
                "properties": {
                    "linkedin_urls": {
                        "title": "LinkedIn profile URL(s)",
                        "type": "array",
                        "description": "One profile URL per row (standard or Sales Navigator). Paste hundreds or thousands of URLs here. Duplicates are removed automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "linkedin_url": {
                        "title": "Single profile URL (legacy)",
                        "type": "string",
                        "description": "Optional. Used only if \"LinkedIn profile URL(s)\" is empty — for older integrations that pass one URL here.",
                        "default": ""
                    },
                    "extract_email": {
                        "title": "Find Verified Work Email",
                        "type": "boolean",
                        "description": "Find and verify the person's work email using their name and company. Included by default.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
