Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
LinkedIn Profiles Scraper icon

LinkedIn Profiles Scraper

Extract public LinkedIn profile fields from supplied URLs: name, headline, description, image link and public identifier.

31 runs on Apify $0.0009 per successful public profile ($0.9 / 1,000)
Run this in the cloudRun on Apify →

B2B Leads & Contact Data

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust profileUrls, maxProfiles, requestTimeoutSecs (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0009 per successful public profile = $0.9 per 1,000

You are charged forWhenPrice
Successful public profileA matching public LinkedIn profile parsed from the supplied URL.$0.0009
Actor StartCharged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.001

Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.

Inputs

FieldWhat it doesType
profileUrlsPublic URLs in the form https://www.linkedin.com/in/public-identifier/. Empty input returns one clearly labeled, uncharged sample row.array
maxProfilesMaximum valid public profile URLs to request. Invalid or blocked URLs return free diagnostic rows.integer
requestTimeoutSecsTimeout for one public profile page request.integer

What you get

A structured dataset — each result includes fields like:

fullNameheadlineprofileUrlprofileImageUrltransport

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in B2B Leads & Contact Data

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

LinkedIn Companies Scraper iconB2B Leads & Contact Data

LinkedIn Companies Scraper

Extract public LinkedIn company data from company URLs: name, description, followers, employee count, HQ, website and logo.

Ready to run — no setup

YouTube Channel Email Scraper iconYouTube & Creator Tools

YouTube Channel Email Scraper

Find business emails publicly listed in YouTube channel descriptions and their linked websites. Built for creator outreach and sponsorships. No login needed.

Ready to run — no setup

Domain Inspector iconDeveloper & Research Tools

Domain Inspector

Bulk-inspect domains: DNS records, RDAP registrar and expiry, redirects, TLS dates, security headers, robots, sitemaps and tech detection.

Ready to run — no setup

Google Maps Scraper iconMaps & Local Lead Generation

Google Maps Scraper

Scrape Google Maps business listings by category and city: name, phone, website, rating, reviews, lat/lng and place ID. Build local lead lists fast.

24 use cases

Contact Details Scraper iconB2B Leads & Contact Data

Contact Details Scraper

Extract public emails, phones, addresses, contact forms and 10 social profiles from any list of websites.

Ready to run — no setup

Email Verifier iconB2B Leads & Contact Data

Email Verifier

Bulk email verifier at $0.60 per 1,000 addresses plus a $0.001 run-start fee. Syntax, MX, disposable and role-account checks plus optional SMTP probing.

Ready to run — no setup

See all B2B Leads & Contact Data →

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

}
FieldTypeDefaultNotes
profileUrlsarray[]Public URLs in the form https://www.linkedin.com/in/<public-identifier>/. Empty input returns one labelled, uncharged sample row.
maxProfilesinteger10Cap on how many valid URLs are requested in a run. Maximum 100.
requestTimeoutSecsinteger20Per-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:

FieldWhat it is
oktrue on a real parsed profile, false on a diagnostic row.
sourceTypepublic_linkedin_profile on real rows, sample on the free sample row.
profileUrlThe canonicalised /in/ URL that was requested.
publicIdentifierThe vanity slug from that URL, e.g. example-public-profile.
fullNamePerson.name as LinkedIn publishes it.
headlinePerson.jobTitle when present, otherwise the public description.
descriptionThe public "about" text, when LinkedIn exposes it.
profileImageUrlPublic avatar URL, or null.
sameAsThe outbound links the profile itself lists (personal site, other socials). Empty array when there are none.
transportdirect_http — the actor never runs a browser.
retrievedAtISO 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 a linkedin.com/in/ profile URL.
  • NO_RESULTS — the page loaded but carried no matching public Person record (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.