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.
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())
{
"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
}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 30dcurl -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"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| query | string | "founder"Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager'). |
| companyHeadcount | array | ["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+. |
| companyHeadquarterLocations | array | Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']). |
| currentCompanies | array | Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR). |
| excludeCompanyHeadquarterLocations | array | Exclude people whose current company is headquartered in any of these locations. |
| excludeCurrentCompanies | array | Exclude people who currently work at any of these companies, by name. |
| excludeCurrentJobTitles | array | Exclude people whose current job title matches any of these. |
| excludeFunctionIds | array | Exclude these job functions (same codes as functionIds). |
| excludeLocations | array | Exclude people in any of these locations, by place name. |
| excludePastCompanies | array | Exclude people who previously worked at any of these companies, by name. |
| excludePastJobTitles | array | Exclude people who held any of these past job titles. |
| excludeSchools | array | Exclude people who attended any of these schools, by name. |
| excludeSeniorityLevelIds | array | Exclude these seniority levels (same codes as seniorityLevelIds). |
| firstNames | array | Filter to people whose first name matches any of these. |
| functionIds | array | 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. |
| jobTitle | string | Optional current job title filter (e.g. 'Software Engineer'). |
| lastNames | array | Filter to people whose last name matches any of these. |
| limit | integer | 5Maximum number of full profiles (with email) to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less. |
| location | string | Optional location filter (e.g. 'San Francisco'). |
| pastCompanies | array | Filter to people who previously worked at any of these companies, by name. |
| pastJobTitles | array | Filter by a past job title the person held (e.g. ['Product Manager']). |
| profileLanguages | array | Filter by the profile's primary language. |
| recentlyChangedJobs | boolean | When true, only return people who recently changed jobs (a strong sales/recruiting signal). |
| recentlyPostedOnLinkedIn | boolean | When true, only return people who recently posted on LinkedIn (an activity signal). |
| schools | array | Filter to people who attended any of these schools, by name. |
| seniorityLevelIds | array | 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. |
| yearsAtCurrentCompanyIds | array | 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. |
| yearsOfExperienceIds | array | 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. |
| Response | ||
| data | object | The results wrapper, or null when nothing was found. |
| data.items | object[] | Matched profile records, each with a discovered work email. Populated whenever the provider has data for the entity. |
| data.items[].about | string | Profile about / summary text. Populated whenever the provider has data for the entity. |
| data.items[].currentPosition | object[] | Current role(s). Each entry is an open object with the position title, company, dates, and location; shape can vary by profile. |
| data.items[].education | object[] | Education history. Each entry is an open object with school, degree, and field of study; shape can vary by profile. |
| data.items[].emails | object[] | 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[].experience | object[] | 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[].firstName | string | Member's first name. Populated whenever the provider has data for the entity. |
| data.items[].handle | string | Public profile identifier (the vanity slug in the URL). Populated whenever the provider has data for the entity. |
| data.items[].headline | string | Profile headline (the tagline under the name). Populated whenever the provider has data for the entity. |
| data.items[].id | string | LinkedIn member URN id for the profile. |
| data.items[].image | string | Profile picture URL. Populated whenever the provider has data for the entity. |
| data.items[].lastName | string | Member's last name. Populated whenever the provider has data for the entity. |
| data.items[].location | string | Member's location as a single string (city, region, country). Populated whenever the provider has data for the entity. |
| data.items[].openToWork | boolean | Whether the member has the Open to Work flag set. |
| data.items[].premium | boolean | Whether the member has a LinkedIn Premium subscription. |
| data.items[].skills | any[] | Listed skills, as free-form strings when present. |
| data.items[].url | string | Canonical LinkedIn profile URL. Populated whenever the provider has data for the entity. |
| found | boolean | True when at least one profile was returned. |
| Price | ||
| Price per request (ceiling) | USD | $0.336 |
| Price /1k results | USD | $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.