LinkedIn Profile Scraper — Public Profile Data Extraction
Pricing
from $2.50 / 1,000 contact person data scrapes
LinkedIn Profile Scraper — Public Profile Data Extraction
Extract public profile data from LinkedIn without login. Gets name, headline, experience, education, skills, certifications, languages, and more.
Pricing
from $2.50 / 1,000 contact person data scrapes
Rating
0.0
(0)
Developer
bootforge
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
LinkedIn Profile Scraper
The LinkedIn Profile Scraper is an Apify actor that extracts structured data from public LinkedIn profiles using your own li_at session cookie. Give it profile URLs (or bare vanity slugs) and it returns name, headline, about, full experience history, education, skills, certifications, honors, projects, connection and follower counts, badges, and — optionally — contact info (email, phone, websites). It pulls every field from LinkedIn's authenticated Voyager API in a single request per profile.
Use it to build lead lists, enrich a CRM, run recruiting sourcing, or feed a talent dataset — exported to JSON, CSV, or Excel.
Table of contents
- What the LinkedIn profile scraper does
- How to scrape LinkedIn profiles
- LinkedIn profile scraper input
- LinkedIn profile data output
- How much it costs
- Recommended proxies for LinkedIn
- Why this LinkedIn profile scraper
- FAQ
- Rate this actor
- Related actors
What the LinkedIn profile scraper does
- 🧾 25+ structured fields per profile — name, headline, about, location, industry, current company and title, all from one authenticated call.
- 💼 Full experience & education history — reverse-chronological roles with company, title, location, dates, and description; schools, degrees, and years.
- 🎯 Skills, certifications & achievements — skills with endorsement counts, certifications, languages, honors, publications, patents, projects, courses, organizations, and test scores.
- 📊 Exact numeric counts — real
connection_count_numericandfollower_count(the cookie path, not the public "500+" bucket). - 🏷️ Profile badges —
premium,verified,influencer, andopen_to_worksignals. - 📇 Optional contact enrichment — email, phones, websites, twitter, and IM handles via a separate call, billed only when data is returned.
How to scrape LinkedIn profiles
- Click Try for free and open the actor.
- Paste one or more
profile_urls(full URLs or bare/in/slugs). - Add your
cookie— theli_atsession cookie from your logged-in LinkedIn (see the input section below). - Set
proxy_countryto the country where you logged in and copied the cookie. - Optional: enable
scrape_contact_infofor email, phone, and websites. - Click Start, then export results as JSON, CSV, or Excel, or pull them from the Apify API.
{"profile_urls": ["https://www.linkedin.com/in/williamhgates/"],"cookie": "<your_li_at_cookie>","proxy_country": "US","scrape_contact_info": true}
LinkedIn profile scraper input
| Field | Description |
|---|---|
profile_urls | Required. LinkedIn profile URLs to scrape (e.g. https://www.linkedin.com/in/username). |
cookie | Required. Your li_at session cookie. Get it in DevTools → Application → Cookies → linkedin.com → copy the li_at value. Every structured field comes from the authenticated API, so a valid cookie is mandatory. |
scrape_contact_info | Fetch the contact-info endpoint (email, phone, websites, twitter, IM). Only charged when data is returned. Default false. |
proxy_country | Residential proxy country code. Must match the country where you generated the cookie — LinkedIn deauthorizes a cookie used from a different geo. Default VN. |
max_concurrency | Max concurrent profile requests (default 5, max 20). |
max_requests_per_minute | Rate cap to avoid LinkedIn throttling (default 30, max 120). |
transport | HTTP engine for the public fetch: auto (curl_cffi TLS impersonation), curl_cffi, httpx, or primp. The authenticated cookie path uses a browser session regardless. |
strategy_mode | Retry ordering: cost_first (default), speed_first, balanced, or stealth_first. |
request_delay | Fixed delay in seconds between requests (default 0). |
The cookie is required. Sign into LinkedIn in your normal browser, open DevTools (F12 / Cmd+Opt+I), go to Application → Storage → Cookies → https://www.linkedin.com, copy the Value of the li_at row, and paste it into the cookie field. Cookies typically last about a year when used from the same country. Note your sign-in country and set proxy_country to match.
LinkedIn profile data output
Each profile is one dataset row. Sample:
{"public_identifier": "alice-walker-1234","status": "ok","profile_url": "https://www.linkedin.com/in/alice-walker-1234/","name": "Alice Walker","headline": "VP Engineering at TechCo","location": "Boston, MA","industry": "Software","about": "Builder of teams and systems...","connection_count_numeric": 1234,"follower_count": 56789,"open_to_work": false,"premium": true,"current_company": "TechCo","current_title": "VP Engineering","experience": [{"company": "TechCo", "title": "VP Engineering", "location": "Boston, MA", "start_date": "Mar 2022", "end_date": "Present", "description": "..."}],"education": [{"school": "Stanford", "degree": "MS", "field_of_study": "Computer Science", "start_year": "2014", "end_year": "2016"}],"skills": ["Python", "Distributed Systems", "Leadership"],"contact": {"email": "alice@techco.com","phones": [{"number": "+1-555-0100", "type": "MOBILE"}],"websites": [{"url": "https://alice.dev", "category": "PERSONAL"}],"twitter": ["alicewalker"]},"scraped_at": "2026-07-08T12:00:00+00:00"}
| Field | Description |
|---|---|
public_identifier, profile_url | LinkedIn vanity slug (stable across name changes) + source URL, for joining back to your input. |
status, error | ok / blocked / not_found / failed, with a reason when not ok. |
name, headline, about, location, industry, profile_photo_url | Core profile fields. |
current_company, current_title | Current role, flattened for CSV. |
connection_count_numeric, follower_count | Exact numeric counts (cookie path). |
open_to_work, premium, verified, influencer | Profile badges. |
experience, education, certifications, skills, skill_endorsements | Structured career sections. |
languages, volunteer, honors, publications, patents, projects, courses, organizations, test_scores | Additional sections, populated when the person added them. |
contact | Email, phones, websites, twitter, IM — only when scrape_contact_info is enabled. |
scraped_at | ISO timestamp. |
By default only successfully-scraped profiles reach the dataset. A profile that is blocked, private, or missing fails fast with a specific reason rather than a silent empty row.
How much it costs
This actor uses pay-per-event pricing — you pay for what you scrape, not for time.
| Event | USD |
|---|---|
| Actor start (per run) | $0.01 |
| Profile scraped | $0.005 |
| Contact info scraped (only when data returned) | $0.005 |
| Typical run | Cost |
|---|---|
| 1,000 profiles | ~$5 |
| 1,000 profiles + contact enrichment | ~$10 |
| 100 profiles | ~$0.50 |
You are never billed for a profile that comes back blocked, not_found, or failed, and contact enrichment is only charged when contact data is actually returned.
Recommended proxies for LinkedIn
LinkedIn ties session validity to IP geography — a li_at cookie issued in one country is deauthorized within a request or two if the proxy exits in a different country. You must use a residential proxy whose exit country matches where you signed in. Set proxy_country accordingly (US, GB, VN, DE, JP, ...).
This actor runs on DataImpulse residential IPs — pay-as-you-go, per-country targeting, no monthly minimum — so the exit IP can be aligned to your cookie's origin country. If you run your own scrapers (inside or outside Apify) and need reliable residential proxies for LinkedIn or other sites, you can get DataImpulse here:
👉 Get DataImpulse residential proxies (referral link)
Why this LinkedIn profile scraper
- Full Voyager API data — 25+ structured fields per profile, deeper than public-HTML scrapers that only see truncated counts and shallow sections.
- One request per profile — every field returns in a single authenticated call; no extra charge for more fields.
- Adaptive billing — you pay only when a profile is delivered; blocked, private, and not-found inputs are free.
- Actionable failures — a run that can't fetch names the cause directly (invalid cookie, geo mismatch, rate limit, anti-bot block) instead of a vague error.
- Open source — the underlying
linkedin-scraperPython package ships a Typer CLI and a FastAPI server; the Apify wrapper is a thin layer, so you can inspect the parser.
FAQ
Where do I get the li_at cookie, and is login required? Yes — the cookie is mandatory because every field comes from LinkedIn's authenticated API. Sign into LinkedIn in your browser, open DevTools → Application → Cookies → linkedin.com, and copy the li_at value into the cookie field. It typically stays valid about a year when used from the same country.
Why must the proxy country match my cookie? LinkedIn binds session validity to IP geography. A cookie generated in Vietnam used through a US IP is treated as a hijacked session and deauthorized within one or two requests. Set proxy_country to your sign-in country and the exit IP is aligned automatically.
Which proxies work best for LinkedIn? Residential proxies with per-country targeting. This actor runs on DataImpulse residential IPs so the exit can match your cookie's origin country. Datacenter proxies get flagged quickly.
Will my cookie get my account banned? Stay under the default rate limits (max_requests_per_minute: 30, max_concurrency: 5) for sustainable use. LinkedIn flags accounts that pull thousands of profiles per hour, so scrape at a human pace.
Will every field populate on every profile? No — it depends on what the person filled in and their privacy settings. Core fields (name, headline, experience, education) almost always populate; skills, honors, projects, and others appear only when the profile owner added them.
Is scraping LinkedIn legal? This actor collects only data visible to your own logged-in account. You are responsible for complying with LinkedIn's terms and applicable data-protection laws, and for having a lawful basis before collecting personal data.
Rate this actor ⭐
If the LinkedIn Profile Scraper saved you time, please leave a review on its Apify Store page — ratings help other people find it and tell us what to build next. Hit a bug or missing field? Open an issue or contact us through the actor's Issues tab and we'll fix it fast — recency and reliability are what keep this actor ranking.
Related actors
Building a full data pipeline? Pair this actor with our other scrapers — same proxy config format, same Pydantic-validated output, all open source.
- LinkedIn Jobs Scraper — scrape LinkedIn job listings with company enrichment, salary, and recruiter info. No login required.
- Google Maps Business & Contact Scraper — scrape Google Maps businesses with emails, phone numbers, reviews, images, and social links.
- Indeed Scraper — scrape Indeed job listings with company, salary, and location details.
- TikTok Shop Product Scraper — scrape TikTok Shop products across 10 regions with prices, sellers, and ratings.