The LinkedIn data API

Profiles, companies, posts, and jobs from one endpoint, no login.

Public, logged-out data Clean JSON, one endpoint Free to try
tldr.txt
one endpoint, five surfaces: profile, company, posts, jobs, people search (beta)
public pages only, no login, no cookie, nothing of yours to ban
profiles and companies come back in about a second (measured ~0.8s server time)
LinkedIn reads from $6.00 per 1,000, down to $1.50; paid funds never expire
full public profile in one call: work history, education, followers, skills
→ Bright Data is cheaper at entry ($1.50/1k) with a bigger free tier; we say so below
ONE ENDPOINT

Five surfaces, one call

Everything runs through GET /v1/linkedin?type=<type> with your key in the x-api-key header. You change the type and the inputs, not the endpoint.

type=profile

A person's public profile by url (a linkedin.com/in/ link). Name, headline, current role, location, follower count, work history, education, and more.

type=company

A company page by url (a linkedin.com/company/ link). Add employees=true to pull an employee sample alongside the company data.

type=posts

Recent public posts for a profile or company url. Add comments=true to include comment counts. One call returned 16 posts on our test.

type=jobs

A job search by keywords and optional location, or a single posting by url. One search returned 10 jobs in under half a second of server time.

type=search (beta)

People search by keywords, in beta. By default you get name, headline, location, and profile URL. Add enrich=true to return each person's full profile in the same call.

Billing is per result

LinkedIn Person, Company and Posts bill per successful request. People with Full profiles bills per full profile at the read rate. Empty and inaccessible results cost nothing.

THE REAL RESPONSE

What data do you get?

I ran this call on 2026-07-15 against the public profile at linkedin.com/in/satyanadella. Here is the request and the shape that came back, trimmed only where an array repeats. Dawson Young, founder of CrustAPI.

# the request curl "https://crustapi.com/v1/linkedin?type=profile&url=https://www.linkedin.com/in/satyanadella" \ -H "x-api-key: YOUR_KEY"
{ "type": "profile", "url": "https://www.linkedin.com/in/satyanadella", "tookMs": 796, "profile": { "name": "Satya Nadella", "headline": "Chairman and CEO at Microsoft", "currentTitle": "Chairman and CEO", "currentCompany": "Microsoft", "location": "Redmond, Washington, United States, US", "city": "Redmond", "state": "Washington", "country": "US", "followerCount": 12068716, "connectionsCount": 500, "publicIdentifier": "satyanadella", "linkedinUrl": "https://www.linkedin.com/in/satyanadella", "photo": "https://media.licdn.com/dms/image/...", "bannerImage": "https://media.licdn.com/dms/image/...", "memberId": "19186432", "experience": [ { "position": "Chairman and CEO", "companyName": "Microsoft", "companyLinkedinUrl": "https://www.linkedin.com/company/microsoft", "location": "Redmond, Washington", "startDate": "2014-02", "endDate": null } // 5 roles total ], "education": [ /* 3 schools: schoolName, schoolLinkedinUrl, dates */ ], "skills": [], "honorsAndAwards": [], "languages": [] } }

We drop LinkedIn's placeholder guest connection value of 8 and report the real 500+ figure. The skills array can be empty on some profiles, so we never promise it is always filled. Something look off? Email support@crustapi.com.

Run this exact call free
Try it free. No card, no contract.
Try for free
THREE STEPS

How do you get started?

  1. 1

    Create a free account. Try it free, no card needed.

  2. 2

    Copy your key from the dashboard.

  3. 3

    Run the curl above with any linkedin.com/in/ URL. Swap type= for company, posts, or jobs.

MEASURED JULY 15, 2026

Speed, measured

These are the server processing times (tookMs) from live calls I ran on 2026-07-15; wall-clock is a little higher because it includes network. Profiles and companies land in about a second, and people search (beta) is slower.

Profile
tookMs796ms · wall 1380ms
Company
tookMs793ms · wall 1004ms
Jobs (10 returned)
tookMs486ms · wall 773ms
Posts (16 returned)
tookMs1450ms · wall 1798ms
People search (beta)
tookMsabout 1 to 3s, occasionally slower

People search (beta) returns matching public profiles with name, headline, location, and URL, and a search can occasionally come back empty, which is free. When you need the full record for each match, add enrich=true and it returns full profiles in the same call.

THE FIELD

LinkedIn data vendors, side by side

The prices below are normalized to per 1,000 profile records where a vendor publishes enough to do the math. Where a vendor does not publish a per-profile price, that is what the cell says. Sources are linked in each row.

VendorMethodPer 1,000EmailFree tier
CrustAPI Public, logged out $6.00 standard; see deposit rates below No $6 of free usage each month
Bright Data scraper API Public scraping $1.50 (PAYG) No work email 5,000 / month, no card
Bright Data datasets Pre-collected database ~$2.50 ($250 min order) No Free sample
ScrapIn Public / real-time PAYG from $500, no public per-profile price Claimed, unverified None ($30 paid 7-day trial)
Lix Account / extension ~$98 ($49 per 500 calls) Add-on, extra None
Unipile Your own connected accounts €5 / account / month (€49 min) No None
PhantomBuster Your own session cookie Execution time, $69–$439 / month Separate tool Free trial
Apify (dev_fusion) Public, no cookie $10.00 No Apify free credits
Apify (apimaestro) Public, no cookie $5.00 No Apify free credits
EnrichLayer Cached database (live +9 credits) 1–3 credits at $0.02–$0.10 each Separate endpoint Free credits

Figures pulled from each vendor's public pricing pages, checked July 15, 2026. Prices and tiers change; if a cell is stale, tell us at support@crustapi.com and we will fix it.

WHY THE METHOD MATTERS

How the methods differ

The "Method" column above is the most important one, because it decides what can go wrong for you. There are three ways to get LinkedIn data, and they carry very different risk.

Public, logged out

Read the same pages a signed-out visitor sees. No account, no login, nothing of yours to restrict or ban. CrustAPI, Bright Data's scraper API, and ScrapIn work this way.

Account or session cookie

The data rides on a real LinkedIn login, usually yours. PhantomBuster, Unipile, and Lix work this way. It reaches more, but the account can be restricted or banned and there are daily caps.

Pre-collected database

A snapshot gathered earlier and served back fast. Bright Data datasets, EnrichLayer's default cache, and similar providers work this way. Quick, but a record can be stale between refreshes.

Why public is the safe lane

If a method needs a login, some account has to accept the risk. Public and logged out puts no account of yours in the loop, so a job or a project cannot get your LinkedIn profile banned. That is the lane CrustAPI is in.

WHO IT'S FOR

Who uses this API?

THE WORKED MATH

How much does LinkedIn data cost?

The billing unit is one result. Packs are pay-as-you-go and the paid funds never expire, so a paused project does not burn what you already bought.

ENTRY PACK
$1.96 per 1,000

A $49 deposit covers about 8,166 successful LinkedIn reads at standard prices, before the separate monthly free allowance. Larger deposits get lower rates.

AT VOLUME
$0.65 per 1,000

$6,500 buys 10 million profiles. The bigger the pack, the lower the per-1,000 rate.

DepositGoogle Search / 1,000 requestsMaps / 1,000 businessesLinkedIn reads / 1,000 requestsPeople, Jobs, Refresh / 1,000 units
$10+$1.00$1.96$6.00$1.96
$149+$0.76$1.49$4.50$1.49
$549+$0.56$1.10$3.30$1.10
$1,999+$0.41$0.80$2.45$0.80
$6,500+$0.33$0.65$1.95$0.65
$27,500+$0.28$0.55$1.65$0.55
$50,000+$0.26$0.50$1.50$0.50
$100,000+$0.20$0.40$1.50$0.40

Every eligible account gets $6 of free usage monthly. Each deposit keeps its prices until spent; paid funds never expire. People and Jobs bill per successful search, Refresh per accessible profile. Full profiles in People use the read rate per full profile. See all billing details.

Larger deposits unlock lower endpoint prices. Each deposit keeps its prices until spent. See the full deposit table on the pricing page. Prices in USD, ex-tax.

The free tier resets every month and does not stack. Empty and private results are free, so a run of dead URLs does not cost you.

hiQ v. LinkedIn (CFAA). The Ninth Circuit held in 2019, reaffirmed on April 18, 2022, that scraping data from a public website is not access "without authorization" under the Computer Fraud and Abuse Act, because a public page has no login gate to circumvent (EFF). The caveat: hiQ still lost on contract. It had signed in, agreed to LinkedIn's User Agreement, used fake accounts, and settled for $500,000 (Privacy World).

Meta v. Bright Data (Jan 23, 2024). A federal court ruled that the Facebook and Instagram Terms do not bar logged-off scraping of public data (Bright Data, TechCrunch).

X Corp. v. Bright Data (May 9, 2024). The court dismissed X's claims, finding that attempts to block copying of public data were preempted by federal copyright law (Social Media Today).

The gate framing. Courts treat the two situations differently. Reading a public, logged-out page is like walking through an open door, there is no login gate to breach, whereas logging in, or creating fake accounts to do so, crosses an authorization gate.

The contrast that shows the line. When Proxycurl was hit with a permanent injunction to delete unlawfully obtained data and stop accessing LinkedIn, what LinkedIn had gone after was fake logged-in accounts, not public logged-out reading (Social Media Today). CrustAPI uses no accounts and no fake profiles, so it is not in that situation.

Keep two things in mind. The Bright Data rulings are district-court decisions, the X ruling was on a motion to dismiss, and each turned on those platforms' specific terms. The fair way to say it: logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims, not that scraping is settled law. This is background, not legal advice; check your own use with a lawyer.

FAIR PLAY

Where the others win

Bright Data has its own pricing and free allowance. CrustAPI’s standard LinkedIn read rate is $6.00 per 1,000, falling to $1.50 for the largest deposit, with $6 of free usage monthly. Compare the current rates and fields you need.Cheaper entry
Bright Data datasets hand you a large pre-collected snapshot fast, which beats live calls when you want millions of records at once and can accept that some are stale between refreshes.Bulk snapshot
Account-based tools like PhantomBuster and Unipile reach data that only appears behind a login. If you accept the account risk and need that reach, a session method covers ground a public reader cannot.Behind login
BEFORE YOU ASK

Common questions

For a public profile it returns name, headline, current title and company, location parsed into city, state, and country, follower count, connections count, work history with company and dates, education, and fields like public identifier, profile URL, photo, banner image, and member ID. The skills array is present but can be empty on some profiles.

Not from this endpoint. It returns the public profile data, so name, work history, company, followers, and the rest, and email is not part of that response today.

No account of yours is involved. CrustAPI reads public pages while logged out, with no login and no session cookie, so there is no account of yours to restrict or ban. That is different from tools that run through your own LinkedIn login.

Logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims. In hiQ v. LinkedIn the Ninth Circuit held that scraping a public site is not access without authorization under the CFAA, and in Meta v. Bright Data and X Corp. v. Bright Data district courts declined to block logged-off scraping of public data. Those are district-court decisions on specific terms, and hiQ still lost on a contract it had agreed to, so none of this makes scraping settled law. This is background, not legal advice; check your own use with a lawyer.

profile for a person by their linkedin.com/in URL, company for a company page by its linkedin.com/company URL with an optional employee sample, posts for recent public posts of a profile or company, jobs for a keyword and location search or a single posting, and search for people search by keywords (beta) with an optional enrich flag that returns each full profile.

On July 15, 2026 a profile call returned in 796ms of server time and a company call in 793ms, both about a second including network. Jobs returned 10 results in 486ms and posts returned 16 in about 1.45s. People search is slower, about 1 to 3 seconds typically, and can occasionally return zero results, which are free.

LinkedIn Person, Company and Posts cost $6.00 per 1,000 successful requests at standard prices, down to $1.50 for the largest deposit. Work email lookup is included. People with Full profiles uses that rate per full profile returned. Empty and inaccessible results are free. Paid funds never expire.

It comes down to method. CrustAPI and Bright Data's scraper API read public pages while logged out. PhantomBuster and Unipile run through a real LinkedIn login, which reaches more but puts an account at risk. Bright Data datasets serve a pre-collected snapshot that is fast but can be stale between refreshes. Public and logged out is the lane with nothing of yours to ban.

People returns indexed matches. Add enrich=true to request full profiles, billed per full profile returned at the LinkedIn read rate.

# one endpoint, five surfaces curl "https://crustapi.com/v1/linkedin?type=profile&url=https://www.linkedin.com/in/USERNAME" -H "x-api-key: YOUR_KEY"

Full parameter reference at /docs#linkedin.

WORKS WITH YOUR STACK

Try it on your own URLs

Point the endpoint at the profiles, companies, and jobs you actually care about. The free tier is real, and the JSON decides, not this page.

Try for free
No credit card required