The live Enrich Layer alternative

We read the live LinkedIn page and return the numeric ids.

Live page, not a cache Numeric ids included Paid funds never expire
SIDE BY SIDE

CrustAPI vs Enrich Layer

Enrich Layer is the rebranded Proxycurl. As of August 2026 it serves LinkedIn records from a stored database by default, so a row can be any age. CrustAPI reads the live logged-out page on every call.

The other gap is the numeric ids. In our own benchmark, Enrich Layer returned none of LinkedIn's numeric ids. CrustAPI returns memberIdentifier on every profile, plus company and school ids when you ask.

What mattersCrustAPIEnrich Layer
Where the data comes fromThe live, logged-out LinkedIn page, read on each callA stored database, records can be any age by default
How fresh is a recordRead live from the page on every callServed from a stored database, any age since its last refresh
LinkedIn numeric ids (company, school, member)memberIdentifier on every profile; companyId and schoolId opt-inNone returned in our benchmark (0%)
A failed or empty resultFree, you pay only when data comes backFailed requests are billed
Does my paid balance expire?NeverFree credits expire in 30 days; paid credits expire after 18 months of inactivity
To sign upNo card, free to tryA card is required, free tier is 100 to 200 credits

Enrich Layer figures reflect their public plan terms, documentation, and our own benchmark as of August 2026. Check their site for current specifics.

Everything CrustAPI returns lives at one endpoint, GET /v1/linkedin. Pick a surface with type, pass a URL, and add companyId=true and schoolId=true when you want the numeric ids resolved.

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

A real response, with the ids in it

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 banner URLs, connectionsCount, skills, // languages, the full 13-role experience and full education lists, // peopleAlsoViewed, and this key's creditsRemaining removed { "type": "linkedin-profile", "url": "https://www.linkedin.com/in/reidhoffman", "tookMs": 912, "accessible": true, "profile": { "id": "reidhoffman", "name": "Reid Hoffman", "firstName": "Reid", "lastName": "Hoffman", "headline": "Co-Founder, LinkedIn, Manas AI & Inflection AI. Founding Team, PayPal.", "currentTitle": "Co-Founder, Executive Board Chair", "currentCompany": "Manas AI", "companyState": "public", "followerCount": 2785414, "location": { "linkedinText": "United States, US" }, "influencer": true, "topVoice": true, "website": "https://www.superagency.ai/", "experience": [ { "position": "Co-Founder, Executive Board Chair", "companyName": "Manas AI", "companyLinkedinUrl": "https://www.linkedin.com/company/manas-ai", "companyLinkedInId": "106067845", "startDate": { "year": 2025 }, "endDate": { "text": "Present" } }, { "position": "Co-Founder, Board Member", "companyName": "Inflection AI", "companyLinkedinUrl": "https://www.linkedin.com/company/inflectionai", "startDate": { "year": 2022 }, "endDate": { "text": "Present" } } ], "education": [ { "schoolName": "Stanford University", "startDate": { "year": 1985 }, "endDate": { "year": 1990 } }, { "schoolName": "Oxford University", "startDate": { "year": 1990 }, "endDate": { "year": 1993 } }, { "schoolName": "Universita degli Studi di Perugia", "schoolLinkedinUrl": "https://www.linkedin.com/school/universit-degli-studi-di-perugia", "schoolLinkedInId": "2052604", "startDate": { "year": 2024 }, "endDate": { "year": 2024 } } ], "memberIdentifier": "1213", "publicIdentifier": "reidhoffman", "linkedinUrl": "https://www.linkedin.com/in/reidhoffman" } }

Three ids to notice. memberIdentifier is LinkedIn's permanent member id, the right join key because it survives name and vanity-URL changes. companyLinkedInId and schoolLinkedInId arrive when you pass companyId=true and schoolId=true.

THE FULL RECORD

What data do you get?

The whole public record, structured the same way on every call, so your parser is written once and never breaks on a schema surprise.

Identityname · headline · location · photo · profile URLNumeric idsmemberIdentifier · companyId & schoolId opt-inWorkcurrent 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 and the response appends workEmail and emailStatus (verified, pattern-likely, or unknown). Filter to the confirmed ones and treat the rest as guesses.

WHAT IT DOES NOT RETURN

Fields that only exist behind a login stay out, on purpose. Connection lists, mutual connections, and profile viewers never appear on the logged-out page, so they are not in the response. That boundary lets the API run with no accounts and nothing of yours at risk.

THREE STEPS

How do you get started?

From zero to your first profile JSON in about a minute:

  1. 1

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

  2. 2

    Copy your key from the dashboard. Signup issues one automatically.

  3. 3

    Run the curl above with any public profile URL. The JSON comes back with the ids in it.

Switch and make your first call in a minute
Try it free, no card.
Try for free
PRICING

How much does CrustAPI cost?

Each LinkedIn endpoint has its own rate and billing unit. Private profiles, empty results and failed requests are free.

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. For big profile runs, POST up to 100 URLs to /v1/linkedin/batch; a failing row never fails the batch.

WHO IT'S FOR

Who uses CrustAPI?

Related: LinkedIn API · Proxycurl alternative · Lusha alternative · ZoomInfo alternative · Clearbit alternative

BEFORE YOU ASK

Common questions

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.

Live by default. Every profile call reads the current logged-out page, so you are not handed a record of unknown age. Enrich Layer serves from a stored database by default, so a row can be any age since its last refresh. With CrustAPI the live read is the standard call, so the data is current every time.

Yes. Every profile carries memberIdentifier, LinkedIn's permanent numeric member id, and you can add companyId=true and schoolId=true to resolve the current company and school to their numeric ids. In our own benchmark, Enrich Layer returned none of these numeric ids (0%). The member id never changes with a name or vanity-URL edit, so it is the right join key for a database.

No card is needed to start. CrustAPI charges the LinkedIn read rate when the profile request succeeds. Empty or inaccessible profiles cost nothing.

CrustAPI paid funds never expire. Enrich Layer uses separate expiry terms for its credits; check its current pricing before purchasing.

We read only public, logged-out pages and never use fake accounts or logins, and fields that exist only behind a login are deliberately excluded. A site's own terms may restrict automated access on their side. What you receive is data that is public for anyone to see.

WORKS WITH YOUR STACK

Read it live, keep the ids

Start free, no card needed. One GET returns the public profile as clean JSON with LinkedIn's numeric ids, 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