Skip to content

How to Find Work Emails from LinkedIn Profile URLs

Look up available work emails from public LinkedIn URLs, keep source rows and match statuses, and export a reviewed CSV through Apify or your agent.

Dievio Team · Growth Systems · November 6, 2026 · 7 min read

A cobalt professional profile URL card with a neutral silhouette and an unlettered link icon leads into an orange business email envelope tied to a distinct matching profile card; a faint unmatched row is optional.

To find work emails from LinkedIn profile URLs, paste your public profile links into the LinkedIn Email Scraper on Apify. Enable work emails, run the lookup and export its Dataset as CSV. Keep the returned linkedin_url with each address so you can match the contact to your original spreadsheet.

The Actor looks up stored professional records associated with those profile URLs. You need an Apify account; the input does not require your LinkedIn cookies. You can start with one profile or process a prepared list of up to 100,000 URLs per run.

Start with ordinary person-profile links containing linkedin.com/in/. Keep a sheet with source_row, business context and the original URL. Copy the supported links into a separate lookup list.

  1. Remove spaces around the URLs.
  2. Use a consistent LinkedIn host and HTTPS scheme.
  3. Remove tracking query parameters and trailing slashes for your comparison key.
  4. Keep the profile slug from the verified public URL. Review different slug spellings before treating them as the same person.
  5. Deduplicate the lookup list, while retaining repeated source rows in your master file.

A company page, Sales Navigator record and public person profile are different inputs. If your file starts with Sales Navigator links, use the Sales Navigator export guide to check whether you have supported public profile URLs. Retain unsupported rows with a reason until you can resolve them.

For a short pilot, choose people whose name and employer you can verify. This makes it easier to recognize a stale or unexpected result before processing the full list.

Step 2. Choose work email settings in Apify Console

Open the LinkedIn Email Scraper on Apify, click Try for free and sign in if prompted. Open the editable Input form in Apify Console.

  1. Paste the profile URLs into LinkedIn Profile URLs.
  2. Leave Include Work Emails enabled.
  3. Turn Include Personal Emails off for a work-email-only list.
  4. Keep Only Return Profiles With Emails on when you want a matches file.
  5. Review the current Pricing tab and set the run spending limit.
  6. Click Start, then wait for completion before counting your final results.

The publisher also offers Bulk LinkedIn Email Finder with the same current input controls. Choose one listing for your workflow and keep its name with the run history.

The public input reference describes the switches. The image below is read-only; enter your profile list in the Console form.

LinkedIn Email Scraper reference fields for profile URLs, work emails, personal emails and the email-only output filter
Read-only reference for the public profile input, email categories and result filter.

JSON for a work-email batch

Replace the illustrative profile with a real public URL before starting. Add more profile URLs to the array when your list is ready.

{
  "linkedinUrls": [
    "https://www.linkedin.com/in/YOUR_PROFILE"
  ],
  "includeWorkEmails": true,
  "includePersonalEmails": false,
  "onlyWithEmails": true
}

The two email-type switches determine which contact categories you request. Enable at least one. With only work email enabled, the email-only filter keeps profiles with an available requested email; a personal address alone does not fill your work-email column.

Understand the email filter before interpreting omissions

onlyWithEmails: true is convenient for a contact file. A missing URL in that output can mean no matching stored profile, no requested email, or an incomplete lookup. Keep the original input list to distinguish what was submitted from what was returned.

For a diagnostic pilot, set onlyWithEmails to false. Matching profiles without the requested email can then appear too. Check pricing first because an exported profile may be a billable result even when its requested contact field is empty.

Disabling the filter still does not create a row for every unmatched URL. Your own source sheet remains the basis for a complete report. Compare it with the run status and logs before assigning an outcome.

Dievio

You have the profiles. Find the contacts.

Turn LinkedIn URLs into available work emails and phone numbers with Dievio.

Find work emails

One profile or a whole list

LinkedIn LookupExample
LinkedIn URLContact details
AM
Alex MorganFounder & CEO · Northstaralex@northstar.example
JC
Jamie ChenCo-founder · Formlyjamie@formly.example
Work emailsCompany detailsCSV export

Step 3. Read the returned profile and email fields

Open the completed run’s Dataset. Start with the profile link, name, company and role, then inspect the email. These fields help you check whether the match fits the person you intended to contact.

LinkedIn email result fields
FieldHow to use it
linkedin_urlMatch the returned record to the public profile input.
full_name, first_name, last_nameReview the person’s identity.
job_title, companyCheck employer and role context.
work_emailThe available work address when requested.
personal_emails, personal_emails_countPersonal email results when that category is enabled.
has_emailWhether the record has an available requested email.

Keep work and personal addresses in separate columns. If the returned work domain differs from the expected company, check for a parent brand, a former employer or an older record before accepting it. Preserve disagreements in a review sheet.

The lookup returns stored data, so a current LinkedIn profile can differ from its associated record. An available work email also needs a separate deliverability check if your process requires one. Save the date of lookup with your export.

Step 4. Export CSV and attach matches to your source rows

  1. Choose CSV from the completed Dataset’s export action.
  2. Include the returned profile URL, identity fields and requested email fields.
  3. Save the original CSV with its run ID and Dataset ID.
  4. Normalize returned profile links with the same rules as the input keys.
  5. Look up email results from the original master sheet using an exact profile key.
  6. Keep source rows without matches and record their outcome.

Download JSON as well if personal email arrays are awkward in a spreadsheet. For one row per original prospect, group multiple contact values before joining. Keep a separate contacts table if you need one row per email.

Useful outcomes for the master list
OutcomeMeaning
Work email returnedA reviewed profile has a work-email value.
Profile returned without work emailA matching record appeared, but the requested work contact is empty.
No profile returnedNo saved row maps to the submitted URL; review filters and run completion.
Unsupported inputThe source row still needs a supported public person-profile URL.
Review conflictThe identity, employer or contact candidates need checking.

Process larger URL lists and report useful coverage

The Actor accepts 1–100,000 URLs per run. For a larger source file, prepare batches of distinct supported profiles and retain their source mappings. Save each batch input, selected email types, filter settings, run ID and Dataset ID.

Review the current run price and any account or output allowance before expanding. A spending limit or interrupted run can leave part of the submitted list without saved results. Mark that batch incomplete until the run evidence supports a completed lookup.

Count original rows, unique submitted profiles and profiles with usable work emails separately. If one matched profile appears twice in a five-row master list, that is one matched person and two enriched source rows. Keep those two measurements clear.

When comparing the two email Actor listings or another service, use the same URL list and email categories. Count reviewed usable matches, conflicts and actual charges for the test. Coverage depends on the profiles you submit.

Run LinkedIn email lookup with your agent through Apify MCP

Connect an MCP-compatible agent to https://mcp.apify.com and authorize your Apify account using the official MCP guide. Give the agent your file and the email categories you want.

Use x_guru/linkedin-email-scraper-no-cookies.
Profile input: [MY_URLS_OR_FILE]
Approved event-charge cap USD: [AMOUNT]

Inspect the current schema. Start with
five distinct public /in/ profile URLs.
Keep a mapping to every source row.
Use includeWorkEmails=true,
includePersonalEmails=false and
onlyWithEmails=true.
Apply the approved cap through
callOptions.maxTotalChargeUsd.

Wait for completion. Read all Dataset
pages. Match linkedin_url to the input
profile keys. Preserve name, company,
job_title, work_email and has_email.
Keep unsupported, unmatched and
incomplete cases visible in the master.
Flag identity or employer conflicts.
Save raw output and an enriched CSV.
Report counts, run ID and Dataset ID.
Wait before processing the full list.

The agent starts the Actor with call-actor, checks progress with get-actor-run and reads Dataset pages through get-dataset-items. Its final report should distinguish missing contacts from unprocessed inputs.

For a quick lookup in Dievio, open LinkedIn Lookup. To add numbers, follow the phone finder guide and combine both Actor results. For repeat exports from an application, use the Apify run and Dataset guide.

Keep reading

Build your first list.

100 free credits. No credit card required.

Start free