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

Extract structured data from public LinkedIn profiles using URLs or usernames — no LinkedIn login required. Export names, headlines, locations, experience, education, skills, posts, articles, and recommendations as clean JSON. Only successfully retrieved profiles are saved to your dataset.

Pricing

from $1.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Coder

Coder

Maintained by Community

Actor stats

0

Bookmarked

25

Total users

17

Monthly active users

11 days ago

Last modified

Share

Collect structured profile data from public LinkedIn profiles using profile URLs or public usernames. Add one or more entries, start a run, and receive clean JSON records in your Apify dataset — no LinkedIn login required.

Use it for recruiting, lead generation, sales intelligence, investor research, talent mapping, and market analysis — without copying profile sections manually.


What you get

Each saved row is one LinkedIn profile, organized into clear sections:

SectionWhat it contains
IdentityProfile URL, public identifier, success flag, full name, headline, and location
Social statsFollower count, follower label, and connections label when LinkedIn shows them
AboutSummary text from the public profile page
MediaProfile picture and background image URLs when available
currentCompanyCurrent employer name and company page link
currentSchoolCurrent or most recent school name and link
websitesExternal links listed on the profile (label + URL)
experienceWork history — title, company, dates, location, logo, and company URL
educationSchools — degree, dates, activities, logo, and school URL
skillsSkills listed on the public profile
languagesLanguages when published
awardsAwards when published
projectsProjects with descriptions and contributors when visible
postsRecent activity — post URL, text, publish date, likes, and post type
articlesLinkedIn articles — headline, snippet, publish date, likes, and cover image
recommendationsRecommendations — author name, profile link, and text when visible

Results are saved to the dataset as each profile is processed, so you can preview progress before the run finishes.


Quick start on Apify

  1. Open the Actor in the Apify Console.
  2. Under LinkedIn profiles, add one or more profile URLs or public usernames (one per line).
  3. Click Start and open the Dataset tab as profiles are saved.

Supported input formats:

  • Public username: satyanadella
  • Full profile URL: https://www.linkedin.com/in/williamhgates
  • Regional profile URL: https://pk.linkedin.com/in/username

Example input:

{
"profiles": [
"satyanadella",
"https://www.linkedin.com/in/williamhgates",
"https://www.linkedin.com/in/dharmesh"
]
}

Input parameters

LinkedIn profiles

TypeList of text entries (one profile per line)
RequiredYes — at least one entry
FormatsPublic username, linkedin.com/in/... URL, or regional LinkedIn URL (pk.linkedin.com, uk.linkedin.com, etc.)

Duplicate entries in the same run are processed once.

Invalid entries that cannot be recognized as a profile URL or username are skipped with a warning and saved to the dataset with success: false.


What you will see during a run

The run log is written for end users — messages describe collection progress only.

Typical messages:

  • Starting profile collection for N profile(s).
  • Saved profile: Bill Gates. (after each successful profile)
  • Retrying N profile(s) that could not be retrieved on the first attempt.
  • Run complete. Saved N profile record(s); M retrieved successfully.

If a profile cannot be retrieved, you will see a warning for that entry; other profiles in the same run can still succeed.

On the Apify free plan, you may also see a notice when free-tier limits apply (see Free plan limits).


Output overview

Dataset structure

  • Results are saved to a single Apify dataset
  • Each row is one profile object with nested sections (experience, education, posts, etc.)
  • Check success on each row — true means the profile was retrieved; false means only identity fields and an error message are returned

Field presence varies by profile: not every person publishes skills, projects, posts, articles, or recommendations on their public page. Missing sections are omitted from the output — not necessarily a scraper error.


Output fields

Status and identity

FieldDescription
successWhether the profile was retrieved successfully
errorShort explanation when success is false
linkedinUrlCanonical LinkedIn profile URL
publicIdentifierPublic username slug (the part after /in/)
fullNameDisplay name
headlineProfessional headline
locationLocation string when shown
countryCountry code when available
followersNumeric follower count when available
followersTextFollower label as shown on the profile (for example 40M followers)
connectionsConnections label when shown (for example 500+ connections)
aboutAbout / summary text
profilePictureUrlProfile photo URL
backgroundImageUrlCover / background image URL

currentCompany and currentSchool

FieldDescription
nameOrganization name
urlLink to the LinkedIn company or school page

websites

FieldDescription
labelLink label as shown on the profile
urlDestination URL

experience (array)

FieldDescription
titleJob title
companyCompany name
companyUrlLinkedIn company page link
locationRole location or date context when shown
dateRangeDisplay date range
startDateStart date when parsed
endDateEnd date when parsed
logoUrlCompany logo URL

education (array)

FieldDescription
schoolSchool or university name
schoolUrlLinkedIn school page link
degreeDegree or program when listed
dateRangeDisplay date range
startDateStart date when parsed
endDateEnd date when parsed
activitiesActivities and societies when listed
logoUrlSchool logo URL

projects (array)

FieldDescription
nameProject name
dateRangeProject date range when listed
descriptionProject description
contributorsContributors with name and profileUrl when listed

posts (array)

FieldDescription
urlPost URL
textPost body text when available
headlinePost headline when available
publishedAtPublish timestamp when available
likesLike count when available
authorNameAuthor name when shown
postTypeoriginal, repost, or activity

articles (array)

FieldDescription
urlArticle URL
headlineArticle title
snippetShort preview text
publishedAtPublish date when available
likesReaction count when available
imageUrlCover image URL

recommendations (array)

FieldDescription
authorNameRecommender's name
authorProfileUrlRecommender's profile link
textRecommendation text

Other arrays

FieldDescription
skillsList of skill names
languagesList of language names
awardsList of award names

Example output

The excerpts below come from a real run of public profiles. Full output is available in the run dataset.

Example input

{
"profiles": [
"williamhgates",
"https://www.linkedin.com/in/dharmesh",
"michelleobama"
]
}

Excerpt — successful profile with experience, posts, and articles

{
"linkedinUrl": "https://www.linkedin.com/in/williamhgates",
"publicIdentifier": "williamhgates",
"success": true,
"fullName": "Bill Gates",
"headline": "Chair, Gates Foundation and Founder, Breakthrough Energy",
"location": "Seattle, Washington, United States",
"country": "US",
"followers": 40466431,
"followersText": "40M followers",
"connections": "8 connections",
"about": "Chair of the Gates Foundation. Founder of Breakthrough Energy. Co-founder of Microsoft. Voracious reader. Avid traveler. Active blogger.",
"currentCompany": {
"name": "Gates Foundation",
"url": "https://www.linkedin.com/company/gates-foundation?trk=public_profile_topcard-current-company"
},
"currentSchool": {
"name": "Harvard University",
"url": "https://www.linkedin.com/school/harvard-university/?trk=public_profile_topcard-school"
},
"experience": [
{
"title": "Co-chair",
"company": "Gates Foundation",
"companyUrl": "https://www.linkedin.com/company/gates-foundation?trk=public_profile_experience-item_profile-section-card_image-click",
"dateRange": "2000",
"startDate": 2000
},
{
"title": "Co-founder",
"company": "Microsoft",
"companyUrl": "https://www.linkedin.com/company/microsoft?trk=public_profile_experience-item_profile-section-card_image-click",
"dateRange": "1975",
"startDate": 1975
}
],
"education": [
{
"school": "Harvard University",
"schoolUrl": "https://www.linkedin.com/school/harvard-university/?trk=public_profile_school_profile-section-card_image-click",
"dateRange": "1973 - 1975",
"startDate": 1973,
"endDate": 1975
}
],
"posts": [
{
"url": "https://www.linkedin.com/posts/williamhgates_contrailbench-activity-7475933533346381832-unQ5",
"text": "Contrails.org has launched a new tool that compares contrail forecasts with real-world observations…",
"publishedAt": "2026-06-25T15:30:50.459Z",
"likes": 596,
"authorName": "Bill Gates",
"postType": "original"
}
]
}

Excerpt — profile with projects, skills, and articles

{
"linkedinUrl": "https://www.linkedin.com/in/dharmesh",
"publicIdentifier": "dharmesh",
"success": true,
"fullName": "Dharmesh Shah",
"headline": "Founder and CTO at HubSpot. Helping millions grow better.",
"skills": [
"Entrepreneurship",
"Start-ups",
"SaaS",
"Software as a Service (SaaS)"
],
"languages": [
"English",
"Gujarati"
],
"projects": [
{
"name": "agent.ai",
"dateRange": "Apr 2024",
"description": "Agent.ai is the professional network for AI agents. Discover, build and engage AI agents."
}
],
"articles": [
{
"url": "https://www.linkedin.com/pulse/learning-write-your-first-ai-loop-dharmesh-shah-rbhle",
"headline": "Learning To Write Your First AI Loop",
"snippet": "Boris Cherny, the creator of Claude Code, has given up on prompting AI…",
"publishedAt": "2026-06-11T19:08:25.000+00:00",
"likes": 554
}
]
}

Excerpt — profile that could not be retrieved

{
"linkedinUrl": "https://www.linkedin.com/in/michelleobama",
"publicIdentifier": "michelleobama",
"success": false,
"error": "LinkedIn blocked the request"
}

When success is false, the dataset row contains the profile identifier and a user-friendly error message. No partial profile data is included.


Free plan limits

On the Apify free plan, the Actor may automatically apply:

LimitValue
Profiles processed per run2 (only the first entries in your list)

Additional profiles in the same run receive a dataset record with success: false and an error message explaining the limit.

Paid Apify plans can process the full input list without this cap. If limits apply, the run log will include a short notice.


Public profiles and data coverage

No LinkedIn login required
The Actor reads publicly visible profile pages. It does not sign in to LinkedIn and does not use your account or cookies.

Guest view vs signed-in view
Results reflect what LinkedIn shows to visitors who are not logged in. Compared with what you see when signed in, output may include:

  • Fewer experience or education entries
  • Shorter or truncated About text
  • Limited activity, posts, or articles
  • Missing skills, recommendations, or contact details

Coverage varies by profile and by each member's privacy settings.

High-profile or restricted profiles
Some profiles may return success: false with messages such as "LinkedIn blocked the request" or "Profile not found." Retrying the run later or reducing batch size can help in some cases.

Activity and posts
Only activity visible on the public profile page is collected. Full post history or private activity is not available without a logged-in session.

Compliance
You are responsible for using collected data in line with applicable laws and LinkedIn's terms of service.


Tips for best results

  1. Use public usernames or full profile URLs — Both formats work; regional URLs (pk.linkedin.com/in/...) are supported.
  2. Start with a small batch — Test with 5–10 profiles before large exports.
  3. Check success on every row — Filter the dataset on success: true for completed profiles only.
  4. Expect variation — Executives, creators, and private individuals expose different sections publicly.
  5. Schedule recurring runs — Use Apify schedules to refresh profile data for your target list over time.
  6. Export flexibly — Download the dataset as JSON, CSV, Excel, or connect via API to your CRM or data warehouse.
  7. Deduplicate on publicIdentifier — Use the username slug as a stable key across runs.

Frequently asked questions

Why is success false for some profiles?
The profile may be private, restricted, temporarily unavailable, or blocked during that run. Check the error field for a short explanation.

Why is my About text truncated?
LinkedIn often shows a shortened About section to non-logged-in visitors. The full text visible when you are signed in may not appear in the output.

Why are skills or recommendations empty?
Those sections are only included when LinkedIn publishes them on the public profile page. Many profiles hide some sections from guest viewers.

Can I scrape company pages or job listings?
This Actor is built for person profiles (linkedin.com/in/...). Company and job pages are not supported.

Why does the same person look different from my browser?
If you are signed in to LinkedIn, you may see more data than a public guest visitor. This Actor matches the guest view.

Will failed profiles be charged?
Billing depends on the Actor's pricing model on the Apify Store — see the Pricing tab on the listing. Failed profiles are still saved to the dataset with success: false so you can audit results.

Can I run hundreds of profiles at once?
Yes on paid plans. Profiles are processed in parallel; results appear in the dataset as each one completes.


Support

For Actor-specific issues, use the Issues tab on the Apify Store listing or contact the publisher through Apify.

For platform questions (runs, billing, API, schedules), see Apify documentation and Apify support.