# LinkedIn Profile + Email Finder · $5/1k ✅ (`linkedintel/linkedin-profile-email-finder`) Actor

Extract LinkedIn profile data + verified work email. $5/1k orchestration — use your own email vendor account (Datagma / Hunter / Findymail) to control email lookup costs. No cookies, no login.

- **URL**: https://apify.com/linkedintel/linkedin-profile-email-finder.md
- **Developed by:** [LinkedIntel](https://apify.com/linkedintel) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## 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 Profile + Email Finder (BYOK)

Extract a complete LinkedIn profile **plus a verified work email** in a single actor run. No `li_at` cookie, no browser automation, no login. You bring your own email-vendor API key (BYOK) — we charge a flat **$5 / 1,000 profiles** for the LinkedIn lookup; the email vendor charges your account.

---

### Pick your email vendor (BYOK)

You can use **any one of three vendors** with your own API key. We never store, log, or transmit your key anywhere except the vendor's own API.

| Vendor | Cost / email | Free trial | Best for |
| --- | --- | --- | --- |
| **Datagma** (default) | **$0.013** | **160 credits** | Entry tier, cheapest |
| Hunter.io | $0.017 starter / $0.0084 scale | 25 / month | Brand recognition, scale |
| Findymail | $0.020 | 10 credits | LinkedIn accuracy specialist (5% bounce guarantee) |

Set `emailVendor` to `datagma`, `hunter`, or `findymail`. Paste the matching key into `emailApiKey`. That's it.

---

### Why $5/1k beats $10/1k bundled actors

Most competing "profile + email" actors bundle both vendor costs into a single $10–$15 / 1k price tag. That assumes you don't already have a Datagma, Hunter, or Findymail subscription. Most B2B teams do.

| Actor | Profile data | Email finder | Price / 1k |
| --- | --- | --- | --- |
| dev_fusion `linkedin-profile-scraper` + bundled email | Yes | Yes (bundled vendor) | ~$10 |
| harvestapi `linkedin-profile-bulk-scraper-no-cookies` + emails | Yes | Yes (bundled) | ~$10 |
| **This actor (BYOK)** | **Yes** | **You pass your own key (3 vendors)** | **$5** |

Net savings on a 10,000-lead enrichment run: ~$50 vs. bundled competitors, on top of whatever you save by reusing an existing vendor subscription.

---

### How it works

1. You pass an array of LinkedIn profile URLs or bare usernames.
2. We fetch each profile via our cookieless LinkedIn data provider (one API call per profile).
3. We resolve the company's external website domain (LinkedIn never gives it directly).
4. If `enableEmailLookup=true` and you supplied an `emailApiKey`, we call your chosen vendor with `first_name + last_name + domain`.
5. You get **one combined record per profile** — profile fields and email fields merged, plus `emailVendor` so you always know which vendor was used.

---

### Quick start: get an API key (1 minute)

**Datagma (recommended — cheapest)**

1. Sign up at [datagma.com/api](https://datagma.com/api/) — 160 free credits, no credit card.
2. Copy your `apiId` from the dashboard.
3. Set `emailVendor = "datagma"` and paste the key into `emailApiKey`.

**Hunter.io (most popular)**

1. Sign up at [hunter.io/users/sign_up](https://hunter.io/users/sign_up) — 25 free searches/month.
2. Open [hunter.io/api_keys](https://hunter.io/api_keys), copy the key.
3. Set `emailVendor = "hunter"`.

**Findymail (best for LinkedIn-sourced contacts)**

1. Sign up at [findymail.com](https://www.findymail.com/) — 10 free credits.
2. Open the dashboard, copy your Bearer token.
3. Set `emailVendor = "findymail"`.

---

### Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `profileUrls` | array of strings | **yes** | LinkedIn profile URLs (`https://www.linkedin.com/in/<slug>/`) or bare usernames (`satya-nadella`). |
| `emailVendor` | string enum | no (default `datagma`) | One of `datagma`, `hunter`, `findymail`. |
| `emailApiKey` | string (secret) | only for email enrichment | Your vendor key. |
| `enableEmailLookup` | boolean | no (default `true`) | Set to `false` to skip vendor calls entirely (saves your credits). |

If `enableEmailLookup` is `true` but `emailApiKey` is empty, the actor logs a warning and proceeds with profile data only. If `emailVendor` is invalid, the actor fails fast with a clear message.

---

### Output (one record per profile)

Profile fields (always present when the profile resolves):

````

sourceInput, profileId, profileUrn, username, profileUrl,
firstName, lastName, fullName, headline, summary,
country, countryCode, city, locationFull,
currentCompanyName, currentCompanyId, currentCompanyUrl, currentTitle,
industryName, isCreator, isPremium, isInfluencer, isOpenToWork, isHiring,
followerCount, connectionsCount, profilePictureUrl,
experience (last 3 positions), education (last 2),
scrapedAt

```

Email fields (merged into the same record):

```

email                 — string or null
emailScore            — 0-100 confidence (Hunter only), or null
emailType             — "professional" / "personal" / "probable" / null
emailVerified         — true when the vendor SMTP-verified the address
emailSources          — Hunter: source count; Findymail: email provider; Datagma: null
emailVendor           — "datagma" / "hunter" / "findymail" — which vendor returned this record
emailLookupDomain     — domain we asked the vendor to search (echoed for debugging)
emailLookupSkipReason — "no\_company\_domain" / "missing\_name" / "invalid\_key" / "quota\_exhausted" / "disabled\_by\_input"

````

When the vendor cannot find an email (most common reason: small companies not in the vendor's index), all email fields are `null` / `false` and `emailLookupSkipReason` stays `null`. No email is normal, not an error.

A `summary` record at the end reports `profilesAttempted`, `emailsFound`, `diagnostics`, `emailLookupEnabled`, and `emailVendor`.

---

### Pricing math

| Run size | Our cost | Datagma cost ($0.013/email, all hit) | Total |
| --- | --- | --- | --- |
| 100 profiles | $0.50 | ~$1.30 | ~$1.80 |
| 1,000 profiles | $5.00 | ~$13 | ~$18 |
| 1,000 profiles, emailLookup=false | $5.00 | $0 | $5.00 |
| First 160 profiles on Datagma free trial | $0.80 | $0 | $0.80 |

If you don't have any email-vendor account, the actor still works without one — leave `emailApiKey` blank and you'll get profile-only data at $5/1k.

---

### Endpoint notes

- **Datagma**: `GET https://gateway.datagma.net/api/ingress/v6/findEmail` with `apiId` query param. Response shape inferred from public docs (verified 2026-05-18); parser handles multiple known shapes defensively.
- **Hunter**: `GET https://api.hunter.io/v2/email-finder` with `api_key` query param.
- **Findymail**: `POST https://app.findymail.com/api/search/name` with `Authorization: Bearer <key>`, body `{name, domain}`. Response under `contact` key.

All three vendors are called with one request per profile, with 1 retry on transient errors (429/5xx) and an immediate disable on 401/403 to stop wasting your credits if your key is invalid.

---

### Trademark disclaimer

This actor is **not affiliated with, endorsed by, or sponsored by LinkedIn Corporation, Hunter.io / Snov.io Inc., Datagma, or Findymail.** "LinkedIn" is a trademark of LinkedIn Corporation; "Hunter", "Datagma", and "Findymail" are trademarks of their respective owners. All product names, logos, and brands are property of their respective owners and used here for identification purposes only.

You are responsible for ensuring your use of this actor complies with applicable law, LinkedIn's Terms of Service, your email vendor's Terms of Service, GDPR / CCPA, and any other regulations applicable to your jurisdiction. We recommend processing only publicly-visible data on a legitimate-interest legal basis, with appropriate data-minimization and retention policies.

---

### Support

Open an issue on the actor's Apify page, or reach out via the support email listed in this actor's profile.

# Actor input Schema

## `profileUrls` (type: `array`):

LinkedIn profile URLs (https://www.linkedin.com/in/satya-nadella/) or bare usernames (satya-nadella).
## `emailVendor` (type: `string`):

Which email-finder API to use with YOUR key. Datagma = cheapest ($0.013/email, 160 free credits). Hunter = most popular ($0.017/email). Findymail = LinkedIn accuracy specialist ($0.020/email, 5% bounce guarantee).
## `emailApiKey` (type: `string`):

Required for email enrichment. Get yours: Datagma datagma.com/api (160 free credits), Hunter hunter.io/api (25 free/mo), Findymail findymail.com (10 free credits). We never store or log your key.
## `enableEmailLookup` (type: `boolean`):

When true (default), call your email vendor. When false, return profile data only.

## Actor input object example

```json
{
  "profileUrls": [
    "williamhgates"
  ],
  "emailVendor": "datagma",
  "enableEmailLookup": true
}
````

# 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 = {
    "profileUrls": [
        "williamhgates"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("linkedintel/linkedin-profile-email-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 = { "profileUrls": ["williamhgates"] }

# Run the Actor and wait for it to finish
run = client.actor("linkedintel/linkedin-profile-email-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 '{
  "profileUrls": [
    "williamhgates"
  ]
}' |
apify call linkedintel/linkedin-profile-email-finder --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Profile + Email Finder · $5/1k ✅",
        "description": "Extract LinkedIn profile data + verified work email. $5/1k orchestration — use your own email vendor account (Datagma / Hunter / Findymail) to control email lookup costs. No cookies, no login.",
        "version": "1.1",
        "x-build-id": "kBlL2ecCcWPNGVYz3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/linkedintel~linkedin-profile-email-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-linkedintel-linkedin-profile-email-finder",
                "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/linkedintel~linkedin-profile-email-finder/runs": {
            "post": {
                "operationId": "runs-sync-linkedintel-linkedin-profile-email-finder",
                "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/linkedintel~linkedin-profile-email-finder/run-sync": {
            "post": {
                "operationId": "run-sync-linkedintel-linkedin-profile-email-finder",
                "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": [
                    "profileUrls"
                ],
                "properties": {
                    "profileUrls": {
                        "title": "LinkedIn profile URLs or usernames",
                        "type": "array",
                        "description": "LinkedIn profile URLs (https://www.linkedin.com/in/satya-nadella/) or bare usernames (satya-nadella).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "emailVendor": {
                        "title": "Email vendor (BYOK)",
                        "enum": [
                            "datagma",
                            "hunter",
                            "findymail"
                        ],
                        "type": "string",
                        "description": "Which email-finder API to use with YOUR key. Datagma = cheapest ($0.013/email, 160 free credits). Hunter = most popular ($0.017/email). Findymail = LinkedIn accuracy specialist ($0.020/email, 5% bounce guarantee).",
                        "default": "datagma"
                    },
                    "emailApiKey": {
                        "title": "Your email vendor API key (BYOK)",
                        "type": "string",
                        "description": "Required for email enrichment. Get yours: Datagma datagma.com/api (160 free credits), Hunter hunter.io/api (25 free/mo), Findymail findymail.com (10 free credits). We never store or log your key."
                    },
                    "enableEmailLookup": {
                        "title": "Enable email enrichment",
                        "type": "boolean",
                        "description": "When true (default), call your email vendor. When false, return profile data only.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
