LinkedIn Profile Scraper – No Login, Public Data avatar

LinkedIn Profile Scraper – No Login, Public Data

Pricing

$20.99/month + usage

Go to Apify Store
LinkedIn Profile Scraper – No Login, Public Data

LinkedIn Profile Scraper – No Login, Public Data

Extract public LinkedIn profile data without login. Name, headline, company, location, about, skills. Auth wall detection + Google Knowledge Panel fallback. Residential proxy required. Bulk usernames or full names supported. JSON/CSV.

Pricing

$20.99/month + usage

Rating

0.0

(0)

Developer

Scrape Pilot

Scrape Pilot

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

13 hours

Issues response

18 days ago

Last modified

Share

LinkedIn Profile Scraper | Name, Headline, Company, Location & Experience — No Login Required

Scrape LinkedIn profiles by username, profile URL, or full name — without login, without cookies, and without a LinkedIn API key. The most resilient LinkedIn profile scraper on Apify — with auth wall detection, 3-layer fallback, and Google Knowledge Panel backup.


📌 Table of Contents


🔍 What Does This Actor Do?

This LinkedIn profile scraper extracts structured profile data from LinkedIn — name, headline, current position, company, location, about section, experience, education, and connections — without requiring a LinkedIn account, login session, or API key.

What makes this actor different from every other LinkedIn scraper:

  • Works without login — tries three LinkedIn URL variants in sequence before ever asking for credentials
  • Detects auth walls — recognizes when LinkedIn is blocking a request (soft redirect to login page) and automatically switches to the next strategy instead of returning garbage data
  • Falls back to Google Knowledge Panel — when all LinkedIn URLs are blocked, extracts profile data from Google's rich results for the person
  • Accepts full names as input — type "Satya Nadella" instead of a LinkedIn URL and the actor finds the profile automatically
  • Transparent status per profile — every record includes FOUND, PARTIAL, or AUTH_REQUIRED so you always know data quality

No login. No cookies. No API key. Paste usernames, profile URLs, or full names — get structured profile data back.


⚡ Quick Start — 3 Steps

Step 1 — Add LinkedIn usernames, URLs, or full names

{
"profile_urls": [
"satyanadella",
"https://www.linkedin.com/in/sundarpichai",
"Tim Cook",
"https://www.linkedin.com/in/bill-gates"
],
"max_results": 20
}

Step 2 — Click Run The actor tries three LinkedIn URL variants per profile, detects any auth walls, falls back to Google Knowledge Panel if blocked, and returns the richest data available.

Step 3 — Get your LinkedIn profile data

{
"name": "Satya Nadella",
"profile_url": "https://www.linkedin.com/in/satyanadella",
"headline": "Chairman and CEO at Microsoft",
"current_position": "Chairman and CEO",
"company": "Microsoft",
"location": "Redmond, Washington, United States",
"connections": "500+",
"about": "We all need a purpose that animates us...",
"experience_summary": "Chairman and CEO at Microsoft (2014–present); EVP Cloud at Microsoft (2011–2014)",
"education": "MBA - University of Chicago; MS Computer Science - University of Wisconsin",
"search_status": "FOUND",
"data_quality": "Public"
}

Your profiles are in the Dataset tab — export as JSON, CSV, or Excel immediately.


🏆 Why This LinkedIn Profile Scraper?

FeatureThis ActorOther LinkedIn ScrapersManual Research
No login required✅ Attempts without auth⚠️ Require cookies/session✅ But slow
Auth wall detection✅ Auto-detects + switches strategy❌ Returns garbage data
3 URL variants tried per profile✅ linkedin.com + www + mobile❌ One URL only
Google Knowledge Panel fallback✅ Last-resort data source
Full name as input✅ "Satya Nadella" → finds username❌ Username/URL only
FOUND / PARTIAL / AUTH_REQUIRED status✅ Per profile❌ Silent failures
Experience summary extracted✅ Up to 3 roles⚠️ Often missing
Education extracted✅ Up to 2 entries⚠️ Often missing
Bulk processing (any volume)⚠️ Limited
Keyword filter across profiles✅ Built-in
Transparent data provenanceurl_used + data_quality fields

The only LinkedIn profile scraper with built-in auth wall detection, automatic fallback across 3 URL variants, Google Knowledge Panel backup, and full-name search — all in one run.


🎯 Use Cases

🎯 Sales Prospecting & Account Research

Scrape LinkedIn profiles for decision-makers at target accounts before cold outreach. Get current position, company, location, and about section to personalize emails and calls with relevant context. Works on username lists exported from Sales Navigator or Apollo.

🤝 Recruitment & Talent Intelligence

Build candidate profiles from LinkedIn usernames at scale. Extract current title, company, experience summary, and education for initial screening — before investing recruiter time in manual research. Identify candidates' career progression and company tenure at a glance.

🔎 Competitive Intelligence & Executive Tracking

Monitor leadership changes at competitor companies by scraping their executives' LinkedIn profiles. Track when a CTO moves, when a VP of Sales is replaced, or when a new CMO joins — before the press release.

📊 Lead Enrichment for CRM

Enrich a list of LinkedIn profile URLs with structured data — name, title, company, location — and import directly into HubSpot, Salesforce, or Pipedrive. Replace expensive enrichment tools with a direct LinkedIn scrape.

🏢 Investor & VC Due Diligence

Research founding team profiles for investment decisions. Verify claimed experience, check for gaps in employment history, identify educational background, and understand career trajectory — all from public LinkedIn data.

📈 Market Research & People Analytics

Analyze the talent composition of an industry by scraping profiles with a keyword filter. Find all "Head of AI" profiles across companies, or all "Growth Manager" profiles in the fintech sector.

🎓 Academic & HR Research

Build structured datasets of professional profiles for research on career mobility, industry skill distribution, or gender/geographic diversity in leadership roles. All from public LinkedIn data — ethically scraped without login.

📰 Journalism & Background Research

Verify professional claims for interview subjects, sources, or article subjects. The experience_summary and education fields provide a structured career history from the person's own public profile.


📋 What Data You Get

Every LinkedIn profile record contains up to 16 structured fields:

FieldTypeDescriptionExample
namestringFull name"Satya Nadella"
profile_urlstringLinkedIn profile URL"https://www.linkedin.com/in/satyanadella"
url_usedstringWhich URL variant successfully returned data"https://linkedin.com/in/satyanadella/"
headlinestringLinkedIn headline (up to 300 chars)"Chairman and CEO at Microsoft"
current_positionstringCurrent job title"Chairman and CEO"
companystringCurrent company name"Microsoft"
company_urlstringCompany website (if in JSON-LD)"https://microsoft.com"
locationstringCity, state, country"Redmond, Washington, United States"
connectionsstringConnection/follower count"500+"
aboutstringAbout section (up to 1000 chars)"We all need a purpose..."
experience_summarystringUp to 3 recent roles formatted"CEO at Microsoft (2014–present); EVP Cloud..."
educationstringUp to 2 education entries"MBA - University of Chicago; MS Computer Science..."
skillsarrayListed skills (when available)["Leadership", "Cloud Computing", "AI"]
search_statusstringExtraction result status"FOUND" / "PARTIAL" / "AUTH_REQUIRED"
data_qualitystringData completeness label"Public"
source_inputstringOriginal input you provided"satyanadella"
scraped_atstringISO 8601 extraction timestamp"2024-10-30T10:15:00Z"

🔄 3-Layer Extraction System

This LinkedIn profile scraper uses three independent extraction methods in sequence — moving to the next only when the previous is definitively blocked:

Layer 1 — Direct LinkedIn (No-www)

https://linkedin.com/in/{username}/

LinkedIn's no-www domain often serves public profile data without triggering the login wall that www.linkedin.com sometimes shows. This is tried first — it works for a significant portion of public profiles without any proxy at all.

Layer 2 — Standard LinkedIn (www) + Mobile LinkedIn

https://www.linkedin.com/in/{username}/ https://m.linkedin.com/in/{username}/

If Layer 1 is blocked or returns a soft redirect, the actor tries the standard domain, then the mobile domain. Each variant uses different headers (desktop vs mobile User-Agent) to maximize the chance of getting past rate limiting.

Layer 3 — Google Knowledge Panel (Ultimate Fallback)

When all three LinkedIn URL variants return an auth wall, the actor searches Google for [name] linkedin and extracts whatever profile data appears in Google's Knowledge Panel — name, job title, description, and the direct LinkedIn profile link.

This 3-layer system means that even in the worst case — when LinkedIn blocks your IP entirely — you still get a PARTIAL record with publicly available data rather than an empty failure.


🛡️ Auth Wall Detection & Handling

LinkedIn's most common defense is a soft auth wall — the server returns HTTP 200 (not an error) but serves a login-prompt page instead of the profile. Generic scrapers cannot tell the difference and return this garbage data as a real result.

This actor detects auth walls by scanning the first 5,000 characters of each response for LinkedIn's known login-page phrases:

  • "welcome to your professional community"
  • "sign in to linkedin"
  • "join linkedin"
  • "linkedin: log in"
  • "be great at what you do"
  • "1 billion members"
  • "make the most of your professional life"

When an auth wall is detected:

  1. The current URL variant is immediately discarded
  2. A warning is logged: "Auth wall detected at: [URL]"
  3. The next URL variant is tried automatically
  4. If all variants are auth-walled → Google Knowledge Panel fallback is triggered
  5. search_status is set to PARTIAL or AUTH_REQUIRED — never a false FOUND

You never get silently wrong data. Every record tells you exactly what happened.


📥 3 Input Formats Supported

This LinkedIn profile scraper accepts three input formats — mix them freely in a single run:

Format 1 — LinkedIn Username

satyanadella
bill-gates
jeff-weiner

The actor constructs the full LinkedIn URL automatically.

Format 2 — Full LinkedIn Profile URL

https://www.linkedin.com/in/sundarpichai
https://linkedin.com/in/tim-cook

Both www. and non-www variants are accepted and normalized.

Format 3 — Full Name (Auto-Discovery)

Satya Nadella
Sundar Pichai
Jensen Huang

When the input contains a space and no LinkedIn URL pattern, the actor treats it as a full name, Google-searches site:linkedin.com/in "Full Name", extracts the LinkedIn username from the results, and proceeds with normal profile scraping. If the username cannot be found, Google Knowledge Panel data is returned with search_status: PARTIAL.


📊 Search Status — FOUND, PARTIAL, AUTH_REQUIRED

Every record includes a search_status field — so you always know exactly what you got:

StatusMeaningWhat's in the Record
FOUNDLinkedIn served the public profile successfullyFull profile data — name, headline, company, location, about, experience, education
PARTIALLinkedIn was blocked but Google Knowledge Panel returned dataName, headline/title, about (from Google's rich results) — no experience or education
AUTH_REQUIREDAll LinkedIn URLs blocked AND Google KP returned nothingOnly profile_url, note explaining the block, and scraped_at timestamp

How to use status in your workflow:

  • Filter FOUND records for highest-confidence data
  • PARTIAL records are still useful for name, title, and company confirmation
  • AUTH_REQUIRED records indicate the profile needs a fresher residential proxy IP — re-run with a new proxy session

⚙️ Input Parameters

{
"profile_urls": [
"satyanadella",
"https://www.linkedin.com/in/sundarpichai",
"Jensen Huang",
"https://linkedin.com/in/elonmusk"
],
"profile_url": "",
"username": "",
"keyword": "CEO",
"max_results": 20,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
ParameterTypeDefaultDescription
profile_urlsarray or string[]List of LinkedIn usernames, profile URLs, or full names. Mix formats freely.
profile_urlstring""Single profile URL or username shortcut — added to profile_urls automatically
usernamestring""Single LinkedIn username shortcut
keywordstring""Filter results — only return profiles where this keyword appears in headline, company, or about section
max_resultsinteger20Maximum number of profiles to scrape
proxyConfigurationobject⚠️ RequiredApify proxy config — RESIDENTIAL proxy is required for reliable LinkedIn access

📦 Example Input & Output

Single Profile — Full Data Extraction

Input:

{
"profile_urls": ["satyanadella"]
}

Output:

{
"name": "Satya Nadella",
"profile_url": "https://www.linkedin.com/in/satyanadella",
"url_used": "https://linkedin.com/in/satyanadella/",
"headline": "Chairman and CEO at Microsoft",
"current_position": "Chairman and CEO",
"company": "Microsoft",
"company_url": "https://microsoft.com",
"location": "Redmond, Washington, United States",
"connections": "500+",
"about": "We all need a purpose that animates us. Mine is to empower every person and every organization on the planet to achieve more.",
"experience_summary": "Chairman and CEO at Microsoft (2014–present); EVP Cloud and Enterprise at Microsoft (2011–2014); SVP Server and Tools at Microsoft (2009–2011)",
"education": "MBA - Booth School of Business, University of Chicago; MS Computer Science - University of Wisconsin-Milwaukee",
"skills": [],
"search_status": "FOUND",
"data_quality": "Public",
"security": "No Login Required",
"source_input": "satyanadella",
"scraped_at": "2024-10-30T10:15:00Z"
}

Full Name Input — Auto Username Discovery

Input:

{
"profile_urls": ["Jensen Huang", "Lisa Su", "Pat Gelsinger"]
}

What happens: The actor Google-searches site:linkedin.com/in "Jensen Huang", finds jenhsunhuang, then scrapes the LinkedIn profile normally. Returns FOUND or PARTIAL depending on what LinkedIn serves.


Bulk Executive Scraping — 50 Profiles

Input:

{
"profile_urls": [
"satyanadella", "sundarpichai", "tim-cook",
"andy-jassy", "mark-zuckerberg", "...47 more..."
],
"keyword": "CEO",
"max_results": 50
}

Output: Up to 50 profiles filtered to only include those with "CEO" in their headline, company, or about section. Each tagged with FOUND, PARTIAL, or AUTH_REQUIRED so you know exactly what to trust.


Google Knowledge Panel Fallback — What You Get When Blocked

When LinkedIn blocks all URL variants, you still get:

{
"name": "Reid Hoffman",
"profile_url": "https://www.linkedin.com/in/reidhoffman",
"headline": "Co-Founder at LinkedIn, Partner at Greylock",
"about": "Reid Hoffman is a Silicon Valley entrepreneur and venture capitalist...",
"search_status": "PARTIAL",
"data_source": "Google Knowledge Panel",
"source_input": "reidhoffman",
"scraped_at": "2024-10-30T10:18:00Z"
}

A partial record with real data — not an empty failure.


⚡ Performance & Speed

Batch SizeEstimated Time
1 profile~15–40 seconds
5 profiles~1.5–3 minutes
10 profiles~3–6 minutes
25 profiles~8–15 minutes
50 profiles~15–30 minutes
100 profiles~30–60 minutes

Each profile includes a 2–4 second random delay between requests. This is mandatory for LinkedIn — aggressive rate will result in IP blocks. The delay is what keeps long runs stable.

Full name inputs add ~5–10 seconds each (a Google search step is required first).


💰 Cost Estimate

Subscription: $20.99/month · Free Trial: 1 Full Day (no credit card required)

Run SizeApify Compute UnitsApprox. Compute Cost
10 profiles~0.05–0.10 CU< $0.01
25 profiles~0.10–0.20 CU~$0.01
50 profiles~0.20–0.40 CU~$0.02–$0.03
100 profiles~0.40–0.80 CU~$0.03–$0.06
500 profiles/month (daily runs)~2–4 CU/month~$0.16–$0.32

Proxy cost note: Residential proxy is required for reliable LinkedIn access. Apify's RESIDENTIAL proxy is consumed per GB of data — LinkedIn profile pages are small (~50–200KB each), so proxy costs are minimal even for large batches.

Use the 1-day free trial to test on your target profiles and verify data quality before subscribing.


⚠️ Limitations — Honest Overview

Being fully transparent about what this LinkedIn profile scraper can and cannot do:

  • Login-gated data — Connections list, contact info tab, full skill endorsements, and private profiles require LinkedIn login. This actor only accesses publicly visible profile data.
  • 100% FOUND rate not guaranteed — LinkedIn actively protects profiles. Even with residential proxy, some profiles will return PARTIAL or AUTH_REQUIRED. The search_status field tells you exactly what happened for every profile.
  • ⚠️ Residential proxy is mandatory — Without a residential proxy, LinkedIn will block datacenter IPs quickly. The actor logs a clear warning if proxy is not configured.
  • Real-time connection count — LinkedIn shows 500+ for most profiles without login. The exact connection count requires a logged-in session.
  • Full experience and education lists — The actor extracts up to 3 experience entries and 2 education entries from the publicly visible section. Complete employment history is behind login.
  • Skills endorsement counts — Skills are extracted when visible but endorsement counts are not available without login.
  • Private profiles — Profiles set to private or connection-only by their owner cannot be scraped by any tool without login.
  • LinkedIn Sales Navigator — This actor does not access Sales Navigator or LinkedIn Recruiter data.
  • ⚠️ Profile availability may vary by region — LinkedIn's auth wall aggressiveness varies by geography and IP history. Profiles accessible today may require a proxy IP refresh tomorrow.

🔌 Integrations

HubSpot / Salesforce / Pipedrive — CRM Enrichment

Export the Dataset to CSV and import into your CRM. Map name → Contact Name, current_position → Job Title, company → Company, location → Location, profile_url → LinkedIn URL.

Google Sheets — Prospect Research Tracker

Export results to Google Sheets. Color-code by search_status — green for FOUND, yellow for PARTIAL, red for AUTH_REQUIRED. Add outreach status columns for your sales team.

Apify API — Automated Lead Research

// Trigger a LinkedIn profile scrape via API
const run = await fetch("https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_TOKEN"
},
body: JSON.stringify({
profile_urls: [
"satyanadella",
"sundarpichai",
"https://linkedin.com/in/tim-cook"
],
keyword: "CEO",
max_results: 50
})
});

Zapier / Make — Enrichment Trigger

Trigger a profile scrape from a Zapier workflow. When a new lead is added to your CRM with a LinkedIn URL, automatically run this actor and push the enriched data back to the CRM contact record.

n8n — Multi-Stage Research Pipeline

Build an n8n workflow: pull company names from one data source → search LinkedIn usernames → scrape profiles with this actor → score leads → route to outreach sequences.


❓ FAQ

Q: Does this LinkedIn profile scraper require a LinkedIn account? A: No. The actor attempts all three LinkedIn URL variants without any login or cookies. When all variants are blocked, it falls back to Google Knowledge Panel — which also requires no login.

Q: Why is residential proxy required? A: LinkedIn aggressively blocks datacenter IPs (AWS, Google Cloud, Azure). Residential proxy routes requests through real consumer IP addresses that LinkedIn treats as regular browser traffic. Without it, most profiles will return AUTH_REQUIRED.

Q: What's the difference between FOUND and PARTIAL? A: FOUND means the actor successfully loaded the LinkedIn profile page and extracted data from it. PARTIAL means LinkedIn was blocked for all URL variants, but Google's Knowledge Panel for the person returned some data. FOUND records have more fields (experience, education, connections). PARTIAL records typically have name, title, and about only.

Q: Can I input full names instead of usernames? A: Yes. Input "Satya Nadella" and the actor searches site:linkedin.com/in "Satya Nadella" on Google, extracts the username from the first result, and proceeds. This adds ~5–10 seconds per profile. Works best for well-known professionals with unique names.

Q: How many profiles can I scrape in one run? A: Set max_results to any value. The actor processes profiles one at a time with 2–4 second delays. For 500 profiles, expect approximately 30–90 minutes depending on LinkedIn's response rate. Use residential proxy for large runs.

Q: Why does it cost more than other LinkedIn scrapers? A: Because it actually works when LinkedIn fights back. Auth wall detection, 3-layer fallback, Google Knowledge Panel backup, and full-name search are engineering investments that other scrapers skip. The search_status field means you never pay for false data — you always know exactly what you got.

Q: Can I use keyword filtering to find only CMOs or VPs? A: Yes. Set "keyword": "CMO" and only profiles where "CMO" appears in the headline, company, or about section are returned. Combine with a large input list to target-filter a specific executive segment.

Q: What happens if a profile username doesn't exist? A: LinkedIn returns a 404. The actor logs it, skips the profile, and continues with the next input. No crash, no stall.

Q: Can I scrape the same profiles again later for changes? A: Yes. Schedule the actor to run monthly on the same username list. Compare current_position and company fields across runs to detect job changes, promotions, or company moves.


📜 Changelog

v3.0.0 (Current)

  • ✅ 3-layer extraction: linkedin.com (no-www) → www.linkedin.com → m.linkedin.com (mobile)
  • ✅ Auth wall detection using 7 LinkedIn login-page phrase patterns
  • ✅ Google Knowledge Panel fallback when all LinkedIn URLs are blocked
  • ✅ Full name input support — auto-discovers LinkedIn username via Google search
  • ✅ OG meta tag parsing for name, headline, company, and location
  • ✅ JSON-LD Person/ProfilePage schema extraction for structured data
  • ✅ HTML fallback selectors for name, headline, location, about, experience, and education
  • search_status field: FOUND / PARTIAL / AUTH_REQUIRED per profile
  • url_used field — records which URL variant succeeded
  • ✅ Experience summary extraction — up to 3 most recent roles
  • ✅ Education extraction — up to 2 entries
  • ✅ Keyword filter across headline, company, and about section
  • ✅ 2–4 second random delay between profiles
  • ✅ Graceful 404 handling — missing profiles logged and skipped
  • ✅ Results pushed to Dataset and Key-Value Store (results.json)
  • ✅ Residential proxy support via curl_cffi Chrome 110 impersonation

v2.x — Fixed m.linkedin.com soft auth wall returning false positives as valid data

v1.x — Initial LinkedIn profile extraction (single URL variant, no fallback)


This LinkedIn profile scraper accesses publicly visible LinkedIn profile data — the same information visible to any person viewing a LinkedIn profile in a browser without logging in.

Please use responsibly:

  • Only scrape profiles of public figures or in contexts where you have a legitimate business reason
  • Comply with GDPR, CCPA, and applicable data protection laws — LinkedIn profile data of individuals is personal data under most jurisdictions
  • Do not use extracted data to build contact databases for mass unsolicited outreach (spam)
  • Do not use this actor to bypass LinkedIn's authentication to access private profiles or paid features
  • Respect LinkedIn's User Agreement — this actor only accesses public data that requires no login
  • This actor is intended for B2B sales research, recruitment, due diligence, journalism, and legitimate professional workflows

GDPR Note: LinkedIn profile data of living individuals is personal data under GDPR Article 4. Processing requires a valid legal basis under Article 6. For B2B prospecting using professional contact information, Article 6(1)(f) (legitimate interest) is commonly relied upon — but consult a legal professional for your specific use case and jurisdiction.


🤝 Support

  • Getting AUTH_REQUIRED on many profiles? Make sure RESIDENTIAL proxy is enabled — this is the most common cause of blocked profiles
  • Full name not finding the right profile? Try the LinkedIn username directly — search [Name] site:linkedin.com in your browser to find it
  • Need a field that's missing? Drop a feature request on the Apify actor page
  • Works well for your research or sales workflow? A ⭐ review on the Apify Store helps others find this LinkedIn profile scraper and keeps it actively maintained

LinkedIn Profile Scraper · Built on Apify
No Login · 3-Layer Fallback · Auth Wall Detection · Full Name Search · Google Knowledge Panel · Bulk · Status Tracking