Perform LinkedIn search
Search people, companies, posts and jobs across LinkedIn Classic, Sales Navigator and Recruiter APIs.
LinkedIn does not accept raw text - it requires stable IDs. Resolve any human-readable filter values (locations, companies, industries, skills, ...) using GET /linkedin/search/parametersfirst, then pass the returned ids into this endpoint.
Authorization
Query parameters
Request body
The body is a discriminated union. Pick one variant - either by setting the api + category pair (Classic / Sales Navigator / Recruiter) or by using url (search-from-URL) or cursor only (pagination).
Body - Classic - People
apistringclassicrequiredcategorystringpeoplerequiredkeywordsstringindustryarray of stringslocationarray of stringsprofile_languagearray of stringsnetwork_distancearray of numberscompanyarray of stringspast_companyarray of stringsschoolarray of stringsservicearray of stringsconnections_ofarray of stringsfollowers_ofarray of stringsopen_toarray of stringsproBonoboardMemberadvanced_keywordsobjectadvanced_keywords object
first_namestringlast_namestringtitlestringcompanystringschoolstringBody - Classic - Companies
apistringclassicrequiredcategorystringcompaniesrequiredkeywordsstringindustryarray of stringslocationarray of stringshas_job_offersbooleanheadcountarray of objectsheadcount object
minnumbermaxnumbernetwork_distancearray of numbersBody - Classic - Posts
apistringclassicrequiredcategorystringpostsrequiredkeywordsstringsort_bystringrelevancedatedate_postedstringpast_daypast_weekpast_monthcontent_typestringvideosimageslive_videoscollaborative_articlesdocumentsposted_byobjectposted_by object
memberarray of stringscompanyarray of stringsmebooleanfirst_connectionsbooleanpeople_you_followbooleanmentioningobjectmentioning object
memberarray of stringscompanyarray of stringsauthorobjectauthor object
industryarray of stringscompanyarray of stringskeywordsstringBody - Classic - Jobs
apistringclassicrequiredcategorystringjobsrequiredkeywordsstringsort_bystringrelevancedatedate_postednumberregionstringlocationarray of stringslocation_within_areanumberindustryarray of stringsseniorityarray of stringsexecutivedirectormid_seniorassociateentryinternfunctionarray of stringsrolearray of stringsjob_typearray of stringsfull_timepart_timecontracttemporaryvolunteerinternshipothercompanyarray of stringspresencearray of stringson_sitehybridremoteeasy_applybooleanhas_verificationsbooleanunder_10_applicantsbooleanin_your_networkbooleanfair_chance_employerbooleanbenefitsarray of stringsmedical_insurancevision_insurancedental_insurancedisability_insurance401(k)pension_planpaid_maternity_leavepaid_paternity_leavecommuter_benefitsstudent_loan_assistancetuition_assistancecommitmentsarray of stringscareer_growth_and_learningdiversity_equity_and_inclusionenvironmental_sustainabilitysocial_impactwork_life_balanceminimum_salaryobjectminimum_salary object
currencystringrequiredUSDAUDCADGBPvaluenumberrequiredBody - Sales Navigator - People
Sales Navigator filters typically use { include, exclude } objects of resolved IDs.
apistringsales_navigatorrequiredcategorystringpeoplerequiredkeywordsstringfirst_namestringlast_namestringlast_viewed_atnumbersaved_search_idstringrecent_search_idstringlocationobjectlocation object
includearray of stringsexcludearray of stringslocation_by_postal_codeobjectlocation_by_postal_code object
includearray of stringsexcludearray of stringswithin_areanumberindustryobjectindustry object
includearray of stringsexcludearray of stringsschoolobjectschool object
includearray of stringsexcludearray of stringscompanyobjectcompany object
includearray of stringsexcludearray of stringspast_companyobjectpast_company object
includearray of stringsexcludearray of stringscompany_locationobjectcompany_location object
includearray of stringsexcludearray of stringsfunctionobjectfunction object
includearray of stringsexcludearray of stringsroleobjectrole object
includearray of stringsexcludearray of stringspast_roleobjectpast_role object
includearray of stringsexcludearray of stringsseniorityobjectseniority object
includearray of stringsexcludearray of stringsaccount_listsobjectaccount_lists object
includearray of stringsexcludearray of stringslead_listsobjectlead_lists object
includearray of stringsexcludearray of stringstenurearray of objectstenure object
minnumbermaxnumbertenure_at_companyarray of objectstenure_at_company object
minnumbermaxnumbertenure_at_rolearray of objectstenure_at_role object
minnumbermaxnumbercompany_headcountarray of objectscompany_headcount object
minnumbermaxnumberprofile_languagearray of stringscompany_typearray of stringspublic_companyprivately_heldnon_profiteducational_institutionpartnershipself_employedself_ownedgovernment_agencygroupsarray of stringsnetwork_distancearrayconnections_ofarray of stringspersonaarray of stringsfollowing_your_companybooleanviewed_your_profile_recentlybooleanpast_colleaguebooleanshared_experiencesbooleanchanged_jobsbooleanposted_on_linkedinbooleanmentionned_in_newsbooleanviewed_profile_recentlybooleanmessaged_recentlybooleaninclude_saved_leadsbooleaninclude_saved_accountsbooleansave_searchobjectsave_search object
namestringrequiredBody - Sales Navigator - Companies
apistringsales_navigatorrequiredcategorystringcompaniesrequiredkeywordsstringlast_viewed_atnumbersaved_search_idstringrecent_search_idstringindustryobjectindustry object
includearray of stringsexcludearray of stringslocationobjectlocation object
includearray of stringsexcludearray of stringslocation_by_postal_codeobjectlocation_by_postal_code object
includearray of stringsexcludearray of stringswithin_areanumberhas_job_offersbooleanheadcountarray of objectsheadcount object
minnumbermaxnumberheadcount_growthobjectheadcount_growth object
minnumbermaxnumberdepartment_headcountobjectdepartment_headcount object
departmentarray of stringsrequiredminnumbermaxnumberdepartment_headcount_growthobjectdepartment_headcount_growth object
departmentarray of stringsrequiredminnumbermaxnumbernetwork_distancearray of numbersannual_revenueobjectannual_revenue object
currencystringrequiredminnumberrequiredmaxnumberrequiredfollowers_countarray of objectsfollowers_count object
minnumbermaxnumberfortunearray of objectsfortune object
minnumbermaxnumbertechnologiesarray of stringsrecent_activitiesarray of stringssenior_leadership_changesfunding_eventssaved_accountsarray of stringsaccount_listsobjectaccount_lists object
includearray of stringsexcludearray of stringssave_searchobjectsave_search object
namestringrequiredBody - Recruiter - People
Recruiter filters expose priority (CAN_HAVE / MUST_HAVE /DOESNT_HAVE) and, where relevant, scope (e.g. CURRENT / PAST / OPEN_TO_WORK).
apistringrecruiterrequiredcategorystringpeoplerequiredkeywordsstringlocalestringsaved_searchobjectsaved_search object
idstringrequiredproject_idstringrequirednewest_results_onlybooleansaved_filterstringlocationarray of objectslocation object
idstringrequiredprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEscopestringCURRENTOPEN_TO_RELOCATE_ONLYCURRENT_OR_OPEN_TO_RELOCATEtitlestringlocation_within_areanumberindustryobjectindustry object
includearray of stringsexcludearray of stringsrolearray of objectsrole object
idstringis_selectionbooleankeywordsstringprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEscopestringCURRENT_OR_PASTCURRENTPASTPAST_NOT_CURRENTOPEN_TO_WORKskillsarray of objectsskills object
idstringkeywordsstringprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEcompanyarray of objectscompany object
idstringnamestringkeywordsstringprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEscopestringCURRENT_OR_PASTCURRENTPASTPAST_NOT_CURRENTcurrent_companyarray of objectscurrent_company object
idstringrequiredprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEpast_companyarray of objectspast_company object
idstringrequiredprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEschoolarray of objectsschool object
idstringrequiredprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEdegreeobjectdegree object
includearray of stringsexcludearray of stringsemployment_typearray of stringsFULL_TIMEPART_TIMECONTRACTINTERNSHIPgroupsarray of stringsgraduation_yearobjectgraduation_year object
minnumbermaxnumbercompany_headcountarray of objectscompany_headcount object
minnumbermaxnumbertenureobjecttenure object
minnumbermaxnumbertenure_in_companyobjecttenure_in_company object
minnumbermaxnumbertenure_in_positionobjecttenure_in_position object
minnumbermaxnumberseniorityobjectseniority object
includearray of stringsexcludearray of stringsfunctionarray of stringsnetwork_distancearrayspoken_languagesarray of objectsspoken_languages object
languagestringrequiredprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEscopestringELEMENTARYLIMITED_WORKINGPROFESSIONAL_WORKINGFULL_PROFESSIONALNATIVE_OR_BILINGUALhide_previously_viewedobjecthide_previously_viewed object
timespannumberrequiredprofile_languagearray of stringsrecently_joinedarray of objectsrecently_joined object
minnumbermaxnumberspotlightsarray of stringsOPEN_TO_WORKACTIVE_TALENTREDISCOVERED_CANDIDATESINTERNAL_CANDIDATESINTERESTED_IN_YOUR_COMPANYHAVE_COMPANY_CONNECTIONSfirst_namearray of stringslast_namearray of stringshas_military_backgroundbooleanpast_applicantsbooleanhiring_projectsobjecthiring_projects object
includearray of stringsexcludearray of stringsrecruiting_activityarray of objectsrecruiting_activity object
idstringrequiredmessagestagsnotesprojectsresumesreviewsprioritystringCAN_HAVEMUST_HAVEDOESNT_HAVEtimespannumbernotesarray of stringsBody - Search from URL
urlstringrequiredBody - Cursor
cursorstringrequiredResponse 200 OK
objectstringLinkedinSearchrequireditemsarrayrequiredconfigobjectrequiredpagingobjectrequiredpaging object
startnumberrequiredpage_countnumberrequiredtotal_countnumberrequiredcursorstringrequiredmetadataobjectmetadata object
search_history_idstringsearch_context_idstringsearch_request_idstringResult variant - PEOPLE
objectstringSearchResultrequiredtypestringPEOPLErequiredidstringrequiredpublic_identifierstringrequiredpublic_profile_urlstringrequiredprofile_urlstringrequiredprofile_picture_urlstringrequiredprofile_picture_url_largestringrequiredmember_urnstringrequirednamestringrequiredfirst_namestringlast_namestringnetwork_distancestringrequiredSELFDISTANCE_1DISTANCE_2DISTANCE_3OUT_OF_NETWORKlocationstringrequiredindustrystringrequiredkeywords_matchstringheadlinestringrequiredconnections_countnumberfollowers_countnumberpending_invitationbooleancan_send_inmailbooleanpremiumbooleanverifiedbooleanopen_profilebooleanshared_connections_countnumberrecent_posts_countnumberrecently_hiredbooleanmentioned_in_the_newsbooleanhiddenCandidatebooleaninterestLikelihoodstringprivacySettingsobjectprivacySettings object
allowConnectionsBrowsebooleanrequiredshowPremiumSubscriberIconbooleanrequiredskillsarray of objectsskills object
namestringrequiredendorsement_countnumberrequiredrecruiter_candidate_idstringrecruiter_pipeline_categorystringlast_outreach_activityobjectlast_outreach_activity object
typestringrequiredSEND_MESSAGEACCEPT_INVITATIONperformed_atstringrequiredcurrent_positionsarray of objectseducationarray of objectswork_experiencearray of objectscertificationsarray of objectsprojectsarray of objectsinterestsstringtagsarray of objectsnotesarray of objectsResult variant - COMPANY
objectstringSearchResultrequiredtypestringCOMPANYrequiredidstringrequirednamestringrequiredlocationstringrequiredprofile_urlstringrequiredindustrystringrequiredsummarystringrequiredfollowers_countnumberjob_offers_countnumberheadcountstringrevenue_rangeobjectrevenue_range object
minnumberrequiredmaxnumberrequiredcurrencystringrequiredResult variant - POST
objectstringSearchResultrequiredtypestringPOSTrequiredproviderstringLINKEDINrequiredidstringrequiredsocial_idstringrequiredshare_urlstringrequiredtitlestringtextstringrequireddatestringrequiredparsed_datetimestringrequiredreaction_counternumberrequiredcomment_counternumberrequiredrepost_counternumberrequiredimpressions_counternumberrequireduser_reactedstringLIKEPRAISEAPPRECIATIONEMPATHYINTERESTENTERTAINMENTauthorobjectrequiredauthor object
public_identifierstringrequiredidstringrequirednamestringrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstringwritten_byobjectwritten_by object
idstringrequiredpublic_identifierstringrequirednamestringrequiredpermissionsobjectrequiredpermissions object
can_reactbooleanrequiredcan_sharebooleanrequiredcan_post_commentsbooleanrequiredis_repostbooleanrequiredrepost_idstringreposted_byobjectrepost_contentobjectmentionsarray of objectsrequiredattachmentsarray of objectsrequiredpollobjectgroupobjectanalyticsobjectResult variant - JOB
objectstringSearchResultrequiredtypestringJOBrequiredidstringrequiredreference_idstringrequiredtitlestringrequiredlocationstringrequiredposted_atstringrequiredrepostedbooleanrequiredurlstringrequiredpromotedbooleanrequiredbenefitsarray of stringsrequiredeasy_applybooleanrequiredcompanyobjectrequiredcompany object
idstringrequiredpublic_identifierstringrequirednamestringrequiredprofile_urlstringrequiredprofile_picture_urlstringrequiredExample request
curl --request POST \
--url 'https://api.postpress.ai/api/v1/linkedin/search?account_id=acc_linkedin_01HXYZ4QK3WJ8FN3M6QH7TZ8GR&limit=10' \
--header 'X-API-KEY: pp_live_...' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"api": "classic",
"category": "people",
"keywords": "software engineer",
"location": ["102277331"],
"network_distance": [1, 2]
}'Example response
{
"object": "LinkedinSearch",
"items": [
{
"object": "SearchResult",
"type": "PEOPLE",
"id": "ACoAAA...",
"public_identifier": "jordan-walke",
"public_profile_url": "https://www.linkedin.com/in/jordan-walke",
"profile_url": "https://www.linkedin.com/in/jordan-walke",
"profile_picture_url": "https://media.licdn.com/.../picture.jpg",
"profile_picture_url_large": "https://media.licdn.com/.../picture-large.jpg",
"member_urn": "urn:li:member:1234567",
"name": "Jordan Walke",
"first_name": "Jordan",
"last_name": "Walke",
"network_distance": "DISTANCE_2",
"location": "San Francisco, California, United States",
"industry": "Software Development",
"headline": "Software Engineer at Acme",
"connections_count": 500,
"followers_count": 1280,
"pending_invitation": false,
"can_send_inmail": true,
"premium": false,
"verified": true,
"current_positions": [
{
"company": "Acme",
"company_id": "9374000",
"company_url": "https://www.linkedin.com/company/acme",
"role": "Staff Software Engineer",
"location": "San Francisco, California",
"industry": ["Software Development"],
"tenure_at_role": { "years": 2, "months": 4 },
"tenure_at_company": { "years": 3, "months": 0 },
"start": { "year": 2023, "month": 1 }
}
]
}
],
"config": {
"params": { "api": "classic", "category": "people", "keywords": "software engineer" }
},
"paging": { "start": 0, "page_count": 10, "total_count": 1248 },
"cursor": "eyJzdGFydCI6MTB9",
"metadata": { "search_history_id": "hist_01HXYZ", "search_context_id": "ctx_01HXYZ", "search_request_id": "req_01HXYZ" }
}Errors
Every error response follows the same envelope:
400 Bad Request8 types
The request body is malformed or the body variant is invalid.
errors/invalid_parameters- One or more parameters are invalid (wrong enum, wrong shape, unknown filter for the chosen `api`/`category`).errors/malformed_request- The request is malformed.errors/content_too_large- The request body is too large.errors/invalid_url- When using the `Search from URL` body, the URL is not a valid LinkedIn search URL.errors/too_many_characters- A string field exceeds the allowed length.errors/unescaped_characters- A field contains characters that must be encoded.errors/missing_parameters- A required field (`api`/`category`, `account_id`, ...) is missing.errors/limit_too_high- `limit` exceeds the maximum (50 for Classic, 100 for Sales Navigator / Recruiter).
401 Unauthorized13 types
Credentials are missing, expired, or otherwise invalid.
errors/missing_credentials- Some credentials are necessary to perform the request.errors/multiple_sessions- LinkedIn limits multiple sessions on certain Recruiter accounts. Use the cookie connection method.errors/wrong_account- The provided credentials do not match the correct account.errors/invalid_credentials- The provided credentials are invalid.errors/invalid_proxy_credentials- The provided proxy credentials are invalid.errors/invalid_checkpoint_solution- The checkpoint resolution did not pass successfully. Retry.errors/checkpoint_error- The checkpoint does not appear to be resolvable.errors/expired_credentials- Credentials have expired. Reconnect the account.errors/expired_link- This link has expired. Generate a new one.errors/insufficient_privileges- This resource is out of your API-key scopes.errors/disconnected_account- The account is disconnected from the provider service.errors/disconnected_feature- The service you're trying to reach is disconnected.errors/invalid_credentials_but_valid_account_imap- IMAP/SMTP credentials are invalid but the account is otherwise valid.
403 Forbidden9 types
Authenticated but the account is restricted or the action is not allowed.
errors/insufficient_permissions- Valid authentication but insufficient permissions to perform the request.errors/account_restricted- The account has been restricted by the provider.errors/account_mismatch- This action cannot be done with your account.errors/unknown_authentication_context- An additional step seems necessary to complete login.errors/session_mismatch- Token user id does not match client session id.errors/feature_not_subscribed- Sales Navigator or Recruiter is not subscribed on this account.errors/subscription_required- A subscription is required to use this feature.errors/resource_access_restricted- You don't have access to this resource.errors/action_required- An additional step is required.
404 Not Found2 types
The targeted account or resource does not exist.
errors/resource_not_found- The requested resource was not found.errors/invalid_resource_identifier- The provided identifier is not valid for this resource.
500 Internal Server Error3 types
Something went wrong on our side or with the upstream provider.
errors/unexpected_error- Something went wrong.errors/provider_error- The provider is experiencing operational problems. Retry later.errors/authentication_intent_error- The current authentication intent was killed after failure.
503 Service Unavailable5 types
postpress is temporarily unable to handle the request.
errors/no_client_session- No client session is currently running.errors/no_channel- No channel to client session.errors/no_handler- Handler missing for that request.errors/network_down- Network is down on the server side. Retry shortly.errors/service_unavailable- Service temporarily unavailable. Retry later.
504 Gateway Timeout1 types
The upstream provider did not respond in time.
errors/request_timeout- Request timed out. Retry, and contact support if it persists.