LinkedIn Profile Scraper
Pricing
from $2.52 / 1,000 results
LinkedIn Profile Scraper
Scrape LinkedIn profiles without login, cookies, or authentication. Extract public profile data including experience, education, skills, and more.
Pricing
from $2.52 / 1,000 results
Rating
0.0
(0)
Developer
Artificially
Maintained by CommunityActor stats
1
Bookmarked
122
Total users
3
Monthly active users
86 days
Issues response
10 hours ago
Last modified
Categories
Share
LinkedIn Profile Scraper - No Login Required
Scrape LinkedIn profiles without login, cookies, or authentication. Extract public profile data including experience, education, skills, and more.
Use with AI agents (MCP)
This actor works as a tool for AI agents through Apify's MCP server at https://mcp.apify.com: the agent passes LinkedIn profile URLs or usernames and gets back one JSON item per profile. For agents, set compactOutput: true to get slim items without photos and long text blobs, and keep limits small (a handful of profiles per call).
Quick setup (sign in with your Apify account when asked):
- Claude (claude.ai or Claude Desktop): Settings → Connectors → Add custom connector, and paste
https://mcp.apify.com?tools=artificially/linkedin-profile-scraper - Claude Code or Cursor via the Apify CLI (latest version,
apify upgrade):apify mcp install claude-code --tools artificially/linkedin-profile-scraper(usecursorinstead ofclaude-codefor Cursor) - Any MCP client (Cursor, VS Code, Windsurf):
{"mcpServers": {"apify": { "url": "https://mcp.apify.com?tools=artificially/linkedin-profile-scraper" }}}
Try asking:
- "Get the LinkedIn profile of williamhgates: headline, current company, experience and education."
- "For these 20 LinkedIn profile URLs, return name, headline and current company as a table."
Key Features
- No Login Required - Works without LinkedIn credentials
- No Cookies Needed - Uses public profile pages
- Bulk Scraping - Process multiple profiles at once
- Comprehensive Data - Experience, education, skills, certifications
- Only pay for complete profiles - Blocked, login-walled or restricted pages are retried on fresh IPs and, if they still fail, skipped. They are never saved to your dataset and never charged.
- Optional partial data for restricted profiles - Turn on
includeRestrictedProfilesto also keep the public data LinkedIn still shows on restricted profiles, at a lower price.
You only pay for complete profiles
LinkedIn sometimes blocks requests or shows a cut-down page with a sign-in pop-up instead of the real profile. The scraper detects these pages and:
- Retries on a fresh proxy IP with increasing wait times
- Switches to residential proxies for the remaining attempts (on by default, no extra cost to you)
- If the profile still can't be loaded, skips it without saving or charging
Skipped profiles are listed in the FAILED_PROFILES record of the run's key-value store, and a SUMMARY record shows saved vs skipped counts (savedFull, savedRestricted, skipped, skippedByReason), so you can re-run just the failures.
Restricted profiles (optional, partial data)
When you are not logged in, LinkedIn shows a restricted version of many ordinary (non-celebrity) profiles: the headline, job titles, experience details and skills are hidden or masked. Retrying rarely helps, and in large runs only about one in three ordinary profiles comes back complete.
By default restricted profiles are skipped and not charged. If you set includeRestrictedProfiles: true, the scraper keeps the public data those pages still show and saves it as a partial item:
- Partial items are flagged
isRestricted: true(complete profiles haveisRestricted: false). - They are saved to a separate Restricted profiles dataset of the run (see the Output tab or the run's Storage tab), so your main dataset only ever contains complete profiles.
- They are charged with a separate, lower-priced Restricted profile (partial data) event. See the Pricing tab for current rates.
- Hidden job titles are never guessed or filled in.
headlineis alwaysnull, andexperienceandskillsare always empty. - A restricted profile is only saved when it has a real name plus at least a location, a current company or a school. Otherwise it is skipped for free.
| Field | Complete profile | Restricted profile |
|---|---|---|
fullName | Yes | Yes |
headline | Yes | No (always null) |
location | Yes | Yes, when shown |
profilePhoto, backgroundPhoto | Yes | When shown (placeholder images are dropped) |
about | Yes | Short preview only, when shown |
connectionsCount, followersCount | Yes | Yes, when shown |
currentCompany | Yes | Yes, when shown |
experience[] (titles, dates, descriptions) | Yes | No (always empty) |
companies[] (name, companyUrl) | Not included | Companies from the work history whose names are public. No titles or dates, and it can include past employers |
education[] | School, degree, field, dates | School, school URL and dates only |
skills[] | Yes | No (always empty) |
certifications[] | Yes | When shown |
languages[] | Yes | When shown |
volunteerExperience[] | Yes | When shown |
isRestricted | false | true |
What Data You Get
| Field | Description |
|---|---|
fullName | Profile owner's name |
headline | Professional headline |
location | Geographic location |
profilePhoto | Profile picture URL |
about | About/summary section |
connectionsCount | Number of connections |
followersCount | Number of followers |
currentCompany | Current employer |
experience[] | Work history with company, title, duration |
education[] | Schools, degrees, dates |
skills[] | Listed skills |
certifications[] | Professional certifications |
languages[] | Languages spoken |
isRestricted | false for complete profiles, true for partial restricted profiles |
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
profileUrls | array | No | - | Full LinkedIn profile URLs |
usernames | array | No | - | LinkedIn usernames only |
includeExperience | boolean | No | true | Extract work history |
includeEducation | boolean | No | true | Extract education |
includeSkills | boolean | No | true | Extract skills |
includeCertifications | boolean | No | true | Extract certifications |
includeLanguages | boolean | No | true | Extract languages |
includeVolunteer | boolean | No | false | Extract volunteer work |
maxAttemptsPerProfile | integer | No | 4 | Attempts per profile before it is skipped (each on a fresh IP) |
residentialFallback | boolean | No | true | Switch to residential proxies after half the attempts fail |
compactOutput | boolean | No | false | Save slim items with only the key fields. Recommended for AI agents |
includeRestrictedProfiles | boolean | No | false | Also save restricted profiles with partial data (isRestricted: true) at the lower restricted-profile price |
Example Input
{"profileUrls": ["https://www.linkedin.com/in/williamhgates"],"includeExperience": true,"includeEducation": true,"includeSkills": true}
Output Example
{"profileUrl": "https://www.linkedin.com/in/williamhgates","username": "williamhgates","fullName": "Bill Gates","headline": "Co-chair, Bill & Melinda Gates Foundation","location": "Seattle, Washington, United States","profilePhoto": "https://...","about": "Co-chair of the Bill & Melinda Gates Foundation...","connectionsCount": "500+","experience": [{"title": "Co-chair","company": "Bill & Melinda Gates Foundation","companyUrl": "https://www.linkedin.com/company/bill-melinda-gates-foundation","location": "Seattle, WA","duration": "Jan 2000 - Present","startDate": "Jan 2000","endDate": "Present"}],"education": [{"school": "Harvard University","degree": null,"dates": "1973 - 1975"}],"skills": ["Technology", "Leadership", "Philanthropy"],"isRestricted": false,"scrapedAt": "2024-01-20T12:00:00Z"}
Restricted profile (with includeRestrictedProfiles: true, saved to the Restricted profiles dataset):
{"profileUrl": "https://www.linkedin.com/in/example-person","username": "example-person","fullName": "Example Person","headline": null,"location": "Greater Chicago Area","about": "Over the last 7 years I've worked with...","connectionsCount": "500+","followersCount": "18K","currentCompany": "Example Talent Solutions","experience": [],"education": [{"school": "Northern Illinois University","schoolUrl": "https://www.linkedin.com/school/northern-illinois-university/","degree": null,"fieldOfStudy": null,"dates": "2012 - 2016"}],"skills": [],"companies": [{ "name": "Example Talent Solutions", "companyUrl": "https://www.linkedin.com/company/example" }],"isRestricted": true}
Cost
Pay-per-result pricing: a small start fee per run plus a fee per saved profile. Restricted profiles saved with includeRestrictedProfiles are charged at a separate, lower per-profile price, and only that price (they are not also charged as complete profiles). See the Pricing tab for current rates.
Blocked, login-walled and not-found profiles are not saved and not charged. You can also set a maximum cost per run in the run options; the scraper stops cleanly when it is reached.
Tips
- Use Apify Proxy - Strongly recommended for reliable results. Residential fallback is enabled by default
- Batch requests - More efficient than many small runs
- Public profiles only - Private profiles won't return data
- Rate limits - LinkedIn may limit aggressive scraping
Legal Notice
This scraper only accesses publicly available data. Users are responsible for ensuring their use complies with applicable laws and LinkedIn's terms of service.
Support
- Built by: Artificially
- Issues: Report bugs via Apify Console
Related actors
- LinkedIn Company Scraper - Company pages: website, industry, size, headquarters, specialties and funding.
- LinkedIn Company Employees Scraper - Employees featured on a company page with name, title, location and profile URL.
- LinkedIn Jobs Scraper - Job listings by keyword and location with job type, seniority, date and remote filters.
- LinkedIn Posts Scraper - Recent public company posts with text, engagement counts and media type.