The LinkedIn data API

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

Public, logged-out data Clean JSON, one endpoint 3,000 free / month
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)
from $1.96 per 1,000 down to $0.65 at volume, credits 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

One credit per successful call. A private or empty result returns 200 with a note and costs nothing. Enriched people search charges one credit per full profile returned.

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
3,000 credits a month. No card, no contract.
Get started →
THREE STEPS

How do you get started?

  1. 1

    Create a free account. You get 3,000 credits a month, 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 $1.96 → $0.65 No 3,000 / month, no card
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?

One credit is one result. Packs are pay-as-you-go and the credits never expire, so a paused project does not burn what you already bought.

ENTRY PACK
$1.96 per 1,000

$49 buys 25,000 profiles. Good for a first project or a proof of concept.

AT VOLUME
$0.65 per 1,000

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

PackCreditsYou pay
Free every month3,000$0, no card needed
25,000 profiles25,000$49 ($1.96 per 1,000)
100,000 profiles100,000$149 ($1.49 per 1,000)
500,000 profiles500,000$549 ($1.10 per 1,000)
2.5 million profiles2,500,000$1,999 ($0.80 per 1,000)

Packs continue up to 250 million credits for $100,000, which is $0.40 per 1,000. Prices ex-tax.

The free tier resets to 3,000 credits 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 is cheaper at entry. Its scraper API is $1.50 per 1,000 records against our $1.96, and its free tier is 5,000 records a month against our 3,000. If entry price and free volume are what you weigh most, it wins there.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.

One credit per successful result. Packs run from $1.96 per 1,000 profiles at the $49 entry pack down to $0.65 per 1,000 at the 10 million pack, and the credits never expire. Every account also gets 3,000 free credits a month with no card. Empty and private results are free.

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.

Yes. People search (beta) returns name, headline, location, and profile URL for each match. Add enrich=true and it returns each person's full profile in the same call, billed one credit per full profile returned.

# 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.

Get 3,000 free credits
No credit card required