Docs / Search
search_linkedin_sales_navigator_people
Search people in Sales Navigator on your own seat, with each Sales Navigator filter as its own typed input.
This action only reads. It changes nothing, so it is safe to try.
What you give it
| Input | What it is | Where to get it |
|---|---|---|
keywordsoptional | Text. Words to search for. | You write it. |
lastViewedAtoptional | A number. With savedSearchId: only results newer than this moment (Unix time). | You write it. |
savedSearchIdoptional | A search filter id. Run one of your saved searches; it replaces every other filter: an id from lookup_search_ids type SAVED_SEARCHES, service SALES_NAVIGATOR. | run lookup_search_ids with type SAVED_SEARCHES, and use matches[].id from its answer. |
recentSearchIdoptional | A search filter id. Run one of your recent searches again; it replaces every other filter: an id from lookup_search_ids type RECENT_SEARCHES, service SALES_NAVIGATOR. | run lookup_search_ids with type RECENT_SEARCHES, and use matches[].id from its answer. |
locationoptional | A search filter id. Places to include and to leave out.What goes inside
| include: run lookup_search_ids with type REGION, and use matches[].id from its answer.exclude: run lookup_search_ids with type REGION, and use matches[].id from its answer. |
locationByPostalCodeoptional | A search filter id. Postal codes to include and to leave out.What goes inside
| include: run lookup_search_ids with type POSTAL_CODE, and use matches[].id from its answer.exclude: run lookup_search_ids with type POSTAL_CODE, and use matches[].id from its answer. |
industryoptional | A search filter id. Industries to include and to leave out.What goes inside
| include: run lookup_search_ids with type SALES_INDUSTRY, and use matches[].id from its answer.exclude: run lookup_search_ids with type SALES_INDUSTRY, and use matches[].id from its answer. |
firstNameoptional | Text. First name. | You write it. |
lastNameoptional | Text. Last name. | You write it. |
tenureoptional | A list (a group of fields). Years of experience, as LinkedIn's own bands, e.g. { min: 3, max: 5 }.What goes inside
| You write it. |
groupsoptional | A search filter id. LinkedIn groups: ids from lookup_search_ids type GROUPS, service SALES_NAVIGATOR. | run lookup_search_ids with type GROUPS, and use matches[].id from its answer. |
schooloptional | A search filter id. Schools to include and to leave out.What goes inside
| include: run lookup_search_ids with type SCHOOL, and use matches[].id from its answer.exclude: run lookup_search_ids with type SCHOOL, and use matches[].id from its answer. |
profileLanguageoptional | A list (text, up to 2 characters). Profile languages, as two-letter codes such as "en". | You write it. |
companyoptional | A search filter id. Current companies to include and to leave out.What goes inside
| include: run lookup_search_ids with type COMPANY, and use matches[].id from its answer.exclude: run lookup_search_ids with type COMPANY, and use matches[].id from its answer. |
companyHeadcountoptional | A list (a group of fields). Company sizes, as LinkedIn's own bands, e.g. { min: 51, max: 200 }.What goes inside
| You write it. |
companyTypeoptional | A list (one of: public_company, privately_held, non_profit, educational_institution, partnership, self_employed, self_owned, government_agency). Company types. | You write it. |
companyLocationoptional | A search filter id. Company headquarters places to include and to leave out.What goes inside
| include: run lookup_search_ids with type REGION, and use matches[].id from its answer.exclude: run lookup_search_ids with type REGION, and use matches[].id from its answer. |
tenureAtCompanyoptional | A list (a group of fields). Years in the current company, as LinkedIn's own bands.What goes inside
| You write it. |
pastCompanyoptional | A search filter id. Past companies to include and to leave out.What goes inside
| include: run lookup_search_ids with type COMPANY, and use matches[].id from its answer.exclude: run lookup_search_ids with type COMPANY, and use matches[].id from its answer. |
functionoptional | A search filter id. Job functions to include and to leave out.What goes inside
| include: run lookup_search_ids with type DEPARTMENT, and use matches[].id from its answer.exclude: run lookup_search_ids with type DEPARTMENT, and use matches[].id from its answer. |
roleoptional | A search filter id. Current job titles to include and to leave out.What goes inside
| include: run lookup_search_ids with type JOB_TITLE, and use matches[].id from its answer.exclude: run lookup_search_ids with type JOB_TITLE, and use matches[].id from its answer. |
tenureAtRoleoptional | A list (a group of fields). Years in the current position, as LinkedIn's own bands.What goes inside
| You write it. |
seniorityoptional | A group of fields. Seniority levels to include and to leave out.What goes inside
| You write it. |
pastRoleoptional | A search filter id. Past job titles to include and to leave out.What goes inside
| include: run lookup_search_ids with type JOB_TITLE, and use matches[].id from its answer.exclude: run lookup_search_ids with type JOB_TITLE, and use matches[].id from its answer. |
followingYourCompanyoptional | True or false. Only people who follow your company. | You write it. |
viewedYourProfileRecentlyoptional | True or false. Only people who viewed your profile recently. | You write it. |
networkDistanceoptional | A list (one of: 1, 2, 3, or exactly: GROUP). Connection degrees from you (1, 2, 3) or "GROUP" for people in your groups. | You write it. |
connectionsOfoptional | A search filter id. People whose connections to search: ids from lookup_search_ids type PEOPLE, service SALES_NAVIGATOR. | run lookup_search_ids with type PEOPLE, and use matches[].id from its answer. |
pastColleagueoptional | True or false. Only past colleagues. | You write it. |
sharedExperiencesoptional | True or false. Only people you share experiences with. | You write it. |
changedJobsoptional | True or false. Only people who changed jobs recently. | You write it. |
postedOnLinkedinoptional | True or false. Only people who posted on LinkedIn recently. | You write it. |
mentionnedInNewsoptional | True or false. Only people mentioned in the news recently. | You write it. |
personaoptional | A search filter id. Your Sales Navigator personas: ids from lookup_search_ids type PERSONA, service SALES_NAVIGATOR. | run lookup_search_ids with type PERSONA, and use matches[].id from its answer. |
accountListsoptional | A search filter id. Your account lists (an id, or "ALL") to include and to leave out.What goes inside
| include: run lookup_search_ids with type ACCOUNT_LISTS, and use matches[].id from its answer.exclude: run lookup_search_ids with type ACCOUNT_LISTS, and use matches[].id from its answer. |
leadListsoptional | A search filter id. Your lead lists (an id, or "ALL") to include and to leave out.What goes inside
| include: run lookup_search_ids with type LEAD_LISTS, and use matches[].id from its answer.exclude: run lookup_search_ids with type LEAD_LISTS, and use matches[].id from its answer. |
viewedProfileRecentlyoptional | True or false. Only people whose profile you viewed recently. | You write it. |
messagedRecentlyoptional | True or false. Only people you messaged recently. | You write it. |
includeSavedLeadsoptional | True or false. Include your saved leads. | You write it. |
includeSavedAccountsoptional | True or false. Include people at your saved accounts. | You write it. |
limitoptional | A number, 1 to 100. How many to return (1–100, default 10). | You write it. |
cursoroptional | A cursor. nextCursor from the previous call, to get the next page. Keep the other arguments the same. | The nextCursor from the last answer of search_linkedin_sales_navigator_people. |
connectionIdoptional | A connection id. Which of your LinkedIn accounts to act from (its id from list_linkedin_accounts). Omit to use your first live one. | Run list_linkedin_accounts and use accounts[].id from its answer.15 more places to get it
|
Call it
curl -X POST https://api.heyreagent.com/v1/actions/search_linkedin_sales_navigator_people \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{"keywords":"head of sales"}'The same call in JavaScript
const response = await fetch("https://api.heyreagent.com/v1/actions/search_linkedin_sales_navigator_people", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json",
},
body: JSON.stringify({
"keywords": "head of sales"
}),
});
const answer = await response.json();
console.log(answer);The same call in Python
import requests
response = requests.post(
"https://api.heyreagent.com/v1/actions/search_linkedin_sales_navigator_people",
headers={"Authorization": "Bearer YOUR_KEY"},
json={
"keywords": "head of sales",
},
)
print(response.json())The same call in n8n
Add an HTTP Request node and fill it in like this:
| Method | POST |
| URL | https://api.heyreagent.com/v1/actions/search_linkedin_sales_navigator_people |
| Send Headers | On. Name Authorization, Value Bearer YOUR_KEY |
| Send Body | On. Body Content Type JSON, Specify Body Using JSON, then paste the body below |
{
"keywords": "head of sales"
}Put your own key where it says YOUR_KEY. New here? Start with your first call.
What you get back
When it worked, the answer is { "ok": true, "result": { … } }. Inside result:
returned | number |
nextCursor | A cursor. Other actions take it. |
results[].type | PEOPLE |
results[].id | A Sales Navigator id. Other actions take it. |
results[].publicIdentifier | string or null |
results[].publicProfileUrl | A profile link. Other actions take it. |
results[].profileUrl | string or null |
results[].profilePictureUrl | string or null |
results[].profilePictureUrlLarge | string or null |
results[].memberUrn | string or null |
results[].name | string or null |
results[].firstName | string |
results[].lastName | string |
results[].networkDistance | SELF | DISTANCE_1 | DISTANCE_2 | DISTANCE_3 | OUT_OF_NETWORK |
results[].location | string or null |
results[].industry | string or null |
results[].keywordsMatch | string |
results[].headline | string |
results[].connectionsCount | number |
results[].followersCount | number |
results[].pendingInvitation | boolean |
results[].canSendInmail | boolean |
results[].hiddenCandidate | boolean |
results[].interestLikelihood | string |
results[].recruiterCandidateId | string |
results[].recruiterPipelineCategory | string |
results[].premium | boolean |
results[].verified | boolean |
results[].sharedConnectionsCount | number |
results[].recentPostsCount | number |
results[].recentlyHired | boolean |
results[].mentionedInTheNews | boolean |
results[].interests | string |
A field that does not apply to an answer is left out, or is null. There are 82 more fields nested inside these.
When it did not work, the answer is { "ok": false, "error": "…", "message": "…" }. What each error means.
Good to know
- At most 100 rows per call: LinkedIn's page size for this search.
- LinkedIn returns at most 2,500 rows for one search; narrow the filters to reach the rest.
- Needs a Sales Navigator seat on your own LinkedIn account.
- Look filter ids up with lookup_search_ids service SALES_NAVIGATOR: that input selects which product's list is searched.
- networkDistance in a row is defined as DISTANCE_1 / DISTANCE_2 / DISTANCE_3 (a published sample row also shows OUT_OF_NETWORK), while a profile reports FIRST_DEGREE / SECOND_DEGREE / THIRD_DEGREE for the same thing: do not compare the two as text.
In Claude or ChatGPT
Once connected, ask in your own words. The assistant sees this action as a tool with the same name, search_linkedin_sales_navigator_people, and the same inputs.