Skip to content

Search people by keyword

Find LinkedIn profiles by name, role, or skill, then narrow the results with filters.

Use GET /v1/profiles/search to find people by name, role, skill, or other keywords. Add filters for location, company, school, language, or industry.

Replace YOUR_API_KEY with your API key, then run:

Terminal window
curl --get 'https://api.envoapi.com/v1/profiles/search' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-urlencode 'keywords=Satya Nadella' \
--data-urlencode 'profileLanguage=en' \
--data-urlencode 'offset=0'

Only keywords is required. Use 1–120 characters. This is a keyword search, so results may include people who mention the name in their profile.

Choose the filters you need. The examples below are independent; you do not need to send them all.

Parameter Example Meaning
location geo_6yITcz United States
currentCompany company_4T4tWj Currently works at Microsoft
pastCompany company_4T4tWj Previously worked at Microsoft
schoolFilter school_55rBxU Stanford University
profileLanguage en,fr English or French profile language
serviceCategory service_AuaLW4 Management Consulting
industry industry_C1dRf Software Development

For example, search for software engineers who currently work at Microsoft:

Terminal window
curl --get 'https://api.envoapi.com/v1/profiles/search' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data-urlencode 'keywords=software engineer' \
--data-urlencode 'currentCompany=company_4T4tWj'

Each filter accepts up to 10 unique values, separated by commas. Send each parameter once. Leave out unused filters instead of sending blank values.

Use these endpoints to find IDs for your own filters:

Filter Where to get the ID
location Location search: data.locations[].id
currentCompany, pastCompany Company details: data.publicId
schoolFilter School search: data.schools[].id
serviceCategory Service category search: data.serviceCategories[].id
industry Industry search: data.industries[].id

Copy IDs unchanged. Names such as United States or Microsoft cannot be used as filter IDs. If you need a company slug, find it with company search.

profileLanguage filters the profile’s language setting, not the languages the person speaks. Use codes such as en for English, fr for French, in for Indonesian, or zh for Chinese.

Use _o for other languages, including Vietnamese. vi and locale codes such as en_US are not supported. See the API reference for the full list.

  • data.profiles contains the matching profiles, including names, headlines, LinkedIn URLs, work experience, education, and skills when available.
  • publicId can be used with profile lookup. If it is null, use the profile’s linkedinUrl instead.
  • Missing values may be null or empty lists. No matches returns data.profiles: [].
  • meta.creditCost is the number of credits charged for the request.

See the full response example for all fields.

Start with offset=0, or leave it out. The API returns up to 3 profiles per page. This captured meta.paging example shows that the next page starts at 3:

{
"offset": 0,
"limit": 3,
"returned": 3,
"hasMore": true,
"nextOffset": 3
}

Set offset to meta.paging.nextOffset and keep the same keywords and filters. Stop when hasMore is false. Accepted offsets are 050; do not request an offset above 50. Narrow your search with filters if you need more relevant results.

The API sets the page size; do not send limit or count. Each successful page uses credits, including empty pages. See Pagination and Errors for more help.