LinkedIn Profiles Scraper - $0.90/1k, No Login
Pricing
from $0.90 / 1,000 successful public profiles
LinkedIn Profiles Scraper - $0.90/1k, No Login
Turn a list of public LinkedIn profile URLs into clean rows: full name, public headline, description, profile image link, public identifier and the social links the profile lists. $0.90 per 1,000 profiles plus a $0.001 start fee, against $1.00-$1.99 for comparable actors. No login needed.
Pricing
from $0.90 / 1,000 successful public profiles
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
LinkedIn Profiles Scraper
Extract only the data LinkedIn exposes publicly on supplied profile URLs. This actor does not request a login, cookies, hidden or private endpoints, employee/contact inference, profile search, or data behind a sign-in wall.
Input
{"profileUrls": ["https://www.linkedin.com/in/example-public-profile/"],"maxProfiles": 10,"requestTimeoutSecs": 20}
| Field | Type | Default | Notes |
|---|---|---|---|
profileUrls | array | [] | Public URLs in the form https://www.linkedin.com/in/<public-identifier>/. Empty input returns one labelled, uncharged sample row. |
maxProfiles | integer | 10 | Cap on how many valid URLs are requested in a run. Maximum 100. |
requestTimeoutSecs | integer | 20 | Per-page request timeout, 1–60 seconds. |
Supply public URLs matching https://www.linkedin.com/in/<public-identifier>/. The actor does not resolve names, emails, or company domains into LinkedIn URLs. URLs are canonicalised before the request, so tracking parameters and trailing slashes are harmless and the same profile submitted twice is only fetched once.
Output
Every genuine row is parsed from a matching public Person JSON-LD record present on the requested page:
| Field | What it is |
|---|---|
ok | true on a real parsed profile, false on a diagnostic row. |
sourceType | public_linkedin_profile on real rows, sample on the free sample row. |
profileUrl | The canonicalised /in/ URL that was requested. |
publicIdentifier | The vanity slug from that URL, e.g. example-public-profile. |
fullName | Person.name as LinkedIn publishes it. |
headline | Person.jobTitle when present, otherwise the public description. |
description | The public "about" text, when LinkedIn exposes it. |
profileImageUrl | Public avatar URL, or null. |
sameAs | The outbound links the profile itself lists (personal site, other socials). Empty array when there are none. |
transport | direct_http — the actor never runs a browser. |
retrievedAt | ISO timestamp of the fetch. |
Missing fields are null or empty. It does not infer contact details, work history, employers, location, email addresses, or private profile attributes.
Diagnostic rows
Anything that is not a parsed profile comes back as an uncharged row with ok: false, _diagnostic: true and an errorCode:
BAD_INPUT— the URL is not alinkedin.com/in/profile URL.NO_RESULTS— the page loaded but carried no matching publicPersonrecord (private profile, or LinkedIn served an interstitial).- Transport codes — timeout, block or network failure, with the underlying message in
details.
You get a row explaining what happened for every URL you submitted, so a partial run is auditable rather than silently short.
Cost and proxy policy
The actor uses direct HTTP only. It never starts residential or SERP proxy traffic. Blocks, rate limits, invalid URLs, and public pages without a matching profile record return an uncharged diagnostic row.
Only a genuine matching public profile triggers the profile event. The row is written to the dataset before the charge call.
Empty input
Empty input returns exactly one clearly labeled _sample: true row without making a LinkedIn request. It is always uncharged.
Pricing
$0.90 per 1,000 profiles ($0.0009 each), plus $0.001 each time a run starts — against the $1.00 to $1.99 per 1,000 charged by comparable URL-driven LinkedIn profile actors on the Apify Store. Flat rate: no volume tiers, no plan gates, and you are charged only for profiles actually returned.
Billing
Two charges apply: a $0.001 run-start fee each time a run begins, and $0.0009 per successfully parsed public profile. Samples, diagnostics, duplicates, blocked look-ups and no-result runs never incur the per-result fee — a run that returns nothing costs only the $0.001 start fee. Because it is direct HTTP with no proxy, there is no proxy line on your bill either.