Yes, there is a public LinkedIn API

Reads only the logged-out page. No accounts, no cookies.

Logged-out public pages only No accounts or cookies Not-accessible profiles free
THE SHORT ANSWER

Is there a public LinkedIn API? Yes.

LinkedIn does not publish a general-purpose data API, which is why people keep searching for one. CrustAPI fills that gap: GET /v1/linkedin reads the logged-out public page and hands it back as clean JSON.

This page answers the two questions people ask most: does a public LinkedIn API exist, and is using one allowed. For the full field reference, see the LinkedIn API page; for the step by step, see how to scrape LinkedIn without login.

Pick a surface with type, pass a URL or keywords, and receive JSON under a key named after the type. The pricing page explains each endpoint’s billing unit. Empty and inaccessible results are free.

typeWhat the public page gives youInput
profileThe public profile: name, headline, work history, education, follower count, and stable ids. The default type.url (a linkedin.com/in/... URL)
refreshThe current company and school with their numeric LinkedIn ids, plus companyState. The lean, low-latency call for keeping a database current.url
companyThe public company page. See the LinkedIn company API for the full shape.url (a linkedin.com/company/... URL)
postsPublic posts, up to 100 per call. Add comments=true for comments on each post.url (profile or company)
jobsPublic job listings, up to 50 per call, with paging via start.keywords plus optional location, or a job url
search (beta)People search over public results. Add enrich=true to get each person's full profile in the same call.keywords

Note the input rule: profile, company, and posts take url, never a search query. If you only have a name, find the person first with type=search (beta), then pass the profile URL you get back.

curl "https://crustapi.com/v1/linkedin?type=profile&url=https://www.linkedin.com/in/satyanadella" \ -H "x-api-key: YOUR_KEY"
PULLED LIVE FROM THE API, AUGUST 11, 2026

A real response, not a mockup

This is the response from our dated example, trimmed for width. Current prices are listed below; a successful LinkedIn read uses the read rate.

// trimmed for width: photo and id fields, parsed location detail, // the remaining experience and education entries, and this key's // creditsRemaining removed { "type": "linkedin-profile", "url": "https://www.linkedin.com/in/satyanadella", "tookMs": 1049, "accessible": true, "profile": { "name": "Satya Nadella", "headline": "Chairman and CEO at Microsoft", "currentCompany": "Microsoft", "companyState": "public", "followerCount": 12110954, "memberIdentifier": "19186432", "experience": [ { "position": "Chairman and CEO", "companyName": "Microsoft", "companyLinkedinUrl": "https://www.linkedin.com/company/microsoft", "startDate": { "year": 2014 }, "endDate": { "text": "Present" } } // 4 more experience entries trimmed for width ], // 3 education entries trimmed for width "linkedinUrl": "https://www.linkedin.com/in/satyanadella" } }

Two fields worth noticing. accessible tells you whether the profile has a public page at all; when it is false, profile is null, a note explains why, and the call is not charged.

memberIdentifier is LinkedIn's permanent numeric member id. It survives name and vanity-URL changes, so it is the right join key for a database.

WHAT PUBLIC MEANS

What data do you get?

A public LinkedIn API can only return what a signed-out visitor sees. That is a feature, not a limit: it is what lets the call run with no account of yours attached.

Identityname · headline · location · photo · profile URLIdsmemberIdentifier · publicIdentifierWorkcurrent role · full experience history · company URLs · datesBackgroundeducation · schools · degreesSignalsabout · followerCount · influencer · topVoiceContactworkEmail with emailStatus, opt-in

The email field is opt-in: add email=true to a profile call and the response appends workEmail and emailStatus.

The status is verified, pattern-likely, or unknown, so you can keep the confirmed addresses and treat the rest as guesses. Email is a field on the profile call, not a separate product.

WHAT IT DOES NOT RETURN

Fields that only exist behind a login stay out, on purpose. A person's connection list, mutual connections, who viewed a profile, or anything else that never appears on the logged-out page is not in the response. That boundary is what makes it a public LinkedIn API in the first place, with no account and nothing of yours at risk.

Make your first call in the next minute
Try it free, no card.
Try for free
IS IT ALLOWED

Is a public LinkedIn API allowed?

The short version: it reads data that is already public, and it uses no login. Here is the fuller picture, without the hand-waving.

The data comes from pages that anyone can open in a browser with no account. Logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims. No fake accounts, no logins, no CAPTCHA fraud.

A site's terms still restrict automated access on their side, which is why we keep the whole thing to public pages and never touch a login wall. We handle the collection, and what you receive is plain public data.

That distinction separated the tools that survived from the ones that were shut down: reading public pages logged-out is not the same as operating fake logged-in accounts.

THREE STEPS

How do you get started?

From zero to your first profile as JSON in about two minutes:

  1. 1

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

  2. 2

    Copy your key from the dashboard. It is issued the moment you sign up.

  3. 3

    Run the curl above with any public LinkedIn URL. The profile comes back as JSON.

PRICING

How much does the API cost?

Every successful call is the applicable endpoint price, whatever the type. A profile that is not accessible costs nothing, and an empty search result is free. Here is what the packs cost:

DepositGoogle Search / 1,000 requestsMaps / 1,000 businessesLinkedIn Profiles / 1,000LinkedIn Companies / 1,000LinkedIn Posts / 1,000 requestsPeople, Jobs, Refresh / 1,000 units
$10+$1.00$1.96$4.00$3.00$6.00$1.96
$149+$0.76$1.49$3.00$2.50$4.50$1.49
$549+$0.56$1.10$2.50$2.00$3.30$1.10
$1,999+$0.41$0.80$2.00$1.75$2.45$0.80
$6,500+$0.33$0.65$1.75$1.60$1.95$0.65
$27,500+$0.28$0.55$1.60$1.50$1.65$0.55
$50,000+$0.26$0.50$1.50$1.50$1.50$0.50
$100,000+$0.20$0.40$1.50$1.50$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.

Paid funds never expire. People search with enrich=true bills per full profile returned at the LinkedIn read rate.

WHO IT'S FOR

Who uses this API?

Related: LinkedIn API reference · Scrape LinkedIn without login · LinkedIn company API · Proxycurl alternative

BEFORE YOU ASK

Common questions

Yes. CrustAPI is a public LinkedIn API at GET /v1/linkedin. It reads the logged-out public version of a profile, company page, or job listing and returns it as clean JSON. Set type to profile, refresh, company, posts, jobs, or search (beta). Each successful call uses its endpoint rate, and a profile that is not accessible is free.

No. It reads only the public, logged-out page, so there is no cookie to paste, no session to hand over, and no account of yours in the request. Fields that appear only behind a login, like connection lists, are deliberately not part of it.

It reads data that is already public for anyone to see, with no login. Logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims, and we use no fake accounts or logins. A site's terms still restrict automated access on their own side, so we keep to public pages, handle the collection, and hand you plain public data.

For a profile: name, headline, location, current company, the full experience history with company links and dates, follower count, and stable identifiers including memberIdentifier, LinkedIn's permanent numeric member id. Add email=true to append workEmail with an emailStatus of verified, pattern-likely, or unknown. Company pages, public posts, and job listings have their own shapes on the same endpoint.

Pay only for results at the applicable endpoint rate. Google Search bills per successful request and Maps per business returned. LinkedIn reads bill per successful request, People and Jobs per successful search, Refresh per accessible profile, and enriched People per full profile. Empty and failed requests are free. The pricing page lists every rate.

Same endpoint, different question. This page answers whether a public LinkedIn API exists and whether it is allowed. The LinkedIn API page is the full reference for every type, field, and parameter, and the scrape LinkedIn without login page is the step by step.

WORKS WITH YOUR STACK

Point it at a profile and see

Start free, no card needed. One GET returns the public profile as clean JSON, and a profile that is not accessible costs you nothing. No account of yours is ever part of the request.

Try for free
No credit card required