Back to guides
/Linked API

LinkedIn Scraper API: What It Returns and What It Costs (2026)

A LinkedIn scraper API returns structured LinkedIn data – profiles, companies, posts, search results, jobs – to your code, so you never write a selector or run a headless browser. This guide is the evaluation material: what comes back per entity, what each provider charges, and a real request with the JSON it produces. "LinkedIn scraper API" covers three different products, so it also says plainly which one fits which job, including where a dataset or a real-time scraper beats what we build.

The short version. Need millions of cold profiles in bulk? Use a dataset. Need fresh public pages on demand? Use a real-time scraper. Need the data your own account can see – your network, your searches, Sales Navigator, your inbox – and the ability to act on it? Use an account-based API. Only the last kind can send a connection request or a message, and only the first is cheap at a million records.

What a LinkedIn scraper API returns

Here is the whole contract, on one screen. You start a request, you get a handle back, and you read the result:

typescript
const profile = await linkedapi.fetchPerson.execute({
  personUrl: 'https://www.linkedin.com/in/jane-doe',
  retrieveExperience: true,
  retrieveSkills: true,
});

// execute() returns a handle, not the data - the work runs in your account
const { data, errors } = await linkedapi.fetchPerson.result(profile.workflowId);

data is typed JSON:

json
{
  "name": "Jane Doe",
  "publicUrl": "https://www.linkedin.com/in/jane-doe",
  "headline": "Head of Growth at Acme",
  "location": "San Francisco, California, United States",
  "position": "Head of Growth",
  "companyName": "Acme",
  "followersCount": 4820,
  "experiences": [
    {
      "position": "Head of Growth",
      "companyName": "Acme",
      "employmentType": "fullTime",
      "locationType": "hybrid",
      "duration": 26,
      "startTime": "2024-01-01T00:00:00Z",
      "endTime": null
    }
  ],
  "skills": [
    { "name": "Demand Generation" },
    { "name": "SEO" },
    { "name": "Lifecycle Marketing" }
  ]
}

Two things to be clear about, because they are the real difference between the models. First, this is an asynchronous workflow, not one HTTP call that hands back finished JSON: execute starts the work and returns a workflowId, result gives you { data, errors } when it is done. Second, the work runs inside your own LinkedIn account in a dedicated cloud browser, at the pace of a person – a simple fetch takes seconds, a heavy one minutes, and actions run sequentially rather than in parallel. The ceiling is not a rate limit we invented; it is your account's own, and you configure the per-action limits the platform then enforces. Sensible values are in the LinkedIn limits guide.

Every other operation follows the same execute then result pattern – the people search below is the same two steps against a different operation.

Is there a LinkedIn API for scraping?

Not from LinkedIn. Its official API is a partner program: the open tier essentially returns your own profile and lets you publish posts, and reading other people's profiles, search results or audience data needs Partner Program approval, which is selective and slow. The full picture of what you can and cannot get through official channels is in our LinkedIn API access guide.

So "LinkedIn scraper API" always means a third-party product, and there are three of them:

ModelHow it worksFreshnessWhat it reachesCan it act?Risk sits with
Dataset / databaseQuery a pre-collected databaseMonths to yearsBulk public profilesNoThe data holder
Real-time scraperPass a URL or ID, fetched live through proxiesLivePublic pagesNoThe provider
Account-based APIRuns your own authenticated accountLiveYour network, searches, Sales Navigator, inbox, public dataYesYour account

What you can extract, per entity

This is the table most "scraper API" pages leave out. Ceilings below are LinkedIn's own daily limits for an established account, not ours:

EntityWhat comes backDaily ceiling on one accountMethod
Person profileName, headline, location, current role, company, about, follower count, experience, education, skills, languages~80 views on a free account, ~150 on Premium, up to ~1,000 through Sales NavigatorfetchPerson
CompanyDescription, industry, headquarters, size, founding year, specialties, employees, decision-makers~100 free, ~200 Premium, up to ~1,000 through Sales NavigatorfetchCompany
PostsText, author, hashtags, media, reactions and comments with each engager's name and headlineCounts against reading limits, not a separate capfetchPost
People searchMatching people with filters for role, location, industry, current and past company, school300 searches a month on free and Premium Career; unlimited on Premium Business, Sales Navigator and Recruiter. One query returns up to 1,000 results (2,500 in Sales Navigator)searchPeople
JobsJob posts and search results – title, company, location, description, posting dateJob search does not count against LinkedIn's commercial-use limitsearchJobs, fetchJob
Sales NavigatorLead and account search, lead data, InMail and the Sales Navigator inboxUses your Sales Navigator seat's own limitsnvSearchPeople and the other nv- operations

Entity-level detail, with working code for each, lives in the dedicated guides: profiles, companies, posts, jobs and Sales Navigator.

What a third-party profile fetch does not reliably give you is someone else's contact details. LinkedIn shows Contact Info at the member's discretion, mostly to connections, and its own OIDC permission returns only the email of the member who consented – so emails and phone numbers at scale do not come from a profile API of any kind. Source them from a consented enrichment provider instead; harvesting them is the fastest route into legal trouble.

LinkedIn scraper APIs compared

Prices and capabilities below come from each vendor's own pricing and product pages.

ProviderModelInputCan it act?Published priceFree tier
Bright DataReal-time scraper plus a pre-collected datasetURL batches (up to 5,000 per call), keyword discoveryNo$1.50 per 1,000 records pay-as-you-go; $499/mo including 384,000 records; datasets $250 per 100,0005,000 records a month
ScrapingdogReal-time scraperProfile, company and post IDs; job search by keyword and locationNoCredit-based: a person profile costs 50–100 credits, a company 10, a post 5. $40/mo buys 200,000 credits, so 2,000–4,000 profiles200 starting credits
ApifyMarketplace of community-built actors – there is no first-party LinkedIn actorProfile URLs or IDs, or a search URL with filtersActor-dependent – the read actors cannot; one community actor sends connection requests if you paste in your session cookiesPlatform plan from $0 to $999/mo plus per-run actor charges; a representative profile actor charges $4 per 1,000 profiles, $10 with email lookup; the connection-request actor $25/mo plus usage$5 of usage a month
UnipileAccount-basedA connected account plus an identifierYes€5.00 per connected account per month, minimum €49/mo for up to 10 accounts, no per-request fee7-day trial
Linked APIAccount-based, in a dedicated cloud browserA connected account; actions composed as workflowsYes$49 per seat per month billed annually, no per-record metering7-day trial

What the table actually says. The read-focused products cannot act on LinkedIn, and they are explicit about why: they never hold a session. Bright Data's LinkedIn scrapers cover "only publicly available data", Scrapingdog scrapes "publicly available LinkedIn person profiles", and the most-used Apify profile actor sells "no cookies, no login, no browser required" as its headline feature. That property is exactly what keeps them clear of your account – and what stops them sending a connection request, reading your inbox, or seeing a Sales Navigator result.

Apify is the one to qualify rather than dismiss: it is a marketplace, so capability varies by actor. Alongside the read-only scrapers there is a community actor that does send connection requests – by asking you to copy your LinkedIn session cookies out of your browser and paste them into a third-party actor. That is a real capability and a different safety model from either the read-only scrapers or an account-based API, where the session is established once and stays inside the platform.

Unipile is the one genuine peer: it also drives your own account, and it also acts. The difference there is execution rather than capability – it constructs reverse-engineered calls to LinkedIn's private interface and bills per connected account, where Linked API runs a real browser session on LinkedIn's own pages and bills per seat. Our head-to-head with Unipile covers that layer difference properly.

And where the others win, they win clearly. For a million cold profiles, Bright Data's dataset at $250 per 100,000 records is a different order of magnitude from any account-based product, and no per-seat model competes with it. For cheap public reads at moderate volume, Scrapingdog is hard to beat on unit cost. For breadth of odd jobs, Apify's marketplace has an actor for almost anything – at the price of depending on a community maintainer rather than a vendor.

Make your first call

Install the SDK:

bash
# Node.js
npm install -S @linkedapi/node

# Python
pip install linkedapi

Initialize the client and run a people search – the same execute then result pattern as the profile fetch above:

typescript
import LinkedApi from '@linkedapi/node';

const linkedapi = new LinkedApi({
  linkedApiToken: process.env.LINKED_API_TOKEN,
  identificationToken: process.env.IDENTIFICATION_TOKEN,
});

const search = await linkedapi.searchPeople.execute({
  term: 'head of growth',
  limit: 25,
  filter: { locations: ['United States'], industries: ['Software Development'] },
});

const { data } = await linkedapi.searchPeople.result(search.workflowId);
data?.forEach((person) => console.log(person.name, '-', person.publicUrl));

Grab your tokens from the installation guide. Writing this in Python rather than TypeScript? Scraping LinkedIn in Python puts the same extraction next to a Playwright script and checks the state of the open-source libraries.

Two ways to run it: build it in, or hand it to an agent

Both routes are first-class, and which one you want depends on whether you are building a product or running a workflow.

Build it in. The REST API and the Node and Python SDKs plus the shell CLI give you the primitives above to compose into your own logic – your backend, your CRM, your scheduler.

Get it out of the box. Install a ready-made agent skill with npx @linkedapi/skills, or point an assistant at the MCP server or the AI-agent-friendly CLI (Claude Code, Cursor, Codex), and ask in plain language: "find heads of growth at Series B fintechs in London, pull their profiles, and message the ones who posted about hiring this month." The agent composes and runs the same workflows. Nothing to wire up.

Scraper API vs building your own scraper

The real question for most engineers is "should I just build this myself?" It comes down to maintenance and risk, not difficulty:

FactorBuild it yourselfScraper API
Time to first dataDays to weeksMinutes
Proxies and CAPTCHAsYou manage themHandled
Selectors breakYou fix them, foreverHandled
Account-ban riskHigh, hard to controlLower, paced for you
Cost at low volume"Free" but your timeFree tier to low monthly
Cost at massive volumeCheaper per recordMore per record
Best whenYou have niche needs and timeYou want data and to ship

If you want to build it anyway, our guide to scraping LinkedIn covers the methods, the detection signals, and why headless scraping breaks.

In hiQ Labs v. LinkedIn (9th Cir. 2022) the Ninth Circuit affirmed a preliminary injunction, finding hiQ had raised serious questions that scraping public LinkedIn data likely does not violate the CFAA – but it still falls under LinkedIn's terms, and under GDPR and CCPA when personal data is involved. The three-layer model is in our scraping guide.

The cautionary tale for this category is Proxycurl: one of the most popular LinkedIn data APIs until LinkedIn sued its operator in 2025 over fake accounts and scraping, after which the service shut down and its data was slated for deletion. The lesson is about who carries the risk. An account-based API runs your own real session, holds no scraped index, and paces itself – which keeps accounts healthy, but is not immunity and will not pull a hundred thousand profiles a day.

Frequently Asked Questions (FAQ)

No. The official API is partner-gated and does not expose other people's profiles, search results or audience data, which is why every "LinkedIn scraper API" is a third-party product – a dataset, a real-time scraper, or an account-based API that runs your own session.

None are free at working volume, but most have a free tier to test with: Bright Data gives 5,000 records a month, Scrapingdog 200 starting credits, and Apify $5 of monthly usage. Account-based products give trials instead – Linked API a 7-day trial, Unipile the same.

Yes, but restricted. The open tier mainly returns your own profile and lets you share posts. Anything broader needs Partner Program approval, which is selective and can take weeks.

For a scraper API, you sign up with the provider and get a token. For Linked API you get two – an account token and a per-account identification token – from the dashboard; see the installation guide.

The official API exposes a narrow, approved slice of data through OAuth. A scraper API returns what a user can actually see – profiles, companies, posts, search – without partner approval, and operates outside LinkedIn's official program.

Yes, with a real-time scraper or an account-based API. Datasets are not real time: they serve pre-collected records that can be months or years old.

With an account-based API the ceiling is your account's own: roughly 80 profile views a day on a free account, ~150 on Premium, up to ~1,000 through Sales Navigator. Scrapers and datasets go higher because they do not use your account.

Not for standard profile, company, post or job data. Sales Navigator unlocks its own search and lead surfaces, which account-based APIs reach through your seat – see the Sales Navigator API guide.

Any automation carries risk. It is lowest when requests come from your own authenticated account at human pace, which is how an account-based API is built to behave. Aggressive headless scraping on a logged-in account is what gets flagged.


Want fresh LinkedIn data and the ability to act on it, without running a scraper? Start with Linked API – your account runs in its own dedicated cloud browser at human pace, within the per-action limits you configure, on flat per-seat pricing from $49/mo billed annually with a 7-day trial – and use it both ways: build it into your product with the REST API, SDKs and CLI, or get it out of the box through the MCP server and ready-made agent skills.

Facts verified September 24, 2026 – Bright Data, Scrapingdog, Apify and Unipile pricing, entity coverage and action capability checked against their live product and pricing pages on that date.