Retrieve LinkedIn Profiles for Prospects

Overview

Use Apollo API to find prospects who match your search criteria, then enrich those people to retrieve their LinkedIn profile URLs.

This tutorial shows how to:

  1. Find sales leaders at a specific company with the people API search endpoint.
  2. Pass the returned Apollo person IDs to the bulk people enrichment endpoint.
  3. Retrieve the linkedin_url for each matched person.
🚧

Credits

While People API search doesn't consume credits, bulk people enrichment may use credits based on the data returned and the enrichment options enabled. Check out Apollo API pricing and credits for details.

1: Find Sales Leaders at a Company

To find people in sales leadership roles at Northstar Labs:

  1. Call the people API search endpoint:
POST https://api.apollo.io/api/v1/mixed_people/api_search
  1. Add the following query parameters:
ParameterValue for this ExampleNotes
person_titles["sales", "revenue"]Add each title keyword as a separate string in the array.
include_similar_titlestrueIncludes people with related job titles.
person_seniorities["c_suite", "head", "director", "manager"]Filters people by the seniority of their current role.
q_organization_domains_list["northstarlabs.example"]Filters people by the domain of their current employer.
per_page5Sets the number of results returned per page. Enter an integer from 1 to 100.
  1. Add the following keys and values to the header of your request:
    1. Content-Type: application/json
    2. Cache-Control: no-cache
    3. x-api-key: Enter your Apollo API key.

cURL Request

The following shows the example as a cURL request:

curl --request POST \
     --url 'https://api.apollo.io/api/v1/mixed_people/api_search?person_titles[]=sales&person_titles[]=revenue&include_similar_titles=true&person_seniorities[]=c_suite&person_seniorities[]=head&person_seniorities[]=director&person_seniorities[]=manager&q_organization_domains_list[]=northstarlabs.example&per_page=5' \
     --header 'Cache-Control: no-cache' \
     --header 'Content-Type: application/json' \
     --header 'accept: application/json' \
     --header 'x-api-key: YOUR_API_KEY'

Postman Request

As an example, here's how the request can be formatted in Postman. If you prefer to pass parameters via the body of the request, use the raw option instead of form-data.

Postman request example.

Response Details

A successful request returns a 200 response status and JSON data similar to the following response:

{
  "total_entries": 5,
  "people": [
    {
      "id": "690b88979047af00018964d6",
      "first_name": "Leona",
      "last_name_obfuscated": "Va***z",
      "title": "Chief Revenue Officer",
      "last_refreshed_at": "2026-01-27T15:32:57.645+00:00",
      "has_email": true,
      "has_city": true,
      "has_state": true,
      "has_country": true,
      "has_direct_phone": "Yes",
      "organization": {
        "name": "Northstar Labs",
        "has_industry": true,
        "has_phone": true,
        "has_city": true,
        "has_state": true,
        "has_country": true,
        "has_zip_code": true,
        "has_revenue": true,
        "has_employee_count": true
      }
    },
    {
      "id": "61a511f96d769100019865b3",
      "first_name": "Owen",
      "last_name_obfuscated": "Be***t",
      "title": "Head of Sales",
      "last_refreshed_at": "2026-01-22T14:56:15.000+00:00",
      "has_email": true,
      "has_city": true,
      "has_state": true,
      "has_country": true,
      "has_direct_phone": "Maybe: please request direct dial via people/bulk_match",
      "organization": {
        "name": "Northstar Labs",
        "has_industry": true,
        "has_phone": true,
        "has_city": true,
        "has_state": true,
        "has_country": true,
        "has_zip_code": true,
        "has_revenue": true,
        "has_employee_count": true
      }
    },
    {
      "id": "67fd9513c9c77600013a8e0d",
      "first_name": "Imani",
      "last_name_obfuscated": "Ro***s",
      "title": "Director of Sales",
      "last_refreshed_at": "2026-01-15T17:46:16.444+00:00",
      "has_email": true,
      "has_city": true,
      "has_state": true,
      "has_country": true,
      "has_direct_phone": "Yes",
      "organization": {
        "name": "Northstar Labs",
        "has_industry": true,
        "has_phone": true,
        "has_city": true,
        "has_state": true,
        "has_country": true,
        "has_zip_code": true,
        "has_revenue": true,
        "has_employee_count": true
      }
    },
    {
      "id": "60f1b124338c3000015197a5",
      "first_name": "Theo",
      "last_name_obfuscated": "Ma***n",
      "title": "Revenue Operations Director",
      "last_refreshed_at": "2026-01-16T14:49:42.627+00:00",
      "has_email": true,
      "has_city": true,
      "has_state": true,
      "has_country": true,
      "has_direct_phone": "Maybe: please request direct dial via people/bulk_match",
      "organization": {
        "name": "Northstar Labs",
        "has_industry": true,
        "has_phone": true,
        "has_city": true,
        "has_state": true,
        "has_country": true,
        "has_zip_code": true,
        "has_revenue": true,
        "has_employee_count": true
      }
    },
    {
      "id": "65a91ce35b3e6e00016a6b9a",
      "first_name": "Nadia",
      "last_name_obfuscated": "Ha***n",
      "title": "Sales Manager",
      "last_refreshed_at": "2026-01-17T03:20:18.000+00:00",
      "has_email": false,
      "has_city": true,
      "has_state": true,
      "has_country": true,
      "has_direct_phone": "Yes",
      "organization": {
        "name": "Northstar Labs",
        "has_industry": true,
        "has_phone": true,
        "has_city": true,
        "has_state": true,
        "has_country": true,
        "has_zip_code": true,
        "has_revenue": true,
        "has_employee_count": true
      }
    }
  ]
}

The following table details some key elements of the API response:

ElementDescription
total_entriesThe total number of people who match the search criteria.
idThe Apollo person ID. Use this value to enrich the person and retrieve their LinkedIn profile URL.
first_nameThe person's first name.
last_name_obfuscatedAn obfuscated version of the person's last name.
titleThe person's current job title.
organizationAvailability indicators for data about the person's current employer.

People API search returns limited person and organization data. It doesn't return the LinkedIn profile URL in the search response.

2: Retrieve the LinkedIn Profile URLs

Use the Apollo person IDs returned by people API search to retrieve complete person profiles.

To enrich the five people returned in the previous example:

  1. Call the bulk people enrichment endpoint:
POST https://api.apollo.io/api/v1/people/bulk_match
  1. Add a details array to the request body. Include one id for each person you want to enrich.
{
  "details": [
    {
      "id": "690b88979047af00018964d6"
    },
    {
      "id": "61a511f96d769100019865b3"
    },
    {
      "id": "67fd9513c9c77600013a8e0d"
    },
    {
      "id": "60f1b124338c3000015197a5"
    },
    {
      "id": "65a91ce35b3e6e00016a6b9a"
    }
  ]
}
  1. Add the following keys and values to the header of your request:
    1. Content-Type: application/json
    2. Cache-Control: no-cache
    3. x-api-key: Enter your Apollo API key.

cURL Request

The following shows the example as a cURL request:

curl --request POST \
     --url 'https://api.apollo.io/api/v1/people/bulk_match?reveal_personal_emails=false&reveal_phone_number=false' \
     --header 'Cache-Control: no-cache' \
     --header 'Content-Type: application/json' \
     --header 'accept: application/json' \
     --header 'x-api-key: YOUR_API_KEY' \
     --data '{
       "details": [
         {
           "id": "690b88979047af00018964d6"
         },
         {
           "id": "61a511f96d769100019865b3"
         },
         {
           "id": "67fd9513c9c77600013a8e0d"
         },
         {
           "id": "60f1b124338c3000015197a5"
         },
         {
           "id": "65a91ce35b3e6e00016a6b9a"
         }
       ]
     }'

Response Details

A successful request returns a 200 response status and a matches array containing the enriched person profiles:

{
  "status": "success",
  "error_code": null,
  "error_message": null,
  "total_requested_enrichments": 5,
  "unique_enriched_records": 5,
  "missing_records": 0,
  "matches": [
    {
      "id": "690b88979047af00018964d6",
      "first_name": "Leona",
      "last_name": "Valdez",
      "name": "Leona Valdez",
      "linkedin_url": "https://www.linkedin.com/in/leona-valdez",
      "title": "Chief Revenue Officer",
      "organization": {
        "name": "Northstar Labs",
        "primary_domain": "northstarlabs.example"
      }
    },
    {
      "id": "61a511f96d769100019865b3",
      "first_name": "Owen",
      "last_name": "Bennett",
      "name": "Owen Bennett",
      "linkedin_url": "https://www.linkedin.com/in/owen-bennett",
      "title": "Head of Sales",
      "organization": {
        "name": "Northstar Labs",
        "primary_domain": "northstarlabs.example"
      }
    },
    {
      "id": "67fd9513c9c77600013a8e0d",
      "first_name": "Imani",
      "last_name": "Roberts",
      "name": "Imani Roberts",
      "linkedin_url": "https://www.linkedin.com/in/imani-roberts",
      "title": "Director of Sales",
      "organization": {
        "name": "Northstar Labs",
        "primary_domain": "northstarlabs.example"
      }
    },
    {
      "id": "60f1b124338c3000015197a5",
      "first_name": "Theo",
      "last_name": "Martin",
      "name": "Theo Martin",
      "linkedin_url": "https://www.linkedin.com/in/theo-martin",
      "title": "Revenue Operations Director",
      "organization": {
        "name": "Northstar Labs",
        "primary_domain": "northstarlabs.example"
      }
    },
    {
      "id": "65a91ce35b3e6e00016a6b9a",
      "first_name": "Nadia",
      "last_name": "Hassan",
      "name": "Nadia Hassan",
      "linkedin_url": "https://www.linkedin.com/in/nadia-hassan",
      "title": "Sales Manager",
      "organization": {
        "name": "Northstar Labs",
        "primary_domain": "northstarlabs.example"
      }
    }
  ]
}

Use the linkedin_url value from each object in the matches array to access the person's LinkedIn profile.

ElementDescription
idThe Apollo person ID submitted in the enrichment request.
nameThe person's complete name.
linkedin_urlThe URL for the person's LinkedIn profile.
titleThe person's current job title.
organizationDetails about the person's current employer.

What’s Next

Test the people API search endpoint and build your own prospect search.

Did this page help you?