~ / endpoints / Email & Lead API

LinkedIn Email Scraper API

Our LinkedIn email scraper reads the public contact fields of a profile or company and returns them as JSON: the external website, a phone number when listed, and an email when one is genuinely public. This LinkedIn email and lead scraper is honest by design, since a LinkedIn member's email is a private field that almost never appears logged-out.

Get a free API keyBrowse the endpoints
1,000
free requests / mo
2.6s
median response
JSON
structured output
1
flat charge per lookup
why it is walled

Why LinkedIn Email data is login-walled

A LinkedIn member's email lives behind the logged-in "Contact info" modal, which needs a first-degree connection, so it is essentially never in the public page. What is public is the external website (companies expose it in their Organization data), so this endpoint returns a website far more often than an email, and the response says so on every call.

one request

Call the LinkedIn Email Scraper API in one request

cURL
curl "https://api.linkedinscraperapi.com/api/v1/linkedin/email?url=https://www.linkedin.com/company/microsoft/&api_key=$API_KEY"
Python
import requests

BASE = "https://api.linkedinscraperapi.com"
API_KEY = "YOUR_API_KEY"

# Pass a /company/ or /in/ URL (or username= for a person).
data = requests.get(
    f"{BASE}/api/v1/linkedin/email",
    params={
        "url": "https://www.linkedin.com/company/microsoft/",
        "api_key": API_KEY,
    },
    timeout=30,
).json()

# website is the field that actually populates; email is usually null.
print("website:", data["website"])
print("email:", data["email"], "| phone:", data["phone"])
print(data["note"])   # states the member-email wall on every response
inputs

Parameters

ParameterRequiredDefaultNotes
urloptional-A /in/{slug} or /company/{slug} URL. A /company/ URL is detected as a company. One of url or username is required.
usernameoptional-A bare slug, treated as a person /in/ slug by default. One of url or username is required.
api_keyrequired-Your API key, passed as a query parameter. Get one free at signup.
the JSON

The JSON the LinkedIn Email Scraper API returns

200 OK
{
  "url": "https://www.linkedin.com/company/microsoft/",
  "is_company": true,
  "email": null,
  "website": "https://news.microsoft.com/",
  "phone": null,
  "note": "LinkedIn member emails are private (behind the logged-in \"Contact info\" modal) and are essentially never present in the public/logged-out page; only an external website (and rarely a company phone) is publicly exposed."
}
FieldTypeDescription
urlstringThe canonical profile or company URL the lookup resolved to.
is_companybooleanTrue when the target is a /company/ page, false for a /in/ person profile.
emailstringA public email when one is exposed (a mailto: link or an email field in the page data). Usually null, since member emails are private.
websitestringThe external website, the first non-LinkedIn URL in the Organization or Person data. The field that most often populates.
phonestringA phone number when the page lists one (mostly companies), otherwise null.
notestringA plain-language statement of the member-email wall, returned on every response so the scope is never ambiguous.
who uses it

Who pulls LinkedIn data, and for what

>

Company website enrichment

Resolve a list of company URLs into the external website, the field that reliably populates, to enrich accounts with their real homepage.
>

Lead qualification

Read is_company and website to confirm and route a lead, then reach out through the company's own site or listed contact channels.
>

Contact-channel discovery

Capture the website and any listed phone for a company so your team has a public, respectful way to make contact.
>

CRM website backfill

Fill missing company website fields in a CRM from LinkedIn company pages in one call each, without manual lookups.
>

Compliance-aware prospecting

Because the response is honest about what is and is not public, build prospecting lists that only use genuinely public contact data.
>

Data-availability auditing

Run a batch to see, per target, whether an email or phone is actually public, and plan outreach around what the data really supports.
why this endpoint

Why teams build on our LinkedIn Email Scraper API

Our LinkedIn email scraper reads the public Organization or Person data and returns the contact fields that are actually exposed, chiefly the external website, plus a phone or email on the rare pages that list one. Every request runs through residential proxies with retries at a 2.6s median, and every response carries a note stating the member-email wall in plain language, so you never build outreach on a field LinkedIn does not publish.

*

Profile or company input

One endpoint accepts a /in/ profile or a /company/ page (or a bare username) and detects which it is, returning is_company on the response.
*

External website resolved

We pick the first non-LinkedIn URL from the page data, so website is the target's real homepage, the field that most reliably populates.
*

Honest scope note

Every response includes a note that states plainly that member emails are private and rarely public, so the output is never misread as a full contact record.
*

Email and phone when public

When a mailto: or a listed phone is genuinely present we return it; otherwise those fields are null, never fabricated.
*

Residential-first routing

We lead with residential proxies and fall back through datacenter and free tiers, because LinkedIn walls datacenter egress on these pages more often.
*

Honest wall reporting

If the page is an authwall shell with no identity, the endpoint reports the block rather than returning an empty contact record as if it were real.
measured against

LinkedIn Email Scraper API measured against the alternatives

Our APIDIY (requests / headless)Official LinkedIn API
Input by profile or companyYes, /in/ or /company/ URLManual fetch and parseContact data is consent-gated
External websiteResolved from page dataYou filter LinkedIn links yourselfSometimes in authorized Pages data
Member emailNull unless truly public, with a noteNot in the logged-out pageNever exposed to general apps
SetupAPI key onlyResidential proxies, headless browser, parsersPartner approval plus OAuth
Honesty about scopePlain note on every responseYou infer it yourselfDocumented but scope-limited
Anti-bot and proxiesResidential-first, built inYou build and maintain itNot applicable
Behavior when walledReports the block honestlySilent partial or empty recordReturns only authorized fields
what it costs

Usage-based pricing, no seats

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

Can I get a LinkedIn member's email from this API?

Almost never, and we say so on every response. A LinkedIn member's email sits behind the logged-in "Contact info" modal, which requires a first-degree connection, so it is essentially never present in the public logged-out page. This endpoint returns the contact fields that are actually public, chiefly the external website, and returns email as null when no public address exists. It does not bypass the private Contact-info modal.

What does the LinkedIn email and lead scraper actually return?

It returns url, is_company, email, website, phone, and a note. In practice website is the field that populates, since companies expose their homepage in their Organization data. email and phone come back only when a mailto: or a listed number is genuinely public, and null otherwise. The note states the member-email wall in plain language so the scope is always clear.

Why is website populated but email null?

Because they have different visibility. A company's external website is part of the public Organization data LinkedIn renders logged-out, so it comes through reliably. A member's email is a private field gated behind a login and a connection, so it is not in the public page. That is why this endpoint returns a website far more often than an email, and why it is honest about the difference rather than implying it can reveal private addresses.

Can I pass a person profile as well as a company?

Yes. Pass a /in/ profile URL or a bare username to look up a person, or a /company/ URL to look up a company. The endpoint detects which it is and returns is_company accordingly. For people, website comes from the profile's public links when present; the email remains private in almost all cases.

Is it legal to collect contact data this way?

This endpoint only reads contact fields that are already public, and it is explicit about how little of that is an email. Collecting publicly available business data is generally permitted, but sending is regulated: laws such as the US CAN-SPAM Act require a working opt-out, and the EU GDPR requires a documented lawful basis. Treat any address as a public business contact, message people about genuine business reasons, and honor every unsubscribe. This is general information, not legal advice.

Do I need a LinkedIn login or the official API?

No. You only need a linkedinscraperapi key, passed as the api_key query parameter. There is no LinkedIn login, no cookies, and no Partner Program approval. We read the public logged-out page. The free tier includes 1,000 requests per month.

How fast is the LinkedIn email and lead scraper API?

Median end-to-end response is about 2.6 seconds, which includes residential proxy routing, anti-bot handling, retries, and parsing. One call returns the public contact record plus the scope note.

Ship email & lead api data as JSON today
Start with 1,000 free requests. No credit card, no LinkedIn login.
Get a free API key Browse the endpoints