LinkedIn Profile Email Finder — Pay Per Find avatar

LinkedIn Profile Email Finder — Pay Per Find

Pricing

from $4.00 / 1,000 usable linkedin profiles

Go to Apify Store
LinkedIn Profile Email Finder — Pay Per Find

LinkedIn Profile Email Finder — Pay Per Find

LinkedIn email finder from profile URLs → name, company, optional verified work email. Pay only for usable profiles and emails found. Privacy: https://api.apify.com/v2/key-value-stores/jZUn8TR3AeaEwtT2h/records/linkedin-profile-verified-email-privacy.en.html?signature=PcrXf7uRJ0kRmb0GyaoF

Pricing

from $4.00 / 1,000 usable linkedin profiles

Rating

5.0

(3)

Developer

Pequod

Pequod

Maintained by Community

Actor stats

1

Bookmarked

87

Total users

41

Monthly active users

a day ago

Last modified

Share

LinkedIn Profile + Verified Email — Pay Only When Found

Pay-per-event actor that delivers one dataset row per input URL, in input order, and bills only after the row is written to the dataset.

Provide public LinkedIn /in/<slug> profile URLs. The actor fetches profile fields from an upstream people scraper (name, headline, company, location, company website) and optionally runs an offline-first email cascade that charges only when a deliverable email is found.

Features

  • One row per URL — input order preserved; duplicates can be skipped
  • Full public profiles — name, headline, company, location, and company website from an upstream people scraper (not guest HTML)
  • Verified work email when MillionVerifier says sendable — domain resolve → person-shaped patterns ({first}.{last}, {f}.{last}, …) → industry-grade verification
  • Catch-all guesses returned, never billedemailConfidence=risky on catch-all domains; email-found fires only for verified
  • Transparent billingqualifiedEvents / excludedEvents on every row; amounts in KV billing-reconciliation
  • Resume-safe — reconciliation flushed on ABORTING / MIGRATING

Input

FieldTypeDefaultDescription
profileUrlsstring[]requiredLinkedIn public profile URLs (/in/...)
findEmailbooleantrueRun email cascade after a usable profile
acceptPatternEmailsbooleantrueCatch-all guesses are always written as risky and never billed. Kept for stored tasks; the flag no longer hides the address
skipDuplicatesbooleantrueDeduplicate URLs within the run
maxRetriesPerProfileinteger1Datacenter attempts; residential HTTP fallback is capped at 2
enableBrowserFallbackbooleanfalseAnonymous Firefox fallback on residential proxy; never accepts authenticated LinkedIn cookies
maxConcurrencyinteger8In-flight profile fetches
proxyConfigurationobjectDATACENTERApify Proxy settings

Apify free trial (platform)

On the Apify platform, free-plan users get the full product (profile + email cascade) with tight caps so upstream verification costs stay sustainable:

LimitFree planPaid Apify plan
profileUrls per run5 max (extra URLs dropped)No cap
Email cascades per UTC day5 across runsNo cap

When the daily email quota is used up, profiles are still fetched but email lookup is skipped (emailSkipReason: free_trial_exhausted). Upgrade at Apify pricing for unlimited usage.

Output

Each dataset row includes inputUrl, inputIndex, status (ok | partial | not_found | blocked | error), profile fields (fullName, headline, location, companyName, companyLinkedinUrl, companyLinkedinId, companyDomain, companyDomainConfidence), email fields (email, emailConfidence, emailSkipReason, emailEvidence), and billing eligibility (qualifiedEvents, excludedEvents).

Events (Store monetization)

EventPrice (USD)When
apify-actor-start0.00005Automatic once per run at 1 GB
profile0.004Row qualifies: fullName + companyName, status not blocked/error/not_found
email-found0.028Strictly verified email only. Catch-all / risky addresses are written on the row and never billed

Domain search uses hostname, result title/snippet, search rank, repeated-result, and LinkedIn company identity signals. Low-score and near-tied matches are rejected instead of guessing. Dutch surname particles are retained when building the top five verification candidates.

How to verify your invoice

Open the run's Key-value store → record billing-reconciliation:

{
"byInputIndex": {
"0": { "profile": 0.004, "email-found": 0.028 },
"1": {}
},
"totalUsd": 0.032,
"rowsDelivered": 2,
"rowsCharged": 1
}

Rows do not embed charged amounts (datasets are append-only). Use the KV record to match the Apify invoice.

Public Art. 13–14 privacy notices (hosted on Apify KV, permanent signed URLs):

Source stubs and URL manifest: ./docs/privacy/README.md.

Development (monorepo)

This actor lives at actors/linkedin-profile-verified-email/ in the Pequod monorepo. It is self-contained (not a packages/pequod thin wrapper).

cd actors/linkedin-profile-verified-email
python3.13 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt -c constraints.txt -r requirements-dev.txt
python -m pytest -q
python -m src.main --local

Live platform smoke:

$APIFY_TOKEN=... python3 scripts/live_smoke.py --profile-only

Deploy:

cd actors/linkedin-profile-verified-email
APIFY_TOKEN=... python3 scripts/deploy_prod.py --dry-run
# live deploy only from origin/main:
APIFY_TOKEN=... python3 scripts/deploy_prod.py

Never use npx apify push — it wipes Console secrets. See DEVELOPMENT.md.

Memory is pinned to 1024 MB. Docker installs requirements.txt with constraints.txt and the Firefox runtime so transitive pins stay aligned with local dev. Browser acquisition is still opt-in and safely reports browser_unavailable if Playwright or Firefox cannot start.

See DEVELOPMENT.md for secrets, publication checklist, and architecture notes.

Pequod ecommerce pipeline

StepActorWhen
1. Discover restaurantsRestaurant LeadsRestaurant email list from Google Maps
1. Discover local businessesGoogle Maps Local LeadsHorizontal local leads
2. Enrich contactDecision Maker FinderNamed decision makers on a company domain