We read the live LinkedIn page and return the numeric ids.
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 matters | CrustAPI | Enrich Layer |
|---|---|---|
| Where the data comes from | The live, logged-out LinkedIn page, read on each call | A stored database, records can be any age by default |
| How fresh is a record | Read live from the page on every call | Served from a stored database, any age since its last refresh |
| LinkedIn numeric ids (company, school, member) | memberIdentifier on every profile; companyId and schoolId opt-in | None returned in our benchmark (0%) |
| A failed or empty result | Free, you pay only when data comes back | Failed requests are billed |
| Does my paid balance expire? | Never | Free credits expire in 30 days; paid credits expire after 18 months of inactivity |
| To sign up | No card, free to try | A 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.
This is the response from our dated example, trimmed for width. Current prices are listed below; a successful LinkedIn read uses the read rate.
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 whole public record, structured the same way on every call, so your parser is written once and never breaks on a schema surprise.
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.
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.
From zero to your first profile JSON in about a minute:
Create a free account. Try it free, no card needed.
Copy your key from the dashboard. Signup issues one automatically.
Run the curl above with any public profile URL. The JSON comes back with the ids in it.
Each LinkedIn endpoint has its own rate and billing unit. Private profiles, empty results and failed requests are free.
| Deposit | Google Search / 1,000 requests | Maps / 1,000 businesses | LinkedIn Profiles / 1,000 | LinkedIn Companies / 1,000 | LinkedIn Posts / 1,000 requests | People, 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.
Related: LinkedIn API · Proxycurl alternative · Lusha alternative · ZoomInfo alternative · Clearbit alternative
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.
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