LinkedIn API

LinkedIn Search profiles email API

People search returning a full profile AND a verified work email for each hit. Search LinkedIn profiles by keyword with optional location and job-title filters; each match returns the full profile record (name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id) together with an emails array carrying the discovered work email and its deliverability. Email discovery is best effort and needs the profile to expose a resolvable company domain, so on a broad search many matches return an empty emails array while still billing the email rate. If you already have names and company domains, email.find, email_finding.icypeas, and email_finding.dropleads resolve addresses directly for less, and linkedin.email enriches a single known profile URL. For a full profile without email use linkedin.search_profiles; for a cheaper name/headline/URL-only search use linkedin.search_profiles_thin.

$12.92/1k results, pay per request, no subscription.

What the API returneditems[0]
{
"id": "ACoAAAemail001",
"url": "https://www.linkedin.com/in/devon-marsh-founder",
"handle": "devon-marsh-founder",
"firstName": "Devon",
"lastName": "Marsh",
"headline": "Founder & CEO at Brightpath Analytics",
"location": "Denver, Colorado, United States",
"about": "Building Brightpath Analytics, a data pipeline tool for small ecommerce teams. Previously a data engineer at Instacart.",
... 19 more fields
}
Uptime
98.75%
30d · 961 calls
Requests
961
30d · weekly, last 12 wks
Response
19.4s
median · 30d

Call it

Get LinkedIn search profiles email in one request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/linkedin.search_profiles_email",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "query": ""
    },
)
print(res.json())
Open in
Get a free key
Sample response

This sample shows 14 of 31 fields. See every field

{
  "found": true,
  "data": {
    "items": [
      {
        "id": "ACoAAAemail001",
        "url": "https://www.linkedin.com/in/devon-marsh-founder",
        "handle": "devon-marsh-founder",
        "firstName": "Devon",
        "lastName": "Marsh",
        "headline": "Founder & CEO at Brightpath Analytics",
        "location": "Denver, Colorado, United States",
        "about": "Building Brightpath Analytics, a data pipeline tool for small ecommerce teams. Previously a data engineer at Instacart.",
        "image": "https://media.licdn.com/dms/image/D4E03AQDevonMarshProfile/profile-displayphoto-shrink_800_800/0/1701000000011?e=1735689600",
        "emails": [
          {
            "email": "devon@brightpathanalytics.io",
            "deliverable": true,
            "disposable": false,
            "catchAllDomain": false,
            "validEmailServer": true,
            "qualityScore": 0.94,
            "status": "verified"
          }
        ],
        "experience": [
          {
            "title": "Founder & CEO",
            "company": "Brightpath Analytics",
            "startDate": "May 2022",
            "endDate": "Present",
            "location": "Denver, Colorado"
          }
        ]
      },
      {
        "id": "ACoAAAemail002",
        "url": "https://www.linkedin.com/in/talia-brooks-founder",
        "handle": "talia-brooks-founder",
        "firstName": "Talia",
        "lastName": "Brooks",
        "headline": "Co-founder at Moss & Co.",
        "location": "Portland, Oregon, United States",
        "about": "Co-founder of Moss & Co, a sustainable home goods brand. Formerly ran retail ops at a national outdoor retailer.",
        "image": "https://media.licdn.com/dms/image/D4E03AQTaliaBrooksProfile/profile-displayphoto-shrink_800_800/0/1701000000012?e=1735689600",
        "emails": [
          {
            "email": "talia@mossandco.com",
            "deliverable": true,
            "disposable": false,
            "catchAllDomain": true,
            "validEmailServer": true,
            "qualityScore": 0.81,
            "status": "verified"
          }
        ],
        "experience": [
          {
            "title": "Co-founder",
            "company": "Moss & Co.",
            "startDate": "Sep 2021",
            "endDate": "Present",
            "location": "Portland, Oregon"
          }
        ]
      }
    ]
  }
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-10-31 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • querystring

    founder

    Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').

  • companyHeadcountarray

    ["B"]

    Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.

  • companyHeadquarterLocationsarray

    Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']).

  • currentCompaniesarray

    Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).

  • excludeCompanyHeadquarterLocationsarray

    Exclude people whose current company is headquartered in any of these locations.

  • excludeCurrentCompaniesarray

    Exclude people who currently work at any of these companies, by name.

  • excludeCurrentJobTitlesarray

    Exclude people whose current job title matches any of these.

  • excludeFunctionIdsarray

    Exclude these job functions (same codes as functionIds).

  • excludeLocationsarray

    Exclude people in any of these locations, by place name.

  • excludePastCompaniesarray

    Exclude people who previously worked at any of these companies, by name.

  • excludePastJobTitlesarray

    Exclude people who held any of these past job titles.

  • excludeSchoolsarray

    Exclude people who attended any of these schools, by name.

  • excludeSeniorityLevelIdsarray

    Exclude these seniority levels (same codes as seniorityLevelIds).

  • firstNamesarray

    Filter to people whose first name matches any of these.

  • functionIdsarray

    Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.

  • jobTitlestring

    Optional current job title filter (e.g. 'Software Engineer').

  • lastNamesarray

    Filter to people whose last name matches any of these.

  • limitinteger

    3

    Maximum number of full profiles (with email) to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.

  • locationstring

    Optional location filter (e.g. 'San Francisco').

  • pastCompaniesarray

    Filter to people who previously worked at any of these companies, by name.

  • pastJobTitlesarray

    Filter by a past job title the person held (e.g. ['Product Manager']).

  • profileLanguagesarray

    Filter by the profile's primary language.

  • recentlyChangedJobsboolean

    When true, only return people who recently changed jobs (a strong sales/recruiting signal).

  • recentlyPostedOnLinkedInboolean

    When true, only return people who recently posted on LinkedIn (an activity signal).

  • schoolsarray

    Filter to people who attended any of these schools, by name.

  • seniorityLevelIdsarray

    Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.

  • yearsAtCurrentCompanyIdsarray

    Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.

  • yearsOfExperienceIdsarray

    Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

each itemdata.items[]

Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity.

  • aboutstring

    Building Brightpath Analytics, a data pipeline tool for small ecommerce teams. Previously a data engineer at Instacart.

    Profile about / summary text. Populated whenever the provider has data for the entity.

  • citystring

    City of the member.

  • connectionsCountinteger

    Number of connections on the profile.

  • countrystring

    Country of the member.

  • countryCodestring

    Two-letter country code of the member.

  • coverImagestring

    Profile cover (banner) image URL. The query string is a signed token, so keep the URL intact.

  • creatorboolean

    Whether the member is in LinkedIn creator mode.

  • currentPositionobject[]

    Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.

  • educationobject[]

    Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.

  • emailsobject[]

    Discovered work email(s) for the member. Each entry is an open object with the email address plus deliverability signals (deliverable, disposable, catchAllDomain, validEmailServer, qualityScore, status); may be empty when no email could be verified. Populated whenever the provider has data for the entity.

  • experienceobject[]

    Full work history. Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. Populated whenever the provider has data for the entity.

  • firstNamestring

    Devon

    Member's first name. Populated whenever the provider has data for the entity.

  • followerCountinteger

    Number of followers of the profile; null when the source does not report it.

  • handlestring

    devon-marsh-founder

    Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.

  • headlinestring

    Founder & CEO at Brightpath Analytics

    Profile headline (the tagline under the name). Populated whenever the provider has data for the entity.

  • hiringboolean

    Whether the member shows the Hiring badge.

  • idstring

    ACoAAAemail001

    LinkedIn member URN id for the profile.

  • imagestring

    https://media.licdn.com/dms/image/D4E03AQDevonMarshProfile/profile-displayphoto-shrink_800_800/0/1701000000011?e=1735689600

    Profile picture URL. Populated whenever the provider has data for the entity.

  • influencerboolean

    Whether LinkedIn marks the member as an influencer.

  • lastNamestring

    Marsh

    Member's last name. Populated whenever the provider has data for the entity.

  • locationstring

    Denver, Colorado, United States

    Member's location as a single string (city, region, country). Populated whenever the provider has data for the entity.

  • openToWorkboolean

    Whether the member has the Open to Work flag set.

  • premiumboolean

    Whether the member has a LinkedIn Premium subscription.

  • skillsany[]

    Listed skills, as free-form strings when present.

  • statestring

    State or region of the member.

  • urlstring

    https://www.linkedin.com/in/devon-marsh-founder

    Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity.

  • verifiedboolean

    Whether LinkedIn has verified the member's identity.

top level
  • foundboolean

    true

    True when at least one profile was returned.

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the LinkedIn Search profiles email API

The AnyAPI LinkedIn Search profiles email API returns LinkedIn search profiles email data as normalized JSON from one POST call to /v1/run/linkedin.search_profiles_email. People search returning a full profile AND a verified work email for each hit. Search LinkedIn profiles by keyword with optional location and job-title filters; each match returns the full profile record (name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id) together with an emails array carrying the discovered work email and its deliverability. Email discovery is best effort and needs the profile to expose a resolvable company domain, so on a broad search many matches return an empty emails array while still billing the email rate. If you already have names and company domains, email.find, email_finding.icypeas, and email_finding.dropleads resolve addresses directly for less, and linkedin.email enriches a single known profile URL. For a full profile without email use linkedin.search_profiles; for a cheaper name/headline/URL-only search use linkedin.search_profiles_thin. AnyAPI returns one normalized schema whichever source serves it. It costs $12.92 per 1,000 results, and never more than $0.336 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 98.8% of LinkedIn search profiles email calls through AnyAPI succeeded, with a median response time of 19.4 seconds across 961 measured calls.

It costs $12.92 per 1,000 results, and never more than $0.336 for a single request, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

People search returning a full profile AND a verified work email for each hit. Search LinkedIn profiles by keyword with optional location and job-title filters; each match returns the full profile record (name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id) together with an emails array carrying the discovered work email and its deliverability. Email discovery is best effort and needs the profile to expose a resolvable company domain, so on a broad search many matches return an empty emails array while still billing the email rate. If you already have names and company domains, email.find, email_finding.icypeas, and email_finding.dropleads resolve addresses directly for less, and linkedin.email enriches a single known profile URL. For a full profile without email use linkedin.search_profiles; for a cheaper name/headline/URL-only search use linkedin.search_profiles_thin. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 98.8% of LinkedIn search profiles email calls through AnyAPI succeeded, with a median response time of 19.4 seconds across 961 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required.

Send a POST request to https://api.getanyapi.com/v1/run/linkedin.search_profiles_email with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.