LinkedIn Profile Scraper avatar

LinkedIn Profile Scraper

Pricing

from $2.50 / 1,000 contact person data scrapes

Go to Apify Store
LinkedIn Profile Scraper

LinkedIn Profile Scraper

Scrape LinkedIn profiles from a list of URLs: name, headline, current_company, current_title, location, connection_count_numeric, follower_count, full experience and education history, skills and optional contact details. Export JSON, CSV or Excel.

Pricing

from $2.50 / 1,000 contact person data scrapes

Rating

0.0

(0)

Developer

herus13

herus13

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

0

Monthly active users

12 days ago

Last modified

Share

LinkedIn Profile Scraper extracts structured data from LinkedIn profiles. Give it profile URLs and each one comes back as a row with name, headline, current role, location, full experience and education history, skills, badges and — optionally — contact details.

What you get

One dataset row per profile. Export as JSON, CSV or Excel.

{
"profile_url": "https://www.linkedin.com/in/alice-walker-1234/",
"name": "Alice Walker",
"headline": "VP Engineering at TechCo",
"current_company": "TechCo",
"current_title": "VP Engineering",
"location": "Boston, MA",
"industry": "Software",
"connection_count_numeric": 1234,
"follower_count": 56789,
"open_to_work": false,
"about": "Builder of teams and systems..."
}

Rows also carry public_identifier (the vanity slug, stable across name changes), the premium, verified and influencer badges, and the structured career sections: experience with company, title, location, dates and description per role; education with school, degree, field and years; certifications, skills and skill_endorsements; and languages, volunteer, honors, publications, patents, projects, courses, organizations and test_scores wherever the person filled them in. Turn on scrape_contact_info and a contact object is added with email, phones, websites, Twitter and instant-messaging handles. A profile that cannot be read carries a status of blocked, not_found or failed with the reason, rather than a silent empty row.

What it costs

EventFreeBronzeSilverGold+
Record scraped (profile-scraped)$0.007$0.00633$0.00567$0.005
Contact Person Data Scrape (contact-info-scraped)$0.004$0.0035$0.003$0.0025
Actor Start (apify-actor-start)$0.01$0.01$0.01$0.01

You pay per profile delivered, not per minute: $0.007 a profile, so 1,000 profiles is about $7.00. Contact details add $0.004 per profile and are charged only when contact data actually comes back, which puts 1,000 enriched profiles at roughly $11.00. A profile that comes back blocked, private or not found is never charged. Higher Apify subscription tiers pay the lower rates shown above, and the residential proxy is included in the price of the run. The $0.01 start fee is charged once per run, per GB of memory.

Input

FieldTypeRequiredDefaultWhat it does
profile_urlsarrayyes—LinkedIn profile addresses to collect, one per entry — a full URL such as https://www.linkedin.com/in/williamhgates/, or the bare /in/ slug. Each entry returns one dataset row with the person's name, headline, current role, location and career history. Required: a run with no addresses has nothing to collect.
cookiestringno—Your own LinkedIn li_at session cookie. With it every profile comes back in full: skills, exact connection and follower counts, and every section the person filled in. Leave blank to collect the smaller public set LinkedIn shows signed-out visitors — name, headline, current roles, education, location and photo. Find it in your signed-in browser under DevTools, Application, Cookies, linkedin.com. Copy it in the same country you set in proxy_country.
authorized_accessbooleanyesfalseConfirms you are collecting profiles you own or have explicit permission to access with your own cookie. Default false; set it to true to start a run. Required.
scrape_contact_infobooleannofalseAlso collect the contact details a profile exposes — email, phone numbers, websites, Twitter handles and instant-messaging handles — returned under contact. Needs a cookie. Default false. It is charged only when contact data actually comes back.
proxy_countrystringno"VN"Two-letter country code the run's residential IP exits from, for example US, GB, DE or JP. When you supply a cookie this must match the country you were signed in from when you copied it, or LinkedIn ends the session after a request or two. Default VN. Without a cookie the country is unconstrained.
max_concurrencyintegerno5How many profiles are collected at the same time. Default 5, minimum 1, maximum 20. A higher number finishes a long list sooner; the default keeps a steady pace on your own account.
max_requests_per_minuteintegerno30Ceiling on how many requests a run may send each minute. Default 30, minimum 1, maximum 120. The default is a deliberately human pace; raise it to work through a long list faster.
request_delayintegerno0Seconds to wait between requests, to spread a run out over time. Default 0, minimum 0, which runs at full speed inside the ceiling set by max_requests_per_minute.

How to run it

  1. Open the actor on Apify Console.
  2. Paste one or more profile URLs, tick the authorized-access confirmation, and add your li_at cookie if you want the full profile.
  3. Set the proxy country to match where that cookie was issued, then Run. Export JSON, CSV or Excel from the dataset.
{
"profile_urls": ["https://www.linkedin.com/in/williamhgates/"],
"authorized_access": true,
"cookie": "<your_li_at_cookie>",
"proxy_country": "US",
"scrape_contact_info": true
}

Minimal input:

{
"profile_urls": ["https://www.linkedin.com/in/williamhgates/"],
"authorized_access": true
}

Available as the MCP tool herus13--linkedin-profile-scraper on mcp.apify.com and through the Apify API; send the same JSON.

Why this scraper

  • Works with or without a cookie — leave cookie blank and you still get the public set: name, headline, current roles, education, location and photo. Add your own li_at and every section opens up.
  • Exact counts, not buckets — connection_count_numeric and follower_count come back as real numbers rather than the "500+" that public pages show.
  • Deep career history in one row — experience, education, certifications, skills with endorsement counts, honors, publications, patents and projects, all on the same record, at no extra charge.
  • You pay for what arrives — blocked, private and not-found profiles are free, and contact enrichment is charged only when contact data is actually returned.
  • Failures say what went wrong — an unreadable profile names its reason, so a bad cookie or a country mismatch is obvious instead of looking like an empty result.
  • Nothing to install — paste URLs, press Run; a residential proxy is included in the price of the run.

Use cases

  • CRM enrichment — A list of profile URLs becomes structured records a CRM can key on: current company and title, location, industry and the full role history behind them.
  • Recruiting and sourcing — Complete experience and education history is what makes candidate screening possible at list scale, instead of opening profiles one at a time.
  • Lead qualification — Headline, current role and company tell you whether a lead is worth pursuing before any outreach, and contact details are one switch away where the profile exposes them.
  • Talent-market datasets — Aggregate profiles across a company or a function to read tenure distribution, common prior employers and where skills concentrate.
  • Investor and competitor research — Follower counts, badges and hiring history on a leadership team give a fast read on a company's trajectory.

FAQ

Do I need a LinkedIn cookie? No. Leave cookie blank for the public set — name, headline, current roles, education, location and photo. A cookie is needed only for the full profile with skills, exact connection and follower counts, and contact details. To copy one: sign into LinkedIn in your browser, open DevTools, go to Application, Cookies, linkedin.com and take the li_at value. It usually stays valid about a year when used from the same country.

Why must the country match my cookie? LinkedIn ties a session to the country it was issued in. A cookie copied in Vietnam and used from a US address is treated as a hijacked session and dropped within a request or two. Set proxy_country to the country you signed in from and the two stay aligned.

Will my account get flagged? Stay near the defaults — max_requests_per_minute 30 and max_concurrency 5 — which is a human pace. Pulling thousands of profiles an hour is what gets accounts noticed.

Will every field be filled on every profile? No. It depends on what the person entered and on their privacy settings. Name, headline, experience and education almost always arrive; skills, honors, projects and the rest appear only where the profile owner added them.

Is a proxy included? A residential proxy is included in the price of the run. The exit country follows proxy_country, which must match where your cookie was issued.

Is scraping LinkedIn legal? This actor collects only data visible to the account whose cookie you supply, or the public profile when you supply none. You are responsible for complying with LinkedIn's terms and applicable data-protection laws, and for having a lawful basis before collecting personal data.

Building a sourcing or lead pipeline? Pair this actor with: