LinkedIn API

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.

POST/v1/run/linkedin.search_profiles
Uptime
100.00%
30d · 25 calls
Requests
26
30d · weekly, last 12 wks
Response
26.2s
median · 30d

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())
Open in
Get a free key
Sample response
{
  "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
}
Response interface
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 30d
POST /v1/run/linkedin.search_profiles
curl -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"}'
FieldTypeExample value
Request body
querystring"engineer"Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager').
companyHeadcountarrayFilter 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']).
currentCompaniesarray["Google"]Filter 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.
limitinteger3Maximum number of full profiles 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. 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[].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.198
Price /1k resultsUSD$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.

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

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. 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, 100.0% of LinkedIn search profiles calls through AnyAPI succeeded, with a median response time of 26.2 seconds across 25 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.