Facebook Pixel
APILinkedIn Messaging

React or unreact to a message

Add or remove an emoji reaction on a message. The reaction is applied on LinkedIn first; other connected clients/tabs are notified via WebSocket. Set react=true to add the reaction, react=false to remove it.

POST/conversations/{conversationUrn}/messages/{messageUrn}/react
Authentication requiredConversations

Code Examples

curl -X POST 'https://api.connectsafely.ai/linkedin/conversations/<conversationUrn>/messages/<messageUrn>/react' \
-H 'Authorization: Bearer <your_api_key>' \
-H 'Content-Type: application/json' \
-d '{"emoji":"example_value","react":false}'

Add or remove an emoji reaction on a message. The reaction is applied on LinkedIn first; other connected clients/tabs are notified via WebSocket. Set react=true to add the reaction, react=false to remove it.

Parameters

NameInRequiredTypeDescription
conversationUrnpathYesstringConversation URN (URL-encoded)
messageUrnpathYesstringURN of the message to react to (URL-encoded)
accountIdqueryNostringLinkedIn account ID

Request Body

FieldTypeRequiredDescription
emojistringYesEmoji to react with (e.g., "👍")
reactbooleanYestrue to add the reaction, false to remove it

Example

{
  "emoji": "example_value",
  "react": false
}

Responses

StatusDescription
200Reaction applied
400Reaction failed
401Unauthorized
404Account not found
500Server error

200 Response Parameters

NameTypeDescription
successboolean
messageUrnstring
emojistring
reactboolean

200 Example

{
  "success": true,
  "messageUrn": "Hello! I would like to connect with you.",
  "emoji": "example_value",
  "react": true
}

400 Response Parameters

NameTypeDescription
errorstring

400 Example

{
  "error": "example_value"
}

401 Response Parameters

NameTypeDescription
errorstring

401 Example

{
  "error": "example_value"
}

404 Response Parameters

NameTypeDescription
errorstring

404 Example

{
  "error": "example_value"
}

500 Response Parameters

NameTypeDescription
errorstring

500 Example

{
  "error": "example_value"
}

Delete (recall) a message

Recall a message you sent. The message is first recalled on LinkedIn (source of truth); only on success is it soft-deleted locally so a later sync never re-surfaces the recalled tombstone. Other connected clients/tabs are notified via WebSocket. Matching is by the prefix-independent normalized message id, so the stored row is removed even if it was synced under a different mailbox prefix.

Send message (with channel selection)

Send a LinkedIn message. By default, messagingChannel is "auto" which auto-detects whether to use Sales Navigator or standard LinkedIn inbox based on the account premium status. Users can explicitly control the messaging channel by setting messagingChannel to: "sales_navigator" — forces the message through the Sales Navigator API (returns a 400 error if the account does not have an active Sales Navigator subscription), or "linkedin_inbox" — forces standard LinkedIn messaging even if the account has Sales Navigator. Example: to send via standard inbox on a Sales Nav account, pass { "messagingChannel": "linkedin_inbox" }. To explicitly use Sales Navigator, pass { "messagingChannel": "sales_navigator" }. If omitted or set to "auto", the system decides automatically. File attachments: first upload each file via POST /conversations/upload-attachment, then pass each returned attachment object in the `attachments` array, each wrapped in a `file` key — `{ "attachments": [{ "file": { "assetUrn": "...", "byteSize": 123, "mediaType": "image/png", "name": "photo.png" } }] }`. An attachment whose file was uploaded with an image/* content type renders inline as a photo; anything else renders as a downloadable file.