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.

POST/v1/run/linkedin.search_profiles_email
Requests
1
30d · weekly, last 12 wks

Call it

Make your first 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
{
  "data": {
    "items": [
      {
        "about": "A short example description of this item.",
        "currentPosition": [
          {}
        ],
        "education": [
          {}
        ],
        "emails": [
          {}
        ],
        "experience": [
          {}
        ],
        "firstName": "Alex",
        "handle": "alex_rivera",
        "headline": "Example title",
        "id": "a1b2c3d4",
        "image": "https://example.com/image.jpg",
        "lastName": "Rivera",
        "location": "example",
        "openToWork": true,
        "premium": true,
        "skills": [
          null
        ],
        "url": "https://example.com/page"
      }
    ]
  },
  "found": true
}
Response interface
interface LinkedinSearchProfilesEmailResponse {
  data: {
    items: {
      about?: string;
      currentPosition?: {
      }[];
      education?: {
      }[];
      emails?: {
      }[];
      experience?: {
      }[];
      firstName?: string;
      handle?: string;
      headline?: string;
      id: string;
      image?: string;
      lastName?: string;
      location?: string;
      openToWork?: boolean;
      premium?: boolean;
      skills?: any[];
      url: string;
    }[];
  } | null;
  found: boolean;
}

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

Reference

Request, response, and price

Last verified 2026-09-16 · uptime and latency measured over 30d
POST /v1/run/linkedin.search_profiles_email
curl -X POST https://api.getanyapi.com/v1/run/linkedin.search_profiles_email \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"companyHeadcount":["B"],"limit":5,"query":"founder"}'
FieldTypeExample value
Request body
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+.
companyHeadquarterLocationsarrayFilter by the location of the person's current company headquarters, by place name (e.g. ['United States']).
currentCompaniesarrayFilter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR).
excludeCompanyHeadquarterLocationsarrayExclude people whose current company is headquartered in any of these locations.
excludeCurrentCompaniesarrayExclude people who currently work at any of these companies, by name.
excludeCurrentJobTitlesarrayExclude people whose current job title matches any of these.
excludeFunctionIdsarrayExclude these job functions (same codes as functionIds).
excludeLocationsarrayExclude people in any of these locations, by place name.
excludePastCompaniesarrayExclude people who previously worked at any of these companies, by name.
excludePastJobTitlesarrayExclude people who held any of these past job titles.
excludeSchoolsarrayExclude people who attended any of these schools, by name.
excludeSeniorityLevelIdsarrayExclude these seniority levels (same codes as seniorityLevelIds).
firstNamesarrayFilter to people whose first name matches any of these.
functionIdsarrayFilter 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.
jobTitlestringOptional current job title filter (e.g. 'Software Engineer').
lastNamesarrayFilter to people whose last name matches any of these.
limitinteger5Maximum number of full profiles (with email) to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less.
locationstringOptional location filter (e.g. 'San Francisco').
pastCompaniesarrayFilter to people who previously worked at any of these companies, by name.
pastJobTitlesarrayFilter by a past job title the person held (e.g. ['Product Manager']).
profileLanguagesarrayFilter by the profile's primary language.
recentlyChangedJobsbooleanWhen true, only return people who recently changed jobs (a strong sales/recruiting signal).
recentlyPostedOnLinkedInbooleanWhen true, only return people who recently posted on LinkedIn (an activity signal).
schoolsarrayFilter to people who attended any of these schools, by name.
seniorityLevelIdsarrayFilter 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.
yearsAtCurrentCompanyIdsarrayFilter 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.
yearsOfExperienceIdsarrayFilter 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.
Response
dataobjectThe results wrapper, or null when nothing was found.
data.itemsobject[]Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity.
data.items[].aboutstringProfile about / summary text. Populated whenever the provider has data for the entity.
data.items[].currentPositionobject[]Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile.
data.items[].educationobject[]Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile.
data.items[].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.
data.items[].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.
data.items[].firstNamestringMember's first name. Populated whenever the provider has data for the entity.
data.items[].handlestringPublic profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity.
data.items[].headlinestringProfile headline (the tagline under the name). Populated whenever the provider has data for the entity.
data.items[].idstringLinkedIn member URN id for the profile.
data.items[].imagestringProfile picture URL. Populated whenever the provider has data for the entity.
data.items[].lastNamestringMember's last name. Populated whenever the provider has data for the entity.
data.items[].locationstringMember's location as a single string (city, region, country). Populated whenever the provider has data for the entity.
data.items[].openToWorkbooleanWhether the member has the Open to Work flag set.
data.items[].premiumbooleanWhether the member has a LinkedIn Premium subscription.
data.items[].skillsany[]Listed skills, as free-form strings when present.
data.items[].urlstringCanonical LinkedIn profile URL. Populated whenever the provider has data for the entity.
foundbooleanTrue when at least one profile was returned.
Price
Price per request (ceiling)USD$0.336
Price /1k resultsUSD$12.92

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.

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, each call draws it down, and a failed request costs $0.

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.