LinkedIn Scraper API on Apify: People, Companies, Posts +++
Pricing
from $2.40 / 1,000 person profiles
LinkedIn Scraper API on Apify: People, Companies, Posts +++
Scrape LinkedIn on Apify from a list of URLs — people with work history and recent posts, company pages with follower and employee counts, and individual posts with engagement. No login, no cookies. Rates from $1.80 / 1,000.
Pricing
from $2.40 / 1,000 person profiles
Rating
5.0
(1)
Developer
Socialhz
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
LinkedIn Scraper: People, Companies & Posts
Give it a list of LinkedIn URLs. Get back people with their work history and recent posts, company pages with follower and employee counts, and individual posts with full engagement — in one run, with no LinkedIn login and no cookies.
Mix people, companies and posts in the same list. Each URL is routed to the right lookup automatically.
Built for lead research, competitor monitoring, recruitment sourcing and content analysis.
What it does
- People — full work history, education, follower count, and their recent posts and reposts with the complete text, so you can see what someone actually talks about
- Companies — description, industry, size, follower and employee counts, every office location, and the companies LinkedIn lists as similar
- Posts — full text, reactions, reaction types, comments, and video with per-quality URLs and transcripts
- Comments included free — post comments are part of the post price, not a separate charge
- Related profiles — around twenty "people also viewed" per person, which turns one name into a prospect list
- No login required — no LinkedIn account, no cookies, no session token, ever
- Every URL accounted for — each one you supply comes back with a record, so you always know what was found
- Honest about gating — where LinkedIn hides a field from logged-out visitors, the record names it rather than leaving you guessing
Input
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | — | Required. Mix people, companies and posts freely. Anything that is not one of those is skipped and costs nothing. Max 500 per run |
includePostComments | boolean | true | Return comments on post URLs. Included in the post price |
includeRelatedProfiles | boolean | false | Add the "people also viewed" list to person records. Included in the profile price |
Accepted URL shapes
People linkedin.com/in/satyanadellaCompanies linkedin.com/company/microsoftSchools linkedin.com/school/harvard-universityPosts linkedin.com/posts/…-activity-7298318111240257536-MZHulinkedin.com/feed/update/urn:li:activity:7298318111240257536
A missing https://, a trailing slash, a query string, or a regional subdomain like in.linkedin.com all work.
Example input
{"urls": ["https://www.linkedin.com/in/satyanadella","https://www.linkedin.com/company/microsoft","https://www.linkedin.com/posts/satyanadella_activity-7298318111240257536-MZHu"],"includePostComments": true,"includeRelatedProfiles": true}
Output
One record per URL. Every record carries type (profile, company or post), url (the page it is for) and status.
Person records
| Field | Type | Description |
|---|---|---|
fullName, firstName, lastName | string | null | Name |
publicIdentifier | string | null | The handle from the profile URL |
headline | string | null | Profile headline |
location, country | string | null | Stated location |
about | string | null | About text |
followers, connections | number | null | Audience size |
profilePhotoUrl, coverImageUrl | string | null | Profile picture and banner |
currentCompany, currentSchool | object | null | Present employer and school |
totalExperiences | number | null | How many positions were found |
experience | array | Work history with company, dates and duration |
education | array | Education history |
activity | array | Recent posts and reposts with full text, author and link. A repost is marked in action |
activityCount | number | null | How many activity items were returned |
articles | array | Long-form articles with title, link and cover image |
awards, volunteerExperience, recommendations, publications, websites | array | Where the profile shows them publicly |
relatedProfiles | array | "People also viewed". Empty unless requested |
fieldsWithheldByLinkedIn | array | Which fields LinkedIn does not render publicly |
aboutTruncated | boolean | null | Whether LinkedIn cut the About text |
Company records
| Field | Type | Description |
|---|---|---|
companyName, tagline, description | string | null | Identity |
industry, specialties, companyType | string | null | Classification |
companySize | string | null | Band, e.g. 10,001+ employees |
followersCount, employeesCount | number | null | Audience and headcount |
headquarters, website | string | null | Where and what |
logoUrl, coverImageUrl | string | null | Company logo and banner |
locations | array | Every office with address |
similarCompanies | array | Ten companies LinkedIn lists as similar |
sampleEmployees | array | A handful of staff with name, title and profile link |
recentPosts, companyUpdates | array | A sample of the page's own content |
Post records
| Field | Type | Description |
|---|---|---|
postId, postType, postedAt | text, image, video, article or discussion | |
caption, articleBody | string | null | The post text |
hashtags | array | Hashtags used in the post |
authorName, authorHandle, authorProfileUrl | string | null | Who wrote it. Handle is null for company-page authors |
authorFollowerCount | number | null | The author's total followers |
likeCount, commentCount, viewCount | number | null | Engagement |
reactionTypes | array | Which reactions are present — like, praise, empathy and so on |
comments | array | Author, text, likes and timestamp per comment |
commentsReturned | number | How many this record contains |
commentsRemaining | boolean | Whether the post has more than LinkedIn shows publicly |
videoUrl, videoUrlsByQuality, transcript, captionsVttUrl | Video, at each quality, with transcript | |
imageUrls, thumbnailUrl, durationSeconds | Media |
Every record also carries status: ok, not_found for a page that is not publicly visible, or unavailable if the source could not be reached.
Pricing
Charged per page looked up, plus a small fixed fee when a run starts. Comments on posts and related profiles are included — there is no separate charge for either.
Prices fall on larger Apify plans.
| Event | Free plan | Starter | Scale | Business and above |
|---|---|---|---|---|
| Person profile | $2.90 per 1,000 | $2.70 | $2.55 | $2.40 per 1,000 |
| Company page | $2.90 per 1,000 | $2.50 | $2.10 | $1.80 per 1,000 |
| Post | $2.90 per 1,000 | $2.50 | $2.10 | $1.80 per 1,000 |
| Run start | $0.005 per run | $0.005 | $0.005 | $0.005 |
A URL that is not a LinkedIn profile, company or post is rejected before any lookup and costs nothing.
Worked examples, at Business-plan rates
Totals are rounded to the nearest cent.
Lead research — 250 people 250 × $0.0024 + $0.005 = ≈$0.61
Competitor watch — 50 companies and 200 of their posts 50 × $0.0018 + 200 × $0.0018 + $0.005 = ≈$0.46
Sourcing sweep — 750 people with related profiles 750 × $0.0024 + $0.005 = ≈$1.81
Set Maximum cost per run in the run options to cap spend. The Actor stops cleanly at that ceiling and returns everything it charged for.
Good to know
Comments on a post are capped at roughly ten. That is LinkedIn's own limit — a public post page embeds about ten comments however many the post really has. commentsRemaining tells you when there are more. No tool reading public pages can return the rest.
LinkedIn hides some profile fields from logged-out visitors. Skills, certifications and per-position job titles are not rendered publicly, and the About text is often cut short. Rather than silently returning blanks, every person record lists exactly what was withheld in fieldsWithheldByLinkedIn.
You supply the URLs. There is no keyword or name search — this Actor reads pages you point it at.
Tips
- Start with people, add companies later. Person records carry the richest signal, particularly the activity feed.
- Turn on related profiles for sourcing. One good profile yields around twenty adjacent ones, at no extra cost.
- Use the activity feed to qualify. It tells you whether someone actually posts, and what about, which a static profile cannot.
- Keep lists tidy. Every URL you supply is looked up, so a clean list keeps runs quick.
Support
Report a problem through the Issues tab on this Actor's page. Issues are reviewed regularly.
When reporting, please include the run ID, the input you used, and what you expected.
For volume enquiries, custom requirements, or anything not specific to a single run, email socialhtz@gmail.com.