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.

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

What the API returneditems[0]
{
"id": "ACoAAAvpsales001",
"url": "https://www.linkedin.com/in/marcus-chen-sales",
"handle": "marcus-chen-sales",
"firstName": "Marcus",
"lastName": "Chen",
"headline": "VP of Sales, Commercial at Salesforce",
"location": "Chicago, Illinois, United States",
"about": "20 years scaling B2B SaaS revenue teams from seed to IPO. Currently building out the commercial segment at Salesforce.",
... 18 more fields
}
Uptime
98.45%
30d · 1,675 calls
Requests
1,847
30d · weekly, last 12 wks
Response
8.9s
median · 30d

Call it

Get LinkedIn search profiles in one 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

This sample shows 13 of 30 fields. See every field

{
  "found": true,
  "data": {
    "items": [
      {
        "id": "ACoAAAvpsales001",
        "url": "https://www.linkedin.com/in/marcus-chen-sales",
        "handle": "marcus-chen-sales",
        "firstName": "Marcus",
        "lastName": "Chen",
        "headline": "VP of Sales, Commercial at Salesforce",
        "location": "Chicago, Illinois, United States",
        "about": "20 years scaling B2B SaaS revenue teams from seed to IPO. Currently building out the commercial segment at Salesforce.",
        "image": "https://media.licdn.com/dms/image/D4E03AQMarcusChenProfile/profile-displayphoto-shrink_800_800/0/1701000000007?e=1735689600",
        "experience": [
          {
            "title": "VP of Sales, Commercial",
            "company": "Salesforce",
            "startDate": "Jan 2023",
            "endDate": "Present",
            "location": "Chicago, Illinois"
          },
          {
            "title": "Senior Director of Sales",
            "company": "Salesforce",
            "startDate": "Jun 2019",
            "endDate": "Dec 2022",
            "location": "Chicago, Illinois"
          }
        ]
      },
      {
        "id": "ACoAAAvpsales002",
        "url": "https://www.linkedin.com/in/renee-okafor-hubspot",
        "handle": "renee-okafor-hubspot",
        "firstName": "Renee",
        "lastName": "Okafor",
        "headline": "VP of Sales, EMEA at HubSpot",
        "location": "Dublin, Ireland",
        "about": "Leading HubSpot's EMEA sales org across mid-market and enterprise segments.",
        "image": "https://media.licdn.com/dms/image/D4E03AQReneeOkaforProfile/profile-displayphoto-shrink_800_800/0/1701000000009?e=1735689600",
        "experience": [
          {
            "title": "VP of Sales, EMEA",
            "company": "HubSpot",
            "startDate": "Apr 2021",
            "endDate": "Present",
            "location": "Dublin, Ireland"
          }
        ]
      }
    ]
  }
}

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

    VP of Sales

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

  • companyHeadcountarray

    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

    ["Salesforce","HubSpot"]

    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 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

    ["310"]

    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. Populated whenever the provider has data for the entity.

  • aboutstring

    20 years scaling B2B SaaS revenue teams from seed to IPO. Currently building out the commercial segment at Salesforce.

    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.

  • 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

    Marcus

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

  • followerCountinteger

    Number of followers of the profile.

  • handlestring

    marcus-chen-sales

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

  • headlinestring

    VP of Sales, Commercial at Salesforce

    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

    ACoAAAvpsales001

    LinkedIn member URN id for the profile.

  • imagestring

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

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

  • influencerboolean

    Whether LinkedIn marks the member as an influencer.

  • lastNamestring

    Chen

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

  • locationstring

    Chicago, Illinois, 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, one object per skill with its name and, when the source has them, the endorsements label and related positions.

  • statestring

    State or region of the member.

  • urlstring

    https://www.linkedin.com/in/marcus-chen-sales

    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 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, 98.4% of LinkedIn search profiles calls through AnyAPI succeeded, with a median response time of 8.9 seconds across 1,675 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 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.

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, 98.4% of LinkedIn search profiles calls through AnyAPI succeeded, with a median response time of 8.9 seconds across 1,675 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 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.