LinkedIn Search profiles API
Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.
Call it
Make your first request
import os, requests res = requests.post( "https://api.getanyapi.com/v1/run/linkedin.search_profiles", 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": [
{}
],
"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 LinkedinSearchProfilesResponse {
data: {
items: {
about?: string;
currentPosition?: {
}[];
education?: {
}[];
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 \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"currentCompanies":["Google"],"limit":3,"query":"engineer"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| query | string | "engineer"Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager'). |
| companyHeadcount | array | 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 | ["Google"]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 | 3Maximum number of full profiles 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. 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[].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.198 |
| Price /1k results | USD | $7.92 |
FAQ
About the LinkedIn Search profiles API
The AnyAPI LinkedIn Search profiles API returns LinkedIn search profiles data as normalized JSON from one POST call to /v1/run/linkedin.search_profiles. Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email. AnyAPI returns one normalized schema whichever source serves it. It costs $7.92 per 1,000 results, and never more than $0.198 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of LinkedIn search profiles calls through AnyAPI succeeded, with a median response time of 26.2 seconds across 25 measured calls.