Skip to content
Docs

Retrieve a message

GETdirect.lempile.com/api/v1/messages/{message_id}

One message by its id (a LinkedIn call by ids). 404 when LinkedIn doesn't know it.

Authentication

X-API-KEY header·A Lempile Direct key, one per workspace, made in Lempile's dashboard.

Path parameters

  • message_idstringrequired

    The message's id as Direct answers it.

Query parameters

  • account_idstringrequired

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

Responses

200

OK

›

application/json

  • objectstringrequired
    AlwaysMessage
  • idstringrequired

    LinkedIn's own message id (2-…), URL-safe and unpadded.

  • provider_idstringrequired

    Same as id.

  • account_idstringrequired
  • chat_idstringrequired

    LinkedIn's own thread id (2-…), URL-safe and unpadded.

  • chat_provider_idstringrequired

    Same as chat_id.

  • sender_idstringrequired

    The sender's provider id.

  • sender_attendee_idstringrequired

    Same as sender_id.

  • sender_urnstringrequired
  • textstring | nullrequired
  • attachmentsarray of MessageAttachmentrequired
    ›Show fields
    • idstringrequired
    • typestringrequired
      One ofimgfileaudio
    • urlstring | null

      LinkedIn's signed link to the file (a voice note: its AAC .m4a, audio/mp4). It expires.

    • unavailablebooleanrequired
    • sizeobject
      ›Show fields
      • widthintegerrequired
      • heightintegerrequired
    • stickerboolean
    • file_namestring
    • file_sizeinteger
    • mimetypestring | null
    • voice_noteboolean

      audio only: always true (a LinkedIn voice note).

    • durationinteger

      audio only: its length in milliseconds, as LinkedIn gives it.

  • timestampstringrequired

    UTC time, ISO 8601 with milliseconds: 2026-10-28T21:15:03.123Z.

  • is_senderintegerrequired

    1 when the account sent it.

    One of01
  • reactionsarray of objectrequired

    The account's own reactions only.

    ›Show fields
    • valuestringrequired
    • sender_idstringrequired
    • is_senderbooleanrequired
  • seenintegerrequired

    Always 0 (not read).

    One of01
  • seen_byobjectrequired

    Always {}.

  • hiddenintegerrequired

    Always 0.

    One of01
  • deletedintegerrequired

    1 when its sender took it back.

    One of01
  • deleted_forstring
    Alwayseveryone
  • editedintegerrequired

    1 when edited.

    One of01
  • is_eventintegerrequired

    1 for a conversation event LinkedIn writes itself.

    One of01
  • deliveredintegerrequired

    Always 1.

    One of01
  • behaviornullrequired
  • originalstringrequired
    Always
  • message_typestringrequired
    AlwaysMESSAGE
  • attendee_typestringrequired
    One ofMEMBERORGANIZATION
  • attendee_distanceinteger

    The sender's distance: 1 to 3, 4 out of network.

    One of1234
  • subjectstring

    An InMail's subject.

  • account_typestring

    Only on GET /messages/{message_id}.

    AlwaysLINKEDIN
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.

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.

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?