LinkedIn Profile Scraper + Email (No Cookies)
Pricing
from $5.50 / 1,000 results
LinkedIn Profile Scraper + Email (No Cookies)
Scrape public LinkedIn profiles in bulk with no login or cookies. Get jobs, education, skills, certifications, company data and a work email with confidence score. Spot job changes between runs. Clean JSON for lead enrichment, recruiting and sales prospecting.
Pricing
from $5.50 / 1,000 results
Rating
0.0
(0)
Developer
Data WiKi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
🚀 What is LinkedIn Profile Scraper + Email?
LinkedIn Profile Scraper + Email is a LinkedIn profile scraper that turns public LinkedIn profile links into one structured row per person: jobs, education, skills, company details and an inferred work email. Just paste profile links or profile names, press Start, and download the rows as JSON, CSV or Excel. It needs no cookies, because it reads only what a visitor sees without logging in.
- 🎯 LinkedIn profile scraper no cookies: there is no account, password or session to manage. That is the simplest way to scrape LinkedIn profiles without login.
- 📈 Bulk input: paste a whole list of links, names or both, and duplicates are removed. It works as a bulk LinkedIn profile scraper for lists you already have.
- 📧 Work email with a status: the email search guesses the likely address and tells you how sure it is. It can be wrong, so always read the status.
💡 Need creator data as well? Try the Douyin profile scraper for public creator profiles.
✨ What can this LinkedIn Profile Scraper + Email do?
- 🔎 Read public profiles in bulk from links, profile names (the last part of a link) or long member IDs.
- 🗂️ Collect the full public profile: headline, About text, location, followers, jobs, schools, skills, languages, certifications, projects and more.
- 🏢 Add the current employer: website, industry, size, headquarters and employee count from the employer's public page.
- 📧 Search for a work email with two modes: ask the company's mail server whether the address exists (no mail is sent), or return ranked guesses only.
- 🔁 Track job changes by comparing with the dataset of an earlier run.
- ✂️ Keep only the columns you need with the fields to keep and fields to leave out.
- 📥 Export the data in JSON, CSV, Excel, HTML or XML.
- 🔌 Use the API, schedules, webhooks and integrations with other apps.
📊 What data can this LinkedIn Profile Scraper + Email extract?
As a LinkedIn data extractor, it returns the fields below for each profile. It is a LinkedIn profile data extractor for public pages only. The fields come from the public page, so what you get depends on what that page shows.
| 👤 Full name, first and last name | 📝 Headline and About text | 📍 Location (text, country, city) |
| 📊 Followers and connections text | 💼 Jobs (title, company, dates, duration) | 🎓 Education (school, degree, dates) |
| 🧠 Skills and top skills | 🗣️ Languages | 📜 Certifications |
| 🏅 Projects, volunteering, publications, honors, courses | 🏢 Current company details | 📧 Work email, status and confidence |
| 🫂 Similar profiles ("people also viewed") | 📰 Recent public posts and articles | ✅ Completeness, visibility and data warnings |
Some fields are worked out by the Actor from the profile: seniority, department, years of experience, average time in a job and months in the current role.
⚠️ Note: LinkedIn shows logged-out visitors only part of a profile. Blurred job titles, premium or verified badges, open-to-work flags and contact details stay
null, and the row lists the reasons indataWarnings. Photo links can expire.
Data LinkedIn Profile Scraper + Email can't extract
- It does not log in, so private, connection-only and login-only data is never collected.
- It does not run a LinkedIn profile search: you give it links or names, and it does not find people by keyword. It is not a LinkedIn candidate finder.
- It is not a LinkedIn sales navigator data extractor, and it does not read Sales Navigator pages.
- It is not a full LinkedIn company data extractor: it reads only the current employer of each profile.
- It does not send messages or connection requests, so it is not one of the LinkedIn automation tools for lead generation that act on your behalf.
- It does not read emails from LinkedIn. The email is inferred, see the FAQ below. Used as a LinkedIn email finder tool, it works on profiles you already have, and the address can be wrong.
- The similar profiles field keeps the "people also viewed" cards of one profile and does not follow them across the network.
- Recent posts and articles are only the few items the public page shows, not a full feed.
💰 How much does it cost to scrape LinkedIn profiles?
LinkedIn Profile Scraper + Email uses pay-per-event pricing: you pay for each profile row it saves, with no subscription to the Actor. Failed or missing profiles are listed in a status table and are not charged. Apify platform usage is billed to you in addition to the events below.
Base pricing
- Results (
main_result): charged once for every profile row saved with anokstatus (this includesok_alias). A profile whose page was only partly visible still counts as a saved row. - Actor start (
apify-actor-start): $0.00005 per run, charged once per GB of memory. The Actor is configured with 1024 MB of memory, which is one GB.
Pricing by plan tier
| Plan tier | Results (per 1,000 profiles) |
|---|---|
| 🆓 Free | $8.00 (0.008 x 1,000) |
| 🥉 Bronze | $7.20 (0.0072 x 1,000) |
| 🥈 Silver | $6.50 (0.0065 x 1,000) |
| 🥇 Gold and above | $5.50 (0.0055 x 1,000) |
Example: 500 profiles on the Gold tier cost 500 x $0.0055 = $2.75, plus the $0.00005 start fee. The same 500 profiles on the Free tier cost 500 x $0.008 = $4.00, plus the start fee. Platform usage comes on top. You can set a maximum spend per run, and the Actor stops cleanly when the limit is reached and keeps the rows already saved.
Why pay-per-event?
- Transparent: you pay for saved profile rows.
- Predictable: you can estimate the cost from the number of links.
- No idle charges: waiting time between requests is not billed as an event.
🛠️ How do I use LinkedIn Profile Scraper + Email to scrape LinkedIn profiles?
- Create a free Apify account.
- Open LinkedIn Profile Scraper + Email in the Apify Store.
- Paste profile links into Profile links, or add profile names, then pick What to collect.
- Click Start and watch the log; each profile appears in the Output tab as soon as it is saved.
- Download the data as JSON, CSV or Excel, or fetch it with the API.
Because it is a LinkedIn profile scraper online, it runs in the cloud and there is nothing to install. It is not a LinkedIn profile scraper extension, so you do not need Chrome.
⬇️ Input
Only Profile links (urls) is required. You can also add profile names (publicIdentifiers), a mixed list (queries) and long member IDs (profileIds); all are merged and de-duplicated. Here is a simple example input (two fictional profiles, with the email search on):
{"urls": ["https://www.linkedin.com/in/example-person-one","https://www.linkedin.com/in/example-person-two"],"maxProfiles": 10,"profileScraperMode": "Profile details + email search","emailVerification": "smtp","acceptUnverifiedEmail": false}
Open the Input tab for a full explanation of every field.
Max profiles
maxProfiles stops the run after that many profiles. The default is 10, the allowed range is 0 to 1,000,000, and 0 means no cap. Set 0 or a larger number when you scrape a long list.
What to collect and email checking
profileScraperMode is either Profile details or Profile details + email search. The LinkedIn profile scraper email search is optional and is off when you choose Profile details. With the email search, emailVerification is smtp (ask the company's mail server whether the address exists, no mail is sent) or none (ranked guesses only). Company details are always switched on when the email search is on, because the search needs the employer's website.
Show best unverified guess
acceptUnverifiedEmail is off by default. When no address could be confirmed and this is off, email stays null and only the status says what happened. Turn it on to also receive the most likely guess, and treat it as a guess.
Profile IDs
Long member IDs that start with ACoA are accepted, but public pages rarely resolve them, so those rows usually come back as not_found. Links and names work best.
Fields to keep and leave out, and job-change monitoring
outputFields keeps only the listed fields (status and query always stay) and excludeFields removes fields afterwards. Pick the dataset of an earlier run in compareWith to add changes and jobChange to profiles found in both runs.
Proxy
The run starts without a proxy. If LinkedIn refuses requests, it switches to a proxy and stays there. The proxyConfiguration field lets you choose proxy settings.
⬆️ Output
Results appear in the Output tab as separate tables: profiles, about, emails, company, experience, education, skills, languages, certifications, projects and awards, similar profiles, recent posts, recent articles, and data quality and changes. A second table, Input status, has one row for every input, failed ones included, and a Run summary holds the totals. Export as JSON, CSV or Excel, and pick or leave out fields before exporting, so you can export LinkedIn profiles to CSV with only the columns you need. Every row is structured JSON, so it can serve as LinkedIn profile data for AI tools or notebooks.
Example output (illustrative)
This is a fictional row, shortened. It does not describe a real person.
{"publicIdentifier": "example-person-one","linkedinUrl": "https://www.linkedin.com/in/example-person-one","firstName": "Alex","lastName": "Example","fullName": "Alex Example","headline": "Head of Sales at Example Corp","location": { "linkedinText": "Example City, Exampleland" },"followerCount": 1200,"currentCompany": "Example Corp","currentTitle": "Head of Sales","seniority": "head","department": "sales","experience": [{ "position": "Head of Sales", "companyName": "Example Corp", "isCurrent": true }],"company": { "name": "Example Corp", "industry": "Software Development", "website": "https://www.example.com" },"email": null,"emailStatus": "smtp_unavailable","emailConfidence": 25,"status": "ok","completeness": 80,"query": "https://www.linkedin.com/in/example-person-one"}
Output fields explained
| Field | Meaning |
|---|---|
status | ok, ok_alias (the page resolved to a different identifier than requested), not_found, blocked, error, parse_error or skipped. |
error | A short note when the status is not ok. |
emailStatus | How the email result was reached, for example verified, inferred, accept_all_guess, unverified_guess, smtp_unavailable, not_found, no_name, no_domain, no_mx. |
emailConfidence | A fixed score for each outcome, not a probability. |
email | The address, or null when none could be confirmed and unverified guesses are off. |
completeness | Share of ten key fields that were found, in percent. |
profileVisibility | public, partial or restricted, depending on how much the page showed. |
dataWarnings | Reasons a row may be thinner than it looks. |
changes, jobChange | Differences from the earlier run, only when compareWith is set. |
🔒 Personal data and responsible use
This Actor handles personal data: names, job history, photos, locations and inferred work emails. It collects only what a visitor can see without logging in, but public data is still personal data.
- ⚖️ You decide the purpose. You need a lawful basis for collecting and storing the data, for example under GDPR or CCPA, and you must handle access and deletion requests.
- 📨 Outreach rules apply. Anti-spam and e-privacy laws apply to any email you send, and an inferred address may belong to the wrong person or not exist.
- 📜 Check the site's terms. LinkedIn's terms may restrict automated collection. Read them and decide at your own risk.
- 🧹 Collect less. Use the fields to keep and leave out to store only what you need, and delete data you no longer need.
This is not legal advice, and the Actor makes no promise that your use is lawful.
🎯 Use cases
- 🎯 Lead enrichment: add job history, seniority and a likely work email to contacts you already hold in a CRM or a LinkedIn lead generation tool. Use it as one step in B2B lead enrichment with email.
- 📋 Sales prospecting: build a sales prospecting list from LinkedIn profiles you already chose, with title, company and company size in one table.
- 👔 Recruiting: read skills, education and experience of candidates you already know, as input to your own LinkedIn recruiting sourcing tool.
- 🔄 Job-change alerts: run the same list again with
compareWithto track job changes of key contacts with a simple LinkedIn job change tracker. - 🧩 CRM data: add public profile data to your CRM rows for LinkedIn profile enrichment, and employer details for LinkedIn contact enrichment. The same rows also support LinkedIn person enrichment of single records.
- 🤖 AI and research: feed the clean JSON rows into a research notebook or an AI agent.
- 🫂 Similar people: use the similar profiles field to see who else visitors look at on one profile.
- 📰 Recent activity: read the recent public posts and articles that the profile page shows.
🔗 What are other tools for LinkedIn profile data?
- Douyin creator profile data: public creator profiles with followers, posts and hashtags, no login.
- Facebook group scraper: posts, comments, authors and member counts from public groups, useful for lead and community research.
- Instagram hashtag scraper: find creators and reels by hashtag for influencer discovery.
- Facebook comment scraper: comments and replies from public posts for sentiment and lead research.
For help with runs, schedules and API calls, see the Apify documentation.
❓ Frequently asked questions
How does LinkedIn Profile Scraper + Email work?
You give it public profile links or names. It opens each public profile as a visitor would, reads the details, optionally adds the employer's public details and an email search, and saves one row per profile. Rows appear in the Output tab while the run is still going.
Can I scrape LinkedIn profiles without login?
Yes. It is a LinkedIn scraper no login is needed for, so there is no account, password or session to provide. The trade-off is that you only get the partial view that logged-out visitors see.
Can you scrape LinkedIn profiles in bulk?
Yes. Add as many links or names as you like and set maxProfiles (0 means no cap). Requests are spaced out on purpose to stay polite, so a long list takes time.
How accurate is the work email, and how do I get it?
Treat it as a good guess, not a fact. To find work email from LinkedIn profile data, switch on Profile details + email search; the Actor builds likely addresses from the person's name and the employer's website, and in smtp mode asks the employer's mail server whether the address exists. Many servers accept everything or refuse such checks, and the check can be unavailable from the network a run uses, so results vary. The emailStatus and emailConfidence fields tell you how far to trust each result.
Why is the email empty?
Wondering how to find someone's work email on LinkedIn? The page rarely shows it to logged-out visitors, and this Actor does not read addresses from the page. Each row gets an inferred address instead, which is the only sense in which it is a LinkedIn profile email scraper. When no address could be confirmed, email stays null unless you turn on Show best unverified guess, and the status says what happened.
Why am I getting fewer results or empty fields than expected?
Rows with status not_found mean the profile is unavailable or private; blocked means LinkedIn kept refusing requests, so try again later. Empty fields mean the public page did not show them, and dataWarnings explains thin rows. Rows with the statuses not_found, blocked, error, parse_error and skipped are not charged.
What are the limits of LinkedIn Profile Scraper + Email?
It reads only public pages, cannot search for people, and does not read login-only data. Requests are paced, so very large lists are slow. A blocked or private profile becomes a status row with no profile data.
Can I integrate it with other apps, n8n or Make?
Yes. Through the Apify platform you can connect it with Make, Zapier, Slack, Airbyte, GitHub and Google Sheets, or use webhooks to react when a run finishes. A LinkedIn profile scraper n8n workflow can use the Apify node to call this Actor; see the Apify integrations docs.
Can I use it through an API or from Python?
Yes. Runs can be started and read through the Apify API and the apify-client packages for Node.js and Python. The Actor then works as a LinkedIn profile scraper API for your own apps. A short LinkedIn profile scraper Python script only has to start the Actor and read the dataset. The run URL is https://api.apify.com/v2/actors/data_wiki~linkedin-profile-scraper-email-no-cookies/runs, and a LinkedIn profile API style call can be made from any language. The API tab of this LinkedIn profile scraper Apify Actor shows ready-made code.
Can I use it with AI agents through MCP?
Yes. The hosted Apify MCP server (https://mcp.apify.com) lets an AI agent find an Actor with search-actors, check it with fetch-actor-details and run it with call-actor. That makes it a LinkedIn profile scraper AI agents can run on links you provide.
Is it legal to scrape LinkedIn data?
The Actor reads only public data that any visitor can see, but that does not settle the question. The answer depends on your country, your purpose, how you store and use personal data, the site's terms, and, for outreach, anti-spam and privacy law. You are responsible for your use. This is not legal advice; see the personal data section above.
💬 Your feedback and custom solutions
Found a bug or need another field? Open an issue on the Actor's Issues tab with the input you used and the run link. Need a custom solution? Contact hello.datawiki@gmail.com.