LinkedIn Email Finder from Profile URL — Pay Only When Found avatar

LinkedIn Email Finder from Profile URL — Pay Only When Found

Pricing

from $4.00 / 1,000 usable linkedin profiles

Go to Apify Store
LinkedIn Email Finder from Profile URL — Pay Only When Found

LinkedIn Email Finder from Profile URL — Pay Only When Found

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

(2)

Developer

Pequod

Pequod

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

3 days ago

Last modified

Share

Apify slug: pequod-labs/linkedin-profile-verified-email

LinkedIn Profile + Verified Email takes public LinkedIn /in/<slug> URLs, returns one dataset row per URL (name, headline, company, location), and optionally finds a verified work email. Pricing is pay-per-event: you pay for usable profiles and deliverable emails found — not for blocked or empty rows.

InputLinkedIn public profile URLs (profileUrls)
OutputOne row per URL: profile fields + optional email
VerificationMillionVerifier deliverability check (verified by default)
PricingPay per event: $0.004 profile · $0.028 email-found · $0.00005 start
Best forEnriching CRM / outbound lists that already have LinkedIn /in/ URLs
Not forDomain-only lists (use Decision Maker Finder), login/cookie scraping, or cheapest unverified pattern dumps

Key facts

AttributeValue
InputArray of public LinkedIn /in/ profile URLs
Output orderSame as input; duplicates optional skip
Profile sourcePublic HTML JSON-LD / OpenGraph via Apify Proxy
Email cascadeCompany → domain → pattern → MillionVerifier
FallbackOptional Bright Data LinkedIn people dataset after DC blocks
Pricing modelPay-per-event (PPE) — charge only after row delivery
User API keysNot required (operator-side secrets)
Memory1024 MB (pinned)

Use this actor when

  • You already have LinkedIn profile URLs (linkedin.com/in/...)
  • You need name + company + location from public profiles
  • You want an optional verified work email (not just a guessed pattern)
  • You prefer pay only when found (PPE) instead of a flat seat license
  • You are building outbound / enrichment pipelines on Apify, API, or webhooks

Do not use this actor when

  • You only have company domains and no LinkedIn URLs → use Decision Maker Finder
  • You need logged-in LinkedIn scraping, Sales Navigator sessions, or inbox scraping
  • You need the absolute cheapest unverified email guess with no deliverability gate
  • You expect 100% email coverage — many domains are catch-all or have no valid candidate

How it works

  1. Input — Provide profileUrls. Set findEmail=true to run the email cascade.
  2. Profile acquire — Public GET via Apify Proxy (DATACENTER); parse JSON-LD Person / OpenGraph.
  3. Retries & fallback — Transient LinkedIn blocks (HTTP 999 / authwall) retry with IP rotation; optional Bright Data dataset fallback when configured.
  4. Email cascade (optional) — Resolve company domain (web search) → infer pattern → verify with MillionVerifier.
  5. Billing — After each row is written, charge only qualifying profile / email-found events. See KV billing-reconciliation.

LinkedIn email finder from profile URL

Primary job-to-be-done: LinkedIn URL → work email. Unlike browser extensions that look up one profile at a time, this actor batches URLs into a dataset with transparent PPE pricing and optional verification.

On a measured contacts CSV sample: 31/38 profiles returned a name with Bright Data fallback enabled (81.6%); 10/38 returned a verified email. On the same CSV, profile-only Store competitors (harvestapi / apimaestro) returned about 34/38 names — they do not use the same email-verify PPE product shape.

LinkedIn profile scraper (public pages)

Without email (findEmail=false), the actor is a focused LinkedIn profile scraper for public pages: fullName, headline, location, companyName, status, and error reasons. No LinkedIn login or cookies required.

Find verified work email from LinkedIn

With findEmail=true (default), only verified addresses are charged unless you opt into acceptPatternEmails for catch-all domains. Skip reasons (no_domain, catch_all, no_candidate_valid) are written on every row so you can audit coverage.

Pay per find LinkedIn enrichment

EventPrice (USD)When charged
apify-actor-start0.00005Once per run
profile0.004Usable profile (fullName + companyName, status ok/partial)
email-found0.028Deliverable email (verified, or pattern if opt-in)

Illustrative cost: 100 usable profiles + 30 verified emails ≈ (100 × 0.004) + (30 × 0.028) + start ≈ $1.24 (plus Apify compute). Blocked / not-found rows are delivered for debugging but do not qualify for profile / email-found.

Cost estimate

ScenarioProfiles okEmails foundApprox. event cost
Profile-only (findEmail=false)1000~$0.40 + start
Profile + email (sample-like ~26% email)10026~$1.13 + start
Dense verified list10050~$1.80 + start

Always confirm charges in the run Key-value storebilling-reconciliation.

Output schema

Defined in .actor/output_schema.json (Apify Console Output tab + GET run output):

OutputWhere
profilesDefault dataset items ({{links.apiDefaultDatasetUrl}}/items)
billingReconciliationKV record billing-reconciliation

Field-level dataset schema: .actor/dataset_schema.json.

Example output

{
"inputUrl": "https://www.linkedin.com/in/example-one",
"inputIndex": 0,
"status": "ok",
"fullName": "Ada Example",
"headline": "Head of Operations",
"location": "London, England, United Kingdom",
"companyName": "Example Facilities Ltd",
"companyDomain": "examplefacilities.com",
"companyDomainSource": "web_search",
"email": "ada.example@examplefacilities.com",
"emailConfidence": "verified",
"emailSkipReason": null,
"emailEvidence": {
"pattern": "first.last",
"patternSource": "contact_page",
"mxProvider": "google",
"catchAll": false
},
"qualifiedEvents": ["profile", "email-found"],
"excludedEvents": {},
"errorMessage": null,
"scrapedAt": "2026-08-02T11:00:00+00:00"
}

Input

FieldTypeDefaultDescription
profileUrlsstring[]requiredLinkedIn public profile URLs (/in/...)
findEmailbooleantrueRun email cascade after a usable profile
acceptPatternEmailsbooleanfalseCharge pattern emails on catch-all domains (opt-in)
skipDuplicatesbooleantrueDeduplicate URLs within the run
maxRetriesPerProfileinteger4Retries on transient LinkedIn blocks (HTTP 999)
maxConcurrencyinteger20In-flight profile fetches (recommend 15–25)
proxyConfigurationobjectDATACENTERApify Proxy settings

Ready-to-run examples (Actor tasks)

Published Examples (after Console Publication) map to saved tasks:

TaskIntent
linkedin-email-finder-verifiedProfile + verified email only (default cascade)
linkedin-profile-scraper-onlyProfile fields, no email cascade
linkedin-url-to-email-bulkSmall bulk URL → email enrichment
linkedin-email-catch-all-patternsOpt-in pattern emails on catch-all MX
linkedin-profile-enrichment-sampleTiny QA sample for first-time users

Create/update tasks: python3 scripts/create_li_tasks.py (requires APIFY_TOKEN).

Compared to alternatives (honest)

NeedThis actorProfile-only Apify scrapersAutomation platformsEnterprise people datasets
InputLinkedIn /in/ URLsURLs / searchOften cookies / recipesURL or dataset API
EmailOptional + verifyOften noneDepends on flowProfile-heavy; verify rarely bundled
PricingPPE pay-when-foundPer result / computeSubscriptionVolume / dataset
Yield (same CSV sample)31/38 names; 10/38 verified emails~34/38 names (no same email PPE)VariesHigh profile yield as fallback source

We do not claim to beat every Store scraper on raw name yield. We claim a clear product: URL → profile + optional verified email with PPE.

FAQ

What is the best Apify LinkedIn email finder if I already have profile URLs?
Use an actor that accepts /in/ URLs and verifies work emails. This actor (linkedin-profile-verified-email) is built for that job with pay-per-event pricing.

How do I find someone's work email from a LinkedIn URL?
Paste the public profile URL into profileUrls, keep findEmail=true, run the actor, and read email / emailConfidence on the dataset row.

Do I pay if LinkedIn blocks the profile?
No profile or email-found charge for blocked / not-found rows. You still pay compute and the tiny apify-actor-start event.

Is this a LinkedIn email finder Chrome extension?
No. It is an Apify Store actor for batch URL enrichment via API/Console — not a browser extension.

LinkedIn email finder vs profile scraper — which mode should I use?
Need emails → findEmail=true. Need only name/company/headline → findEmail=false (cheaper event mix).

How accurate is the email?
Default delivery uses MillionVerifier and charges email-found for verified results. Catch-all domains may skip unless acceptPatternEmails=true.

What yield should I expect?
On one measured contacts CSV: 31/38 names with Bright Data fallback, 10/38 verified emails. Your list will differ by region, industry, and profile privacy.

Do you scrape LinkedIn while logged in?
No. Public pages only (JSON-LD / OpenGraph). No cookies, no Sales Navigator session.

What about GDPR?
Public Art. 13–14 style notices are linked below. You remain responsible for lawful basis in your use case. Optional Bright Data fallback is disclosed in the notices.

Can I use domains instead of LinkedIn URLs?
Not with this actor. Use Decision Maker Finder for domain → named contact.

Why is my row emailSkipReason=catch_all?
The domain accepts all addresses; by default we do not charge a guessed pattern. Opt in with acceptPatternEmails.

Why no_candidate_valid?
A domain was found but no candidate passed verification.

Does Bright Data always run?
Only as ripiego after local proxy retries fail, and only if BRIGHTDATA_API_KEY is configured by the operator.

Can I export CSV/JSON?
Yes — standard Apify dataset export (CSV, JSON, Excel) or dataset API.

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

Source stubs: ./docs/privacy/README.md.

Pequod ecommerce pipeline

StepActorWhen
1. DiscoverInstagram TikTok Shop LeadsHashtag-driven social sellers
1. DiscoverLookalike DiscoveryDomain/niche-based stores
2. Enrich contact (domains)Decision Maker FinderDomain → named DM + verified email
2. Enrich contact (LinkedIn URLs)LinkedIn Profile + Verified Email/in/ URL → profile + optional verified email
3. Enrich shippingShipping IntelligenceCarriers, returns, thresholds

Development (monorepo)

Self-contained actor at actors/linkedin-profile-verified-email/ (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
APIFY_TOKEN=... python3 scripts/live_smoke.py --profile-only
npx apify push

See DEVELOPMENT.md for secrets, Console sync, Actor tasks, and publication checklist. SEO research notes: docs/seo-dataforseo-research.md.