Linkedin Profile Scraper
Pricing
from $1.00 / 1,000 results
Linkedin Profile Scraper
Scrape LinkedIn public profiles without login. Get name, headline, experience, education, followers, and recent articles.
Pricing
from $1.00 / 1,000 results
Rating
1.9
(12)
Developer
Crawler Bros
Maintained by CommunityActor stats
11
Bookmarked
1.4K
Total users
96
Monthly active users
71 days
Issues response
10 days ago
Last modified
Share
LinkedIn Profile Scraper — Extract LinkedIn Data Without Login or Cookies
Scrape any public LinkedIn profile with no login, no cookies, and no LinkedIn account required. Get verified names, headlines, work history, education, certifications, honors & awards, test scores, organizations, volunteer experience, projects, personal websites, follower counts, and recent posts — all as clean, structured JSON, ready for lead generation, recruiting, sales prospecting, and research workflows.
Quick answer
Can you scrape LinkedIn profiles without a login? Yes. This actor is 100% cookie-less — it reads only what LinkedIn already serves to anonymous, logged-out visitors, so there's no account to create, no session token to manage, and no risk of an account getting flagged. Feed it a list of LinkedIn profile URLs (or plain usernames) and get back one structured row per profile.
Why use this LinkedIn scraper
- No login required — zero LinkedIn credentials, cookies, or session tokens needed, ever. Point it at a URL and get data back.
- Works on real, everyday profiles — not just celebrities and executives. Live-verified across diverse batches of founders, engineers, marketers, and ordinary professionals with 100% success on accessible profiles.
- Rich, real data — certifications with credential IDs and verification links, honors & awards, test scores, organization memberships, volunteer experience, personal projects, and portfolio/website links, sourced directly from LinkedIn's own public profile page — not guessed, not fabricated.
- Company intelligence built in — automatically enriches the current employer with headcount, industry, HQ, website, and logo from the company's own LinkedIn page.
- Honest, garbage-free output — no
nullfields, no placeholder text, no fabricated emails or phone numbers. If a field genuinely can't be extracted, it's simply omitted from that row instead of being faked. - Built-in data integrity checks — automatically detects and discards LinkedIn's own anti-scraping redactions (asterisk-masked text) and cross-verifies that the returned profile actually matches the one requested, so you never get silently wrong data.
- Fast, concurrent processing — multiple profiles scraped in parallel.
Input
| Field | Type | Required | Description |
|---|---|---|---|
profileUrls | string[] | Yes | LinkedIn profile URLs or usernames to scrape |
enrichCompany | boolean | No | Fetch the current employer's LinkedIn company page for extra detail (size, industry, website, HQ, logo). Default true. Adds ~30-90s per unique company (cached within a run) — disable for faster runs. |
Supported profile URL formats
The actor auto-normalizes any of these to the same canonical profile:
https://www.linkedin.com/in/williamhgateslinkedin.com/in/williamhgatesin/williamhgateswilliamhgates(bare handle)
Example input
{"profileUrls": ["https://www.linkedin.com/in/williamhgates","satyanadella","in/reidhoffman"]}
How it works
LinkedIn blocks most automated guest-profile requests outright. This actor routes every fetch through an anti-bot-aware proxy that solves that challenge server-side, then parses two independent, publicly-served data sources on the profile page: the structured JSON-LD block (name, headline, positions, education, followers) and a set of server-rendered page sections most scrapers miss entirely (certifications, honors, test scores, organizations, volunteer work, projects, and personal websites). A masked-title/company safety net strips out any LinkedIn-redacted text so it's never mistaken for real data, and an identity-verification check confirms the returned profile is actually the one you asked for.
Two practical notes:
- Per-profile latency is 30-90 seconds — this is real anti-bot challenge-solving time, not a slow client. Budget accordingly for large batches, or split them across multiple runs.
- Job titles and past-employer names are occasionally unavailable — LinkedIn's own guest-visibility policy redacts this specific text for some viewer/profile combinations. When that happens, the actor omits the field rather than returning placeholder text. The current employer's name (via
currentCompany) is far more reliably available even when the title isn't.
Output
One row per profile. Fields that couldn't be extracted are omitted entirely — there are no null values anywhere in the dataset.
Profile fields
| Field | Type | Example |
|---|---|---|
name | string | "Bill Gates" |
headline | string | "Chair, Gates Foundation and Founder, Breakthrough Energy" |
location | string | "Seattle, Washington, United States" |
summary | string | About / bio text |
profileUrl | string | "https://www.linkedin.com/in/williamhgates" |
profilePicture | string | Profile photo URL |
currentTitle | string | Current job title (when not redacted by LinkedIn — see Limitations) |
allTitles | string[] | All job titles listed on the profile |
currentCompany | object | Current employer, enriched with company page data (see below) |
currentPositions | object[] | Current work positions |
pastPositions | object[] | Past work positions |
education | object[] | Education history |
followersCount | integer | Followers count |
recentArticles | object[] | Recent posts / articles with title, URL, publish date, likes |
certifications | object[] | Licenses & certifications — issuer, issue date, credential ID, credential URL |
honorsAndAwards | object[] | Honors & awards — title, issuer, date, description |
testScores | object[] | Test scores — name, score, date |
organizations | object[] | Organization memberships — name, position, description |
volunteerExperience | object[] | Volunteer roles — role, organization, description |
projects | object[] | Personal/academic projects — title, date range, description |
websites | object[] | Personal websites/portfolio links — label, url |
inputUrl | string | The URL/handle you supplied |
order | integer | Index of this result in the input list |
scrapedAt | string | ISO-8601 timestamp |
currentCompany sub-fields
| Field | Type | Example |
|---|---|---|
name | string | "Microsoft" |
url | string | "https://www.linkedin.com/company/microsoft" |
slug | string | "microsoft" |
employeeCount | integer | 233092 — exact headcount from the company's LinkedIn page |
size | string | "10,001+ employees" — LinkedIn's bucketed size range |
industry | string | "Software Development" |
website | string | "https://news.microsoft.com/" |
headquarters | string | "Redmond, Washington" |
organizationType | string | "Public Company" |
logoUrl | string | Company logo image URL |
specialties | string[] | Company-listed specialty tags (only present when the company page has them) |
Company enrichment requires enrichCompany: true (default) and only applies to the current employer.
Certifications, honors, test scores, organizations, volunteer experience, projects, websites
These come from LinkedIn's own public profile page — real, server-rendered sections any anonymous visitor can see (credential IDs, issue dates, project descriptions, verification links). Only present when the profile owner has filled in that section.
Position sub-fields
company, title, companyUrl, startDate, endDate, location, description
Education sub-fields
school, schoolUrl, degree, fieldOfStudy, startDate, endDate
Example output row
{"name": "Satya Nadella","headline": "Chairman and CEO at Microsoft","location": "Redmond, Washington","summary": "As chairman and CEO of Microsoft, I define my mission...","profileUrl": "https://www.linkedin.com/in/satyanadella","profilePicture": "https://media.licdn.com/dms/image/...","currentTitle": "Chairman and CEO","currentCompany": {"name": "Microsoft","url": "https://www.linkedin.com/company/microsoft","slug": "microsoft","employeeCount": 233092,"size": "10,001+ employees","industry": "Software Development","website": "https://news.microsoft.com/","headquarters": "Redmond, Washington","organizationType": "Public Company","logoUrl": "https://media.licdn.com/dms/image/..."},"followersCount": 12124422,"inputUrl": "satyanadella","order": 0,"scrapedAt": "2026-08-20T12:00:00.000000+00:00"}
Use cases
- Lead generation & sales prospecting — enrich a list of LinkedIn URLs with current role, employer, and company intel without touching a login
- Recruiting & talent sourcing — build candidate lists, verify work history, education, and certifications at scale
- Sales intelligence — monitor key people and company data at target accounts
- CRM & database enrichment — append verified profile and company data to existing contact records
- Academic & market research — analyze career trajectories, credentials, and industry trends across large profile sets
- Due diligence & background research — cross-reference public credentials, honors, and project history
Frequently asked questions
Do I need a LinkedIn account, login, or cookie to use this scraper? No. This actor never asks for or uses LinkedIn credentials, session cookies, or authentication tokens of any kind. It only reads data LinkedIn already serves to anyone browsing logged out.
Is it possible to scrape LinkedIn without logging in? Yes — that's exactly what this actor does. LinkedIn serves a substantial amount of structured public data (name, headline, work history, education, certifications, honors, projects, followers) to anonymous visitors; this actor extracts it reliably at scale.
Can I get someone's email address or phone number? No, and this actor will never fabricate one. LinkedIn does not expose contact information on the public profile page to anonymous visitors, and only data genuinely visible on the page is extracted — never guessed or pattern-generated.
Why is the job title missing on some profiles? LinkedIn applies its own visibility policy that occasionally redacts job-title and past-employer text for anonymous viewers, independent of this actor. Rather than return LinkedIn's placeholder asterisks as if they were real data, the actor omits the field entirely when this happens. The current employer's name is usually still available even when the title isn't.
Does this scraper work on non-celebrity, everyday LinkedIn profiles? Yes. Unlike scrapers that only reliably work on globally-famous profiles, this actor is built and tested specifically against ordinary professional profiles — the kind used for lead generation and recruiting.
What happens if a profile is private or fully restricted from public view? If the profile owner has configured their account to be completely hidden from logged-out visitors, no data is available — this reflects that person's own privacy choice, not a limitation of the scraper.
How accurate and up to date is the data? Every field is extracted live at run time directly from LinkedIn's current public profile page — nothing is cached, guessed, or backfilled from a stale database.
How many profiles can I scrape in one run? There's no hard limit. Each profile takes roughly 30-90 seconds due to real anti-bot challenge-solving, plus additional time for company enrichment on first-seen employers. For very large batches (100+), raise the run timeout or split the input across multiple runs.
Does this work outside the United States?
Yes. The actor uses a US proxy by default when available; you can configure a different region via Apify Proxy settings, and profiles on regional LinkedIn domains (e.g. uk.linkedin.com, de.linkedin.com, pk.linkedin.com) are fully supported.
Limitations
- Contact info is never returned — email and phone are never exposed by LinkedIn on the public profile page, and this actor does not guess or fabricate them
- Skills and languages are not available — these exist only behind LinkedIn's authenticated member API and are not present on any public/guest profile page. Certifications, honors, test scores, organizations, volunteer experience, and projects ARE available — LinkedIn does render those sections for anonymous visitors.
- Job titles and past-employer names are sometimes unavailable — LinkedIn's own guest-visibility policy occasionally redacts this text server-side; the actor never substitutes placeholder text, it simply omits the field
- Fully private profiles return no data — reflects the profile owner's own privacy settings, not a scraper gap
- Per-profile latency is 30-90 seconds — the cost of reliably getting past LinkedIn's anti-bot defenses without requiring a login
Explore the rest of the LinkedIn suite
Need a different LinkedIn surface? Pair this actor with any of the others in the LinkedIn Suite — all published under the same publisher.
| Actor | What it scrapes |
|---|---|
| LinkedIn Comments Scraper | All comments + reply threads on a post |
| LinkedIn Company Employees Scraper | Employee list for any company (by URN) |
| LinkedIn Company Info Scraper | Company About page (size, HQ, industry, specialties) |
| LinkedIn Company Posts Scraper | Posts published from a company page |
| LinkedIn Events Scraper | Events by keyword/URL with full event detail |
| LinkedIn Hashtag Posts Scraper | Posts ranked under a #hashtag |
| LinkedIn Jobs Scraper | Job listings via the public jobs-guest API |
| LinkedIn Jobs Scraper Ultra | Same as jobs-scraper + full detail enrichment |
| LinkedIn Learning Courses Scraper | LinkedIn Learning course catalog by keyword |
| LinkedIn People Search Scraper | People search with every LinkedIn facet (role, company, school, location, etc.) |
| LinkedIn Post Reactions Scraper | Reactors on a post (name, headline, reaction type) |
| LinkedIn Post Scraper | Full post (text, media, engagement counts, author) |
| LinkedIn Post Search Scraper | Posts matching a keyword (with date/author/network filters) |
| LinkedIn Profile Posts Scraper | All posts/reposts/articles for one profile |
| LinkedIn Profile Scraper Pro | Profile fields + extras (recommendations, organizations, languages) |
| LinkedIn Profile Scraper Pro Ultra | Pro + premium fields (contact info, followers list when allowed) |
| LinkedIn Profile Scraper Ultra | Profile + the full upstream dash-120 surface |
| LinkedIn Profile Search by Name | Search profiles by person name (great for matching CSVs of names) |
| LinkedIn Schools Alumni Scraper | Alumni list for any LinkedIn school page |
| LinkedIn Top Content Scraper | Trending / top-engagement posts by topic |
| LinkedIn User Activity Scraper | Reactions + comments + posts feed for one profile |
Note: this actor is cookie-less by design. Some other actors in the suite still use a cookie input for authenticated surfaces — check each actor's own README for its specific input requirements.