LinkedIn Profile Scraper avatar

LinkedIn Profile Scraper

Pricing

from $1.00 / 1,000 profile scrapeds

Go to Apify Store
LinkedIn Profile Scraper

LinkedIn Profile Scraper

Scrape public LinkedIn profiles by URL or username, no login or cookies. Get full work history with job titles, education, complete skills, certifications, languages, projects and honors as JSON, plus optional recent posts with comments. Only retrieved profiles are charged.

Pricing

from $1.00 / 1,000 profile scrapeds

Rating

5.0

(1)

Developer

Coder

Coder

Maintained by Community

Actor stats

1

Bookmarked

164

Total users

70

Monthly active users

4 days ago

Last modified

Share

Scrape public LinkedIn profiles from a list of profile URLs or usernames, without a LinkedIn account, login or cookies. For each profile you get the full work history (job titles, companies, dates, descriptions), education, the complete skills list, certifications, languages, projects, volunteering, honors, publications, patents and more, as clean JSON.

Use it for recruiting and sourcing, lead enrichment, sales intelligence, investor and expert research, and talent mapping.


Why this LinkedIn scraper

  • No account needed. It never signs in, so there is no risk to your LinkedIn account and no cookies to paste in.
  • Full experience entries. Every job has its title, company, company page link, employment type, dates, duration, location, workplace type (on-site, hybrid or remote) and full description. Several roles at one company come back as separate entries.
  • The complete skills list. It returns every skill on the profile (50+ on many profiles), not just the first 20.
  • Every profile section. Education with degree and field of study, certifications with issuer and date, languages with proficiency, projects, volunteering, honors and awards, publications, patents, courses, organizations and causes.
  • Results as they arrive. Each profile is saved the moment it is ready, so you can watch the dataset fill while the run goes on.
  • You pay only for delivered profiles. Profiles that cannot be retrieved are reported in the run log and not written to the dataset.

Quick start

  1. Open the Actor in Apify Console.
  2. Under LinkedIn profiles, add profile URLs or usernames, one per line.
  3. Click Start, then open the Output tab and watch profiles appear.

Accepted formats:

  • Username: satyanadella
  • Profile URL: https://www.linkedin.com/in/williamhgates
  • Country URL: https://pk.linkedin.com/in/username, https://uk.linkedin.com/in/username
{
"profiles": [
"reidhoffman",
"https://www.linkedin.com/in/williamhgates",
"https://in.linkedin.com/in/username"
]
}

Duplicates are scraped once. Entries that are not LinkedIn profiles are skipped and named in the run log.


What you get

One dataset row per profile:

FieldWhat it contains
fullName, headline, location, countryIdentity
aboutAbout text as LinkedIn shows it to visitors who are not logged in (usually the first ~90 characters)
followers, followersText, connectionsAudience size
profilePictureUrl, backgroundImageUrlImages
currentCompany, currentSchoolName and LinkedIn page link
experienceEvery job: title, company, companyUrl, employmentType, dateRange, startDate, endDate, current, duration, location, workplaceType, description, logoUrl
educationschool, schoolUrl, degree, fieldOfStudy, dates, grade, activities, description, logoUrl
skillsEvery skill name
certificationsname, issuer, issuedDate, expirationDate, credentialId
languages / languageDetailsLanguage names / names with proficiency
projectsname, dates, description, contributors
volunteeringrole, organization, organizationUrl, dates, cause, description
honors / awardsHonors with issuer, date, description / award titles
publicationstitle, publisher, date, description
patents, courses, testScores, organizations, causesWhen listed on the profile
posts, articlesRecent public activity and LinkedIn articles
recentPosts, recentPostCountOptional (Include recent posts): the person's own recent posts with text, exact date, reactions, comment count, media and optional top comments
websitesLinks listed on the profile
linkedinUrl, publicIdentifierProfile link and username, a stable key across runs

Sections a person has not filled in are left out of that row rather than saved empty.

Example (real run, shortened)

{
"linkedinUrl": "https://www.linkedin.com/in/reidhoffman",
"publicIdentifier": "reidhoffman",
"fullName": "Reid Hoffman",
"location": "United States",
"connections": "500+ connections",
"experience": [
{
"title": "Co-Founder, Executive Board Chair",
"company": "Manas AI",
"companyUrl": "https://www.linkedin.com/company/106067845/",
"dateRange": "Jan 2025 - Present",
"startDate": "Jan 2025",
"current": true,
"duration": "1 yr 9 mos",
"description": "Manas AI leverages proprietary AI, generative computational chemistry..."
}
],
"education": [
{
"school": "Babson College",
"schoolUrl": "https://www.linkedin.com/school/6716/",
"degree": "Honorary Doctor of Laws",
"fieldOfStudy": "Entrepreneurship/Entrepreneurial Studies",
"dateRange": "2012 - 2012"
}
],
"skills": [
"CEOs",
"Founding",
"Early-Stage Startups",
"Start-ups",
"Entrepreneurship",
"Strategy"
],
"volunteering": [
{
"role": "Chair, Board of Directors",
"organization": "Opportunity@Work",
"dateRange": "Jun 2016 - Present",
"cause": "Economic Empowerment"
}
],
"honors": [
{
"title": "Sigillum Magnum",
"issuer": "University of Bologna",
"date": "Sep 2023"
}
],
"publications": [
{
"title": "Superagency",
"publisher": "Authors Equity",
"date": "Jan 28, 2025"
}
]
}

What is not available without logging in

This Actor collects what LinkedIn shows to visitors who are not logged in. That covers almost every profile section, with these exceptions:

  • The About section is shortened, usually to its first ~90 characters.
  • Recommendations are generally not included.
  • Some very senior or long careers are cut short by LinkedIn for logged-out visitors (for example, the most recent 13 of 30+ roles).
  • Profiles whose owner turned off public visibility return "Profile not found".
  • Email addresses and phone numbers are not included.

What you will see during a run

The run log is written for you, in plain language:

  • Starting: 25 profile(s), 4 at a time.
  • Progress: 10 of 25 profiles processed, 10 saved.
  • Still working: 12 of 25 profiles processed, 12 saved so far.
  • Could not retrieve some-username - Profile not found.
  • Run complete. Saved 24 of 25 profile(s); the rest could not be retrieved from LinkedIn.

At the end, profiles that could not be retrieved are grouped by reason.


Recent posts (optional)

Turn on Include recent posts to add the person's own recent posts to each profile, in recentPosts: full text, exact publish date, reactions, comment count, images, videos and documents. Turn on Include top comments on posts to add the top public comments of each post at no extra cost.

  • Charged per post delivered (see the Pricing tab). Off by default, so existing runs cost exactly the same.
  • A public profile shows about 10 recent posts, so you get up to 10 per person, and some people have fewer or none.
  • Posts that cannot be loaded are skipped and not charged. The profile itself is always saved.

Free plan

On the Apify free plan each run scrapes the first 2 profiles of your list (and up to 3 recent posts each when enabled), with every section included, so you can check the output before upgrading. The run log says how many were skipped. Paid plans have no per-run cap.


FAQ

Do I need a LinkedIn account or cookies? No. The Actor never signs in and never asks for your credentials.

Why is the About text short? LinkedIn shows logged-out visitors only the start of the About section. No logged-out method gets the full text.

Am I charged for profiles that fail? No. A profile that cannot be retrieved (deleted, hidden or temporarily blocked) is reported in the run log and not saved, so it is not billed.

How fast is it? Usually a few seconds per profile, with several profiles running at once. Rows appear in the dataset as each profile finishes.

Can it scrape company pages, jobs or posts? This Actor is for person profiles (linkedin.com/in/...), including each person's recent posts when Include recent posts is on. Use a dedicated company or jobs scraper for those pages.

How do I match results to my input? Use publicIdentifier (the username). Profiles missing from the dataset are named in the run log with the reason.


Compliance

Use collected data in line with applicable data protection laws and LinkedIn's User Agreement. Only publicly visible profile information is collected.

Support

Use the Issues tab on the Store listing for bugs or feature requests.