Search people, companies, posts or jobs
direct.lempile.com/api/v1/linkedin/searchLinkedIn's classic search in Unipile's shape: people (10 a LinkedIn call), companies (keywords only), posts (3 by default) and jobs (25 a call), by Unipile's body, by a LinkedIn search page's url, or by cursor alone. api: sales_navigator or recruiter answers 403 errors/feature_not_subscribed.
Authentication
X-API-KEY header·A Lempile Direct key, one per workspace, made in Lempile's dashboard.Query parameters
account_idstringrequiredThe account that reads: a Lempile LinkedIn account id (
GET /accountslists them).limitintegerItems per page: 1 to 100 (default 10).
Default10≥ 1 · ≤ 100cursorstringA cursor a previous page gave.
Request body
CompanySearchRequestCompanySearchRequestUnipile's LinkedIn search body, classic company search with keywords only. Any filter (
industry,location,has_job_offers,headcount,network_distance), anotherapior anothercategoryanswers 501.›Show fieldsHide fields
apistringOne ofclassicDefaultclassiccategorystringrequiredOne ofcompanieskeywordsstringrequiredRequired.
limitintegerThe query's
limitwins over this one.Default10≥ 1 · ≤ 100
PeopleSearchRequestPeopleSearchRequestUnipile's classic people search. Ids come from
GET /linkedin/search/parameters.›Show fieldsHide fields
apistringOne ofclassicDefaultclassiccategorystringrequiredAlwayspeoplekeywordsstringindustryarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.locationarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.companyarray of stringCurrent company ids: a company's employees.
past_companyarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.schoolarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.servicearray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.profile_languagearray of stringnetwork_distancearray of integerconnections_ofarray of stringMembers' provider ids (or public identifiers: one read each).
followers_ofarray of stringMembers' provider ids (or public identifiers: one read each).
open_toarray of stringadvanced_keywordsobject›Show fieldsHide fields
first_namestringlast_namestringtitlestringcompanystringschoolstring
PostSearchRequestPostSearchRequestUnipile's classic posts search (3 results by default, 49 at most).
›Show fieldsHide fields
apistringOne ofclassicDefaultclassiccategorystringrequiredAlwayspostskeywordsstringsort_bystringOne ofrelevancedatedate_postedstringOne ofpast_daypast_weekpast_monthcontent_typestringOne ofvideosimageslive_videoscollaborative_articlesdocumentsjobsposted_byobject›Show fieldsHide fields
memberarray of stringcompanyarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.mebooleanfirst_connectionsbooleanpeople_you_followboolean
mentioningobject›Show fieldsHide fields
memberarray of stringcompanyarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.
authorobject›Show fieldsHide fields
industryarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.companyarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.keywordsstring
JobSearchRequestJobSearchRequestUnipile's classic jobs search (25 a LinkedIn call, 50 at most a page).
benefits,commitmentsandminimum_salaryanswer 501.›Show fieldsHide fields
apistringOne ofclassicDefaultclassiccategorystringrequiredAlwaysjobskeywordsstringsort_bystringOne ofrelevancedatedate_postednumberDays since today.
regionstringA location id (the search's own place).
Pattern^\d+$locationarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.location_within_areanumberMiles.
industryarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.rolearray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.companyarray of stringLinkedIn ids (digits):
GET /linkedin/search/parametersfinds them.seniorityarray of stringfunctionarray of stringjob_typearray of stringpresencearray of stringeasy_applybooleanhas_verificationsbooleanunder_10_applicantsbooleanin_your_networkbooleanfair_chance_employerboolean
UrlSearchRequestUrlSearchRequestA LinkedIn search page's address (people, content, companies or jobs): read as Unipile's body.
›Show fieldsHide fields
urlstringrequired
CursorSearchRequestCursorSearchRequestThe next page of a search, with its filters.
›Show fieldsHide fields
cursorstringrequired
Responses
200OK
›
application/json
objectstringrequiredAlwaysLinkedinSearchitemsarray of one ofrequired›Show fieldsHide fields
SearchResultSearchResult›Show fieldsHide fields
typestringrequiredAlwaysCOMPANYidstringrequiredThe company's id (digits).
namestring | nullrequiredlocationstring | nullrequiredprofile_urlstringrequiredindustrystring | nullrequiredsummarystring | nullrequiredlogostringThe company's logo, 100 px.
followers_countinteger
PeopleSearchResultPeopleSearchResult›Show fieldsHide fields
objectstringrequiredAlwaysSearchResulttypestringrequiredAlwaysPEOPLEidstringrequiredThe member's provider id (ACo…): what every route takes.
public_identifierstring | nullrequiredpublic_profile_urlstring | nullrequiredprofile_urlstring | nullrequiredprofile_picture_urlstring | nullrequiredprofile_picture_url_largestring | nullrequiredmember_urnstring | nullrequirednamestring | nullrequiredfirst_namestringlast_namestringnetwork_distancestringrequiredLinkedIn's own word, as Unipile answers it in a search.
One ofSELFDISTANCE_1DISTANCE_2DISTANCE_3OUT_OF_NETWORKlocationstring | nullrequiredindustrystring | nullrequiredAlways
null: LinkedIn's classic search doesn't give it.keywords_matchstringheadlinestringrequired
PostSearchResultPostSearchResult›Show fieldsHide fields
objectstringrequiredAlwaysSearchResulttypestringrequiredAlwaysPOSTproviderstringrequiredAlwaysLINKEDINidstringrequiredThe post's activity id.
social_idstringrequiredshare_urlstringrequiredtitlestringtextstringrequireddatestringrequiredparsed_datetimestringrequiredreaction_counterintegerrequiredcomment_counterintegerrequiredrepost_counterintegerrequiredimpressions_counterintegerrequireduser_reactedstringOne ofLIKEPRAISEAPPRECIATIONEMPATHYINTERESTENTERTAINMENTauthorPostAuthorrequired›Show fieldsHide fields
public_identifierstring | nullrequiredidstring | nullrequirednamestring | nullrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstring
permissionsobjectrequired›Show fieldsHide fields
can_reactbooleanrequiredcan_sharebooleanrequiredcan_post_commentsbooleanrequired
is_repostbooleanrequiredrepost_idstringA plain repost: the repost's own activity id.
reposted_byPostAuthor›Show fieldsHide fields
public_identifierstring | nullrequiredidstring | nullrequirednamestring | nullrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstring
repost_contentobjectThe post shared: the reposted post, on a plain repost and on a repost with words.
›Show fieldsHide fields
idstringrequireddatestringrequiredparsed_datetimestringrequiredtextstringrequiredauthorPostAuthorrequired›Show fieldsHide fields
public_identifierstring | nullrequiredidstring | nullrequirednamestring | nullrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstring
attachmentsarray of PostAttachmentrequired›Show fieldsHide fields
idstring | nullrequiredtypestringrequiredOne ofimgvideourlstring | nullurl_expires_atinteger | nullWhen
urlstops working, in milliseconds since 1970.sizeobject›Show fieldsHide fields
widthintegerrequiredheightintegerrequired
durationinteger | nullA video's length in seconds.
mimetypestringfile_sizeinteger | nullgifbooleanunavailablebooleanrequiredstickerboolean
repost_parsed_datetimestringA plain repost: when it was reposted.
JobSearchResultJobSearchResult›Show fieldsHide fields
objectstringrequiredAlwaysSearchResulttypestringrequiredAlwaysJOBidstringrequiredThe job posting's id (digits).
reference_idstringrequiredtitlestringrequiredlocationstring | nullrequiredposted_atstring | nullrequiredrepostedbooleanrequiredurlstringrequiredpromotedbooleanrequiredbenefitsarray of stringrequiredeasy_applybooleanrequiredcompanyone ofrequired›Show fieldsHide fields
Option 1object›Show fieldsHide fields
idstring | nullrequiredpublic_identifierstring | nullrequirednamestring | nullrequiredprofile_urlstring | nullrequiredprofile_picture_urlstring | nullrequired
Option 2null
configobjectrequired›Show fieldsHide fields
paramsobjectrequiredThe search as asked (Unipile's body).
pagingobjectrequired›Show fieldsHide fields
startintegerrequiredpage_countintegerrequiredtotal_countinteger | nullrequired
cursorstring | nullrequiredThe next page's cursor, or
nullon the last page. Opaque: send it back ascursor.
400A required parameter missing (errors/missing_parameters), or one that isn't valid (errors/invalid_parameters, errors/invalid_url, errors/content_too_large).
›
errors/missing_parameters), or one that isn't valid (errors/invalid_parameters, errors/invalid_url, errors/content_too_large).application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
401errors/missing_credentials: the X-API-KEY header is missing, wrong or revoked. errors/disconnected_account: LinkedIn signed the account out (or asks it for a security check); reconnect it.
›
errors/missing_credentials: the X-API-KEY header is missing, wrong or revoked. errors/disconnected_account: LinkedIn signed the account out (or asks it for a security check); reconnect it.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
403LinkedIn refused it for this account (errors/resource_access_restricted, errors/account_restricted, errors/action_required), or the account doesn't write through Direct (errors/insufficient_permissions), or it needs Sales Navigator or Recruiter (errors/feature_not_subscribed).
›
errors/resource_access_restricted, errors/account_restricted, errors/action_required), or the account doesn't write through Direct (errors/insufficient_permissions), or it needs Sales Navigator or Recruiter (errors/feature_not_subscribed).application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
404errors/resource_not_found: an unknown or removed account, an account of another workspace (answered exactly the same), or nothing on LinkedIn with this id.
›
errors/resource_not_found: an unknown or removed account, an account of another workspace (answered exactly the same), or nothing on LinkedIn with this id.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
429errors/too_many_requests: LinkedIn asked the account to slow down (it rests 15 minutes), its daily calls or writes are used up, or it's busy with other calls. Wait retry_after seconds.
›
errors/too_many_requests: LinkedIn asked the account to slow down (it rests 15 minutes), its daily calls or writes are used up, or it's busy with other calls. Wait retry_after seconds.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
500errors/provider_error: LinkedIn answered something Direct couldn't read (nothing was written). errors/unexpected_error: Direct failed.
›
errors/provider_error: LinkedIn answered something Direct couldn't read (nothing was written). errors/unexpected_error: Direct failed.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
501errors/feature_not_implemented: Direct doesn't do this (yet). A Unipile client can fall back to Unipile.
›
errors/feature_not_implemented: Direct doesn't do this (yet). A Unipile client can fall back to Unipile.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
503errors/network_down: the account's proxy or browser server didn't answer. Nothing was sent.
›
errors/network_down: the account's proxy or browser server didn't answer. Nothing was sent.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
504errors/request_timeout: LinkedIn didn't answer in time. On a write: an unknown outcome (it may have been sent); it's never retried and its Idempotency-Key never writes again.
›
errors/request_timeout: LinkedIn didn't answer in time. On a write: an unknown outcome (it may have been sent); it's never retried and its Idempotency-Key never writes again.application/json
titlestringrequiredA short title, e.g.
Too many requests.detailstringrequiredWhat happened, in plain words. Never an account's data.
typestringrequiredUnipile's error type:
errors/<kind>. Branch on this, not ondetail.statusintegerrequiredThe HTTP status again.
retry_afterintegerSeconds to wait before trying this account again. Only on 429; the
Retry-Afterheader carries the same value.
Was this page helpful?