> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linkupapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Profile

> Search for LinkedIn profiles with advanced filters

Search for LinkedIn profiles using multiple filters including company, location, school, network, and keywords.

<Note>
  **Credit Usage:** 1 credit per 10 results (or fraction thereof). For example:

  * 1-10 results = 1 credit
  * 11-20 results = 2 credits
  * 300 results = 30 credits
</Note>

### Header Parameters

<ParamField header="x-api-key" type="string" required>
  Your API key
</ParamField>

### Body Parameters

<ParamField body="company_url" type="string">
  LinkedIn company URL or identifier to filter by current company.
  Use semicolon (;) as separator for multiple companies (e.g., "google;microsoft;apple").
</ParamField>

<ParamField body="location" type="string">
  Geographic location to filter profiles.
  Use semicolon (;) as separator for multiple locations (e.g., "Paris;London;New York").
</ParamField>

<ParamField body="school_url" type="string">
  LinkedIn school URL or identifier to filter by education.
  Use semicolon (;) as separator for multiple schools (e.g., "harvard;stanford;mit").
</ParamField>

<ParamField body="network" type="string">
  Network connection level to filter by:

  * "F" = First-degree connections (1st)
  * "S" = Second-degree connections (2nd)
  * "O" = Out-of-network connections (3rd+)
    Use (,) as separator for multiple, eg: F,S,O
</ParamField>

<ParamField body="keyword" type="string">
  Search keyword to find relevant profiles
</ParamField>

<ParamField body="total_results" type="integer" default="10">
  Number of profiles to retrieve (used when not in pagination mode)
</ParamField>

<ParamField body="start_page" type="integer">
  First page to fetch when using pagination mode (default: 1)
</ParamField>

<ParamField body="end_page" type="integer">
  Last page to fetch when using pagination mode (default: same as start\_page)
</ParamField>

<ParamField body="country" type="string" default="FR">
  Country code for proxy selection. Available: (US, UK, FR, DE, NL, IT, IL, CA, BR, ES, IN)
</ParamField>

<ParamField body="first_name" type="string" default="">
  First name parameter in advanced keyword
</ParamField>

<ParamField body="last_name" type="string" default="">
  Last name parameter in advanced keyword
</ParamField>

<ParamField body="title" type="string" default="">
  Title text parameter in advanced keyword
</ParamField>

<ParamField body="connection_of" type="string">
  LinkedIn profile URL(s) to filter by their connections.
  Use semicolon (;) as separator for multiple profiles (e.g., "[https://www.linkedin.com/in/john-doe;https://www.linkedin.com/in/jane-doe](https://www.linkedin.com/in/john-doe;https://www.linkedin.com/in/jane-doe)").
</ParamField>

<Warning>
  **Important for `connection_of` filter:** You must be connected (1st degree) with the target profile to use this filter effectively. If you are not connected, the API will return profiles that you have in common as mutual connections with that person, not their full connection list.
</Warning>

<ParamField body="industry" type="string">
  Industry to filter profiles by.
  Use semicolon (;) as separator for multiple industries (e.g., "software;marketing;finance").

  Get the full list of available industries at: `api.linkupapi.com/v1/tool/industries`
</ParamField>

<ParamField body="past_company" type="string">
  LinkedIn company URL or identifier to filter by past/previous company.
  Use semicolon (;) as separator for multiple companies (e.g., "Google;Microsoft;Amazon").
</ParamField>

<ParamField body="follower_of" type="string">
  LinkedIn profile URL(s) to filter by followers of that profile.
  Use semicolon (;) as separator for multiple profiles (e.g., "[https://www.linkedin.com/in/john-doe;https://www.linkedin.com/in/jane-doe](https://www.linkedin.com/in/john-doe;https://www.linkedin.com/in/jane-doe)").
</ParamField>

<ParamField body="login_token" type="string" required>
  LinkedIn authentication cookie obtained from the login/verify process
</ParamField>

<ParamField body="fetch_invitation_state" type="boolean" default="true">
  Whether to fetch the invitation state for each profile. When set to true, the response will include the current invitation/connection status for each profile.
</ParamField>

### Response

<ResponseField name="status" type="string">
  Request status (success/error)
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="Properties">
    <ResponseField name="total_results" type="integer">
      Number of profiles returned in the response
    </ResponseField>

    <ResponseField name="total_available_results" type="integer">
      Total number of profiles available in LinkedIn matching your search criteria
    </ResponseField>

    <ResponseField name="profiles" type="array">
      <Expandable title="Profile Object">
        <ResponseField name="name" type="string">
          Full name of the person
        </ResponseField>

        <ResponseField name="job_title" type="string">
          Current job title or headline
        </ResponseField>

        <ResponseField name="connection_level" type="string">
          Connection level with the profile owner. Possible values:

          * "1st degree" (Direct connection)
          * "2nd degree" (Connection through mutual contact)
          * "3rd+ degree" (Connection through multiple intermediaries)
          * "Out of network" (No connection path)
        </ResponseField>

        <ResponseField name="location" type="string">
          Geographic location
        </ResponseField>

        <ResponseField name="profile_url" type="string">
          LinkedIn profile URL
        </ResponseField>

        <ResponseField name="profile_picture" type="string">
          URL of the profile picture (if available, may be null)
        </ResponseField>

        <ResponseField name="invitation_state" type="string">
          Current invitation/connection status with this profile. Possible values:

          * "CAN\_INVITE" (Can send connection request)
          * "INVITATION\_SENT" (Connection request already sent)
          * "CONNECTED" (Already connected)
          * "UNKNOWN" (Status could not be determined)
          * "NOT\_FETCHED" (Status not retrieved - when fetch\_invitation\_state is false)
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="pagination" type="object">
      <Expandable title="Pagination Object">
        <ResponseField name="start_page" type="integer">
          First page fetched in the current request
        </ResponseField>

        <ResponseField name="end_page" type="integer">
          Last page fetched in the current request
        </ResponseField>

        <ResponseField name="results_per_page" type="integer">
          Number of results per page (typically 50)
        </ResponseField>

        <ResponseField name="pages_fetched" type="integer">
          Total number of pages fetched in the current request
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "status": "success",
    "data": {
      "total_results": 2,
      "total_available_results": 827,
      "profiles": [
        {
          "name": "John Doe",
          "job_title": "Software Engineer at Tech Company",
          "connection_level": "2nd degree",
          "location": "San Francisco Bay Area",
          "profile_url": "https://www.linkedin.com/in/johndoe/",
          "profile_picture": "https://media.licdn.com/dms/image/v2/example.jpg",
          "invitation_state": "CAN_INVITE"
        },
        {
          "name": "Jane Smith",
          "job_title": "Product Manager at Innovative Solutions",
          "connection_level": "3rd+ degree",
          "location": "New York Metropolitan Area",
          "profile_url": "https://www.linkedin.com/in/janesmith/",
          "profile_picture": null,
          "invitation_state": "INVITATION_SENT"
        }
      ],
      "pagination": {
        "start_page": 1,
        "end_page": 1,
        "results_per_page": 50,
        "pages_fetched": 1,
        "has_next_page":false
      }
    }
  }
  ```
</ResponseExample>

### Notes

* Company and school identifiers can be either:
  * Full LinkedIn URLs ([https://www.linkedin.com/company/](https://www.linkedin.com/company/)...)
  * Company/school names or identifiers
* Location search supports:
  * Cities
  * Regions
  * Countries
  * Market areas
* Profile pictures are direct links to LinkedIn's media servers
* Missing information is marked as 'N/A'
* Profile pictures may be null if not available or restricted
* The `total_available_results` field shows the total number of profiles that match your search criteria on LinkedIn
* Results are paginated with a maximum of 50 profiles per page
* Search restrictions:
  * Rate limits apply
