Skip to content
Docs

Search people, companies, posts or jobs

POSTdirect.lempile.com/api/v1/linkedin/search

LinkedIn'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_idstringrequired

    The account that reads: a Lempile LinkedIn account id (GET /accounts lists them).

  • limitinteger

    Items per page: 1 to 100 (default 10).

    Default10≥ 1 · ≤ 100
  • cursorstring

    A cursor a previous page gave.

Request body

  • CompanySearchRequestCompanySearchRequest

    Unipile's LinkedIn search body, classic company search with keywords only. Any filter (industry, location, has_job_offers, headcount, network_distance), another api or another category answers 501.

    ›Show fields
    • apistring
      One ofclassicDefaultclassic
    • categorystringrequired
      One ofcompanies
    • keywordsstringrequired

      Required.

    • limitinteger

      The query's limit wins over this one.

      Default10≥ 1 · ≤ 100
  • PeopleSearchRequestPeopleSearchRequest

    Unipile's classic people search. Ids come from GET /linkedin/search/parameters.

    ›Show fields
    • apistring
      One ofclassicDefaultclassic
    • categorystringrequired
      Alwayspeople
    • keywordsstring
    • industryarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • locationarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • companyarray of string

      Current company ids: a company's employees.

    • past_companyarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • schoolarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • servicearray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • profile_languagearray of string
    • network_distancearray of integer
    • connections_ofarray of string

      Members' provider ids (or public identifiers: one read each).

    • followers_ofarray of string

      Members' provider ids (or public identifiers: one read each).

    • open_toarray of string
    • advanced_keywordsobject
      ›Show fields
      • first_namestring
      • last_namestring
      • titlestring
      • companystring
      • schoolstring
  • PostSearchRequestPostSearchRequest

    Unipile's classic posts search (3 results by default, 49 at most).

    ›Show fields
    • apistring
      One ofclassicDefaultclassic
    • categorystringrequired
      Alwaysposts
    • keywordsstring
    • sort_bystring
      One ofrelevancedate
    • date_postedstring
      One ofpast_daypast_weekpast_month
    • content_typestring
      One ofvideosimageslive_videoscollaborative_articlesdocumentsjobs
    • posted_byobject
      ›Show fields
      • memberarray of string
      • companyarray of string

        LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

      • meboolean
      • first_connectionsboolean
      • people_you_followboolean
    • mentioningobject
      ›Show fields
      • memberarray of string
      • companyarray of string

        LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • authorobject
      ›Show fields
      • industryarray of string

        LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

      • companyarray of string

        LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

      • keywordsstring
  • JobSearchRequestJobSearchRequest

    Unipile's classic jobs search (25 a LinkedIn call, 50 at most a page). benefits, commitments and minimum_salary answer 501.

    ›Show fields
    • apistring
      One ofclassicDefaultclassic
    • categorystringrequired
      Alwaysjobs
    • keywordsstring
    • sort_bystring
      One ofrelevancedate
    • date_postednumber

      Days since today.

    • regionstring

      A location id (the search's own place).

      Pattern^\d+$
    • locationarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • location_within_areanumber

      Miles.

    • industryarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • rolearray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • companyarray of string

      LinkedIn ids (digits): GET /linkedin/search/parameters finds them.

    • seniorityarray of string
    • functionarray of string
    • job_typearray of string
    • presencearray of string
    • easy_applyboolean
    • has_verificationsboolean
    • under_10_applicantsboolean
    • in_your_networkboolean
    • fair_chance_employerboolean
  • UrlSearchRequestUrlSearchRequest

    A LinkedIn search page's address (people, content, companies or jobs): read as Unipile's body.

    ›Show fields
    • urlstringrequired
  • CursorSearchRequestCursorSearchRequest

    The next page of a search, with its filters.

    ›Show fields
    • cursorstringrequired

Responses

200

OK

›

application/json

  • objectstringrequired
    AlwaysLinkedinSearch
  • itemsarray of one ofrequired
    ›Show fields
    • SearchResultSearchResult
      ›Show fields
      • typestringrequired
        AlwaysCOMPANY
      • idstringrequired

        The company's id (digits).

      • namestring | nullrequired
      • locationstring | nullrequired
      • profile_urlstringrequired
      • industrystring | nullrequired
      • summarystring | nullrequired
      • logostring

        The company's logo, 100 px.

      • followers_countinteger
    • PeopleSearchResultPeopleSearchResult
      ›Show fields
      • objectstringrequired
        AlwaysSearchResult
      • typestringrequired
        AlwaysPEOPLE
      • idstringrequired

        The member's provider id (ACo…): what every route takes.

      • public_identifierstring | nullrequired
      • public_profile_urlstring | nullrequired
      • profile_urlstring | nullrequired
      • profile_picture_urlstring | nullrequired
      • profile_picture_url_largestring | nullrequired
      • member_urnstring | nullrequired
      • namestring | nullrequired
      • first_namestring
      • last_namestring
      • network_distancestringrequired

        LinkedIn's own word, as Unipile answers it in a search.

        One ofSELFDISTANCE_1DISTANCE_2DISTANCE_3OUT_OF_NETWORK
      • locationstring | nullrequired
      • industrystring | nullrequired

        Always null: LinkedIn's classic search doesn't give it.

      • keywords_matchstring
      • headlinestringrequired
    • PostSearchResultPostSearchResult
      ›Show fields
      • objectstringrequired
        AlwaysSearchResult
      • typestringrequired
        AlwaysPOST
      • providerstringrequired
        AlwaysLINKEDIN
      • idstringrequired

        The post's activity id.

      • social_idstringrequired
      • share_urlstringrequired
      • titlestring
      • textstringrequired
      • datestringrequired
      • parsed_datetimestringrequired
      • reaction_counterintegerrequired
      • comment_counterintegerrequired
      • repost_counterintegerrequired
      • impressions_counterintegerrequired
      • user_reactedstring
        One ofLIKEPRAISEAPPRECIATIONEMPATHYINTERESTENTERTAINMENT
      • authorPostAuthorrequired
        ›Show fields
        • public_identifierstring | nullrequired
        • idstring | nullrequired
        • namestring | nullrequired
        • is_companybooleanrequired
        • headlinestring
        • profile_picture_urlstring
      • permissionsobjectrequired
        ›Show fields
        • can_reactbooleanrequired
        • can_sharebooleanrequired
        • can_post_commentsbooleanrequired
      • is_repostbooleanrequired
      • repost_idstring

        A plain repost: the repost's own activity id.

      • reposted_byPostAuthor
        ›Show fields
        • public_identifierstring | nullrequired
        • idstring | nullrequired
        • namestring | nullrequired
        • is_companybooleanrequired
        • headlinestring
        • profile_picture_urlstring
      • repost_contentobject

        The post shared: the reposted post, on a plain repost and on a repost with words.

        ›Show fields
        • idstringrequired
        • datestringrequired
        • parsed_datetimestringrequired
        • textstringrequired
        • authorPostAuthorrequired
          ›Show fields
          • public_identifierstring | nullrequired
          • idstring | nullrequired
          • namestring | nullrequired
          • is_companybooleanrequired
          • headlinestring
          • profile_picture_urlstring
        • attachmentsarray of PostAttachmentrequired
          ›Show fields
          • idstring | nullrequired
          • typestringrequired
            One ofimgvideo
          • urlstring | null
          • url_expires_atinteger | null

            When url stops working, in milliseconds since 1970.

          • sizeobject
            ›Show fields
            • widthintegerrequired
            • heightintegerrequired
          • durationinteger | null

            A video's length in seconds.

          • mimetypestring
          • file_sizeinteger | null
          • gifboolean
          • unavailablebooleanrequired
          • stickerboolean
      • repost_parsed_datetimestring

        A plain repost: when it was reposted.

    • JobSearchResultJobSearchResult
      ›Show fields
      • objectstringrequired
        AlwaysSearchResult
      • typestringrequired
        AlwaysJOB
      • idstringrequired

        The job posting's id (digits).

      • reference_idstringrequired
      • titlestringrequired
      • locationstring | nullrequired
      • posted_atstring | nullrequired
      • repostedbooleanrequired
      • urlstringrequired
      • promotedbooleanrequired
      • benefitsarray of stringrequired
      • easy_applybooleanrequired
      • companyone ofrequired
        ›Show fields
        • Option 1object
          ›Show fields
          • idstring | nullrequired
          • public_identifierstring | nullrequired
          • namestring | nullrequired
          • profile_urlstring | nullrequired
          • profile_picture_urlstring | nullrequired
        • Option 2null
  • configobjectrequired
    ›Show fields
    • paramsobjectrequired

      The search as asked (Unipile's body).

  • pagingobjectrequired
    ›Show fields
    • startintegerrequired
    • page_countintegerrequired
    • total_countinteger | nullrequired
  • cursorstring | nullrequired

    The next page's cursor, or null on the last page. Opaque: send it back as cursor.

400

A required parameter missing (errors/missing_parameters), or one that isn't valid (errors/invalid_parameters, errors/invalid_url, errors/content_too_large).

›

application/json

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

401

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

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

403

LinkedIn 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).

›

application/json

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

404

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

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

429

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

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

500

errors/provider_error: LinkedIn answered something Direct couldn't read (nothing was written). errors/unexpected_error: Direct failed.

›

application/json

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

501

errors/feature_not_implemented: Direct doesn't do this (yet). A Unipile client can fall back to Unipile.

›

application/json

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

503

errors/network_down: the account's proxy or browser server didn't answer. Nothing was sent.

›

application/json

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

504

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

  • titlestringrequired

    A short title, e.g. Too many requests.

  • detailstringrequired

    What happened, in plain words. Never an account's data.

  • typestringrequired

    Unipile's error type: errors/<kind>. Branch on this, not on detail.

  • statusintegerrequired

    The HTTP status again.

  • retry_afterinteger

    Seconds to wait before trying this account again. Only on 429; the Retry-After header carries the same value.

Was this page helpful?