LinkedIn Profile Scraper
Pricing
from $1.95 / 1,000 profiles
LinkedIn Profile Scraper
LinkedIn profile scraper: paste profile links or names and export each public profile as a row: name, headline, location, followers, current company and school, experience, education, certifications, publications, websites and articles, as LinkedIn shows them to signed-out visitors.
Pricing
from $1.95 / 1,000 profiles
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
0
Monthly active users
6 hours ago
Last modified
Categories
Security
Limited permissionsShare
LinkedIn profile scraper: paste profile links or names and export each public profile as one row, with the name, headline, location, followers, current company and school, job history, education, certifications, publications, websites and articles.
You give it LinkedIn profile links, or just the name at the end of each link. You get the profile as LinkedIn shows it to someone who is not signed in, one row per person, ready for a spreadsheet or a CRM.
It reads public profiles only. A profile that LinkedIn does not serve to the run comes back as a free row saying so, and you pay only for profiles that come back with data.
| Input | LinkedIn profile links (linkedin.com/in/..., any country site) or profile names such as williamhgates |
| Output | One row per profile: name, headline, location, followers, connections, current company and school, experience, education, certifications, volunteering, publications, honours, recommendations, websites, articles, similar profiles |
| Ceiling | 1,000 profiles per run |
| Account needed | None from you |
| Price | $1.95 per 1,000 profiles, the same rate on every plan. The free plan's $5 a month covers about 2,500 |
| Using an AI agent? | |
|---|---|
| Actor | dami_studio/linkedin-profiles-scraper |
| Set one field | profileUrls, labelled "Profile links or names" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/linkedin-profiles-scraper |
| How often | Weekly or monthly, to keep a list of contacts' jobs and titles current |
🔍 What LinkedIn Profile Scraper does
It opens each profile's public page, the one LinkedIn shows to anyone with the link, and writes down what is on it. Nothing is read through an account, and nothing that only signed-in members see.
That covers the name, headline, location, follower and connection counts, the current company and school, the about text, each position with its title, dates and place, schools, and whatever certifications, volunteering, publications, awards, recommendations, websites and articles the member made public. The row carries what the page carries, and a field the page leaves out is empty rather than guessed.
Turn on Add current company details and it also reads the public page of each person's current employer, once per company per run, and adds the company's industry, size, headquarters, website, follower count and description to the row.
📋 What data you get from each LinkedIn profile
| What you get | Field |
|---|---|
| Who it is | fullName, firstName, lastName, headline, jobTitles, about, badges |
| Where they are | location, countryCode |
| Reach | followers, connections |
| Where they work and studied now | currentCompany, currentCompanyUrl, currentSchool, currentSchoolUrl |
| Job history | experience (title, company, companyUrl, location, startDate, endDate, duration, description, currentPosition) |
| Education | education (school, schoolUrl, degree, fieldOfStudy, startDate, endDate, description) |
| Credentials and work in public | certifications, volunteering, publications, honorsAndAwards, organizations, projects, courses, patents, testScores, languages, skills |
| What others say | recommendationsReceived (recommender, recommenderUrl, text) |
| Links and writing | websites, articles (title, url, publishedAt, likes, imageUrl), recentPostsCount |
| Pictures | profilePictureUrl, backgroundImageUrl |
| People LinkedIn shows beside them | similarProfiles (name, headline, location, followers, profileUrl) |
| The current company (paid add-on) | company (name, industry, companySize, employeesOnLinkedIn, followers, companyType, foundedYear, specialties, website, description, hqCity, hqRegion, hqCountry, locations, logoUrl) |
| The link and when it was read | profileUrl, publicIdentifier, inputUrl, scrapedAt |
▶️ How to scrape LinkedIn profiles
- Open LinkedIn Profile Scraper and click Try for free.
- Paste profile links or names into Profile links or names, one per line.
- Turn on Add current company details if you want the employer's details on each row.
- Click Start.
- Download the rows as JSON, CSV or Excel, or read them from the API.
Leave the list empty and you get one free sample row showing the shape of the output, with nothing read.
💰 How much does it cost to scrape LinkedIn profiles?
$1.95 per 1,000 profiles, which is $0.00195 each, the same rate on every plan. On the free plan, the $5 Apify gives you each month covers about 2,500 profiles.
Company details cost $0.95 per 1,000 companies, charged once for each company page read, however many profiles in the run work there.
Free rows are never charged: a profile that was not shown, an entry that is not a profile link, the sample row, and the row that says the run stopped at your time or cost limit. A profile listed twice is read once.
📥 What you give it
{"profileUrls": ["https://www.linkedin.com/in/williamhgates","satyanadella"],"maxProfiles": 100,"includeCompanyDetails": true}
| Field | Default | What it is |
|---|---|---|
profileUrls | none, the form starts with two examples | Up to 1,000. A profile link from any LinkedIn country site, or the name at the end of the link. |
maxProfiles | 100 | 1 to 1,000. The run reads this many from the top of the list and leaves the rest. |
includeCompanyDetails | off | Adds the current company's public details to each row. Paid per company. |
📤 What you get back
A real row from a run on 7 November 2026, with company details on and the lists cut short:
{"ok": true,"recordType": "profile","profileUrl": "https://www.linkedin.com/in/satyanadella","publicIdentifier": "satyanadella","fullName": "Satya Nadella","headline": "Chairman and CEO at Microsoft","location": "Redmond, Washington, United States","countryCode": "US","followers": 12293095,"connections": "500+","badges": ["Creator", "Top Voice"],"currentCompany": "Microsoft","currentCompanyUrl": "https://www.linkedin.com/company/microsoft","currentSchool": "The University of Chicago Booth School of Business","experience": [{"title": "Chairman and CEO","company": "Microsoft","companyUrl": "https://www.linkedin.com/company/microsoft","location": "Greater Seattle Area","startDate": "Feb 2014","endDate": null,"duration": "12 years 10 months","description": null,"currentPosition": true}],"education": [{"school": "The University of Chicago Booth School of Business","degree": null,"startDate": "1994","endDate": "1996"}],"articles": [{"title": "My annual letter: Building the frontier ecosystem","url": "https://www.linkedin.com/pulse/my-annual-letter-building-frontier-ecosystem-satya-nadella-iujec","publishedAt": "2026-10-21T20:41:14.000+00:00","likes": 8479}],"recentPostsCount": 5,"company": {"name": "Microsoft","industry": "Software Development","companySize": "10,001+ employees","employeesOnLinkedIn": 231116,"followers": 29468536,"hqCity": "Redmond","hqCountry": "US","website": "https://news.microsoft.com/"},"scrapedAt": "2026-11-07T16:41:47.821Z"}
| Field | Read it like this |
|---|---|
headline | Empty when the profile page shows no headline to visitors |
experience[].title | Empty when the page shows only the employer's name |
followers | An exact count where the page gives one, otherwise LinkedIn's rounded figure turned into a number (3K becomes 3000) |
connections | Text as LinkedIn writes it: 500+ means 500 or more |
startDate, endDate | As the page writes them, Feb 2014 or 2018. endDate is empty for a current position |
| Picture links | LinkedIn's own image links. They stop working after a while, so save the image if you need it |
🧾 Reading the output
Every real row has ok: true and recordType: "profile". Rows with ok: false are free notes, one per entry that could not be read, with errorCode and error saying why:
errorCode | What happened |
|---|---|
NOT_SERVED | The profile was not served this run. Re-run it later. A misspelled profile name ends here too |
BAD_INPUT | The entry is not a profile link or name. Nothing was read for it |
TIME_LIMIT | The run reached its time limit; notRead lists the profiles it did not get to |
COST_LIMIT | The run reached the maximum cost you set; notRead lists the rest |
An empty run returns one sample row with _sample: true. To keep only real profiles, filter on ok being true and recordType being profile. The Notes view of the dataset lists the free rows on their own.
💡 What people use it for
- Recruiters checking a shortlist: current employer, location and job history for each candidate, in one sheet.
- Sales teams cleaning a CRM: which contacts moved company, with the new employer's size and industry from the add-on.
- Researchers comparing public profiles of a group, such as a conference's speakers or a company's leadership.
- Anyone with a column of LinkedIn links that needs names, titles and places next to them.
A simple chain: take the profile links from your CRM export, run them here with Add current company details on, then filter rows where currentCompany changed since your last run.
🚧 What it does not do
- No e-mail addresses or phone numbers.
- No search by name, job title or company: give it profile links or names.
- No posts. A profile's recent posts are counted in
recentPostsCountonly. - Nothing from inside a LinkedIn account: no messages, no contact lists, nothing only signed-in members see.
- It is not an official LinkedIn tool. Dami's Studio is independent and is not affiliated with or endorsed by LinkedIn, or by any other company named on this page.
🧭 Which LinkedIn scraper do you need?
| If you want | Use |
|---|---|
| A person's public profile from its link | This one |
| A company's size, industry, followers and headquarters | LinkedIn Companies Scraper |
| The posts a company page publishes | LinkedIn Company Posts Scraper |
| Job listings | LinkedIn Jobs Scraper |
| The ads a company runs | LinkedIn Ads Scraper |
❓ Questions people ask
Do I need a LinkedIn account to scrape profiles?
No. You don't need a LinkedIn account, a cookie or a login. The actor reads the public page that LinkedIn shows to anyone who opens the link.
Why did a profile come back as a free row instead of data?
LinkedIn did not serve that profile's public page to the run, and a link with a typo ends the same way. Check the link in a private browser window, then run it again later. You are not charged for it.
Why do the job titles or numbers differ from what I see on LinkedIn?
When you are signed in, LinkedIn shows you more than it shows a visitor, and follower counts change every day. Open the profile in a private window to see the version the actor reads.
Can I call it from code or an AI assistant?
Yes. The API tab has ready-made calls, and AI assistants can use it through Apify's MCP server at https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/linkedin-profiles-scraper. In Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("dami_studio/linkedin-profiles-scraper").call(run_input={"profileUrls": ["satyanadella"], "maxProfiles": 10},max_total_charge_usd=0.05,)for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("ok") is False:continueprint(row["fullName"], row["currentCompany"])
Is scraping LinkedIn legal?
The actor reads public profiles the way a signed-out visitor sees them, with no account and nothing private. Profiles are personal data, so GDPR and similar laws apply to what you keep and how you use it: keep only what you need, and mind the rules on contacting people. LinkedIn's own terms still apply to what you do with the data. Apify has a good write-up on the legality of web scraping. We are not lawyers, and this is not legal advice.
🆘 If something breaks
Open an issue on the actor's Issues tab. Include the run ID and the profile link that went wrong, and we will look at it.