salesNavigator.searchPeople

Search LinkedIn members using the full Sales Navigator filter set.

Prerequisites

  • A Curviate API key, passed as apiKey when you construct the client. Quickstart shows how to create one.
  • A connected LinkedIn account. This resource is account-scoped: the account_id is injected automatically by the account-scoped accessor, so you pass it once to curviate.account(...) and every call below inherits it. Quickstart covers connecting one, and accounts.list returns the account_id of each account already connected.
  • Requires a Sales Navigator subscription on the connected LinkedIn account. Without it, calls return LINKEDIN_FEATURE_NOT_SUBSCRIBED (403); activate it on LinkedIn, as reconnecting will not help.

Signature

searchPeople(body: SNSearchPeopleBody, query?: Partial<SNSearchPeopleQuery>): Promise<SNSearchPeopleResult>

Example

import { Curviate } from "@curviate/sdk";
 
const curviate = new Curviate({
  apiKey: "cvt_live_...",
  baseUrl: "https://api.curviate.com",
});
 
const page = await curviate.account("acc_YOUR_ACCOUNT_ID").salesNavigator.searchPeople({ keywords: "YOUR_KEYWORDS" });
for (const item of page.items ?? []) {
  console.log(item.id);
}
// `page.cursor` is the opaque cursor for the next page (null when exhausted).

Parameters

NameTypeRequiredDescription
limitnumberNoNumber of results to return (1-100). Default 25.
cursorstringNoOpaque pagination cursor from a previous response.
keywordsstringNoFree-text keyword filter.
current_companyobjectNoCurrent-employer COMPANY parameter IDs to include or exclude.
past_companyobjectNoPast-employer COMPANY parameter IDs to include or exclude.
company_locationobjectNoLOCATION parameter IDs for the current company's HQ to include or exclude.
account_listobjectNoACCOUNT_LIST parameter IDs to include or exclude.
functionobjectNoJOB_FUNCTION parameter IDs to include or exclude.
current_job_titleobjectNoCurrent-role JOB_TITLE parameter IDs to include or exclude.
past_job_titleobjectNoPast-role JOB_TITLE parameter IDs to include or exclude.
personaarrayNoPERSONA parameter IDs to filter by.
locationobjectNoLOCATION parameter IDs to include or exclude.
postal_codeobjectNoPOSTAL_CODE parameter IDs to include or exclude, plus an optional radius in miles.
industryobjectNoINDUSTRY parameter IDs to include or exclude.
groupobjectNoGROUP parameter IDs to include or exclude.
schoolobjectNoSCHOOL parameter IDs to include or exclude.
profile_languagearrayNoPROFILE_LANGUAGE parameter IDs to filter by.
lead_listobjectNoLEAD_LIST parameter IDs to include or exclude.
seniorityobjectNoSeniority levels to include or exclude.
company_headcountarrayNoCompany headcount ranges.
years_in_companyarrayNoYears-in-current-company ranges.
years_in_positionarrayNoYears-in-current-position ranges.
years_of_experiencearrayNoTotal years-of-experience ranges.
company_typearrayNoCompany type filter.
network_distancearrayNoConnection distance: 1 (1st), 2 (2nd), 3 (3rd+), 'GROUP' (group members).
connections_ofarrayNoPEOPLE parameter IDs used to filter to connections of these members.
first_namearrayNoFirst names to filter by.
last_namearrayNoLast names to filter by.
recent_interactionobjectNoFilter by recent interaction with the operator account.
saved_resourcesobjectNoInclude results from the operator's saved leads/accounts.
save_searchobjectNoSave this search with the given name for later retrieval.
load_saved_searchobjectNoLoad and run a previously saved search by ID.
load_recent_searchobjectNoLoad and run a recent search by ID.
following_your_companybooleanNoFilter to members following your company.
viewed_your_profile_recentlybooleanNoFilter to members who viewed your profile recently.
past_colleaguebooleanNoFilter to past colleagues.
shared_experiencesbooleanNoFilter to members with shared experiences.
changed_jobsbooleanNoFilter to members who recently changed jobs.
posted_on_linkedinbooleanNoFilter to members who recently posted on LinkedIn.

Returns

Resolves to SNSearchPeopleResult. Top-level fields: object, items, paging, cursor, safety_warning.

Error codes

CodeWhat it means, and what to do
UNAUTHORIZEDThe API key is missing, malformed, or revoked. Check the key you passed to the client.
INVALID_REQUESTA parameter failed validation. The message names the offending field; fix the request rather than retrying it.
RATE_LIMIT_ACCOUNTThis account's own quota is exhausted. Wait for the window in the Retry-After header, then retry.
RATE_LIMIT_TENANTThe tenant-wide quota is exhausted across all accounts. Slow the whole workload, not just this call.
PLATFORM_RATE_LIMITLinkedIn is throttling this account. Back off well beyond the hinted delay; sustained pressure risks the account.
PLATFORM_ERRORAn upstream failure, usually transient: retry once with backoff before treating it as a real error. Check the response first, though. When it carries retry_likely_to_succeed: false and retry_hint: {kind: "never"}, retrying cannot help and backing off only delays the real answer.
ACCOUNT_NOT_FOUNDNo connected account with that id belongs to this tenant. List your accounts to get a current id.
ACCOUNT_RESTRICTEDLinkedIn has restricted the account, so it cannot act until that is cleared. Retrying will not help.
INTERNALAn unexpected server error. Retry once; if it persists, it is ours, not yours.
LINKEDIN_FEATURE_NOT_SUBSCRIBEDThe connected LinkedIn account does not have the subscription this operation needs. Activate it on LinkedIn; reconnecting will not help.
NO_ACTIVE_SEATThe targeted account is not on an active seat. Buy or attach a seat in Billing, then retry.
PAYLOAD_TOO_LARGEThree limits can trigger this. The platform's own ceiling on total request size is the lowest and the one you are most likely to hit: it starts rejecting at roughly 1 MB, so a handful of photo-sized images is refused even though it clears everything below. Above that, this API caps one attachment at 5 MiB of file content and the whole request body at 9 MiB. Attachments travel base64-encoded, which inflates them by about a third, so a 5 MiB file costs roughly 6.7 MiB of the body budget. Send fewer or smaller attachments; retrying unchanged will not help.
RESOURCE_NOT_FOUNDThe id in the path does not exist, or is not visible to this account. Re-read it from the list endpoint that produced it.

Every code above is a stable CurviateError.code you can branch on. The full list, the response envelope, and retry semantics are in the Error codes reference.

Next steps