Facebook Pixel
APILinkedIn Messaging

Send message with typing indicator

Send a LinkedIn message after showing a typing indicator first. Creates a more natural conversation experience by simulating human-like behavior. Requires conversationUrn for existing conversations. Rate limit: 150 messages per day per account.

POST/messaging/send-with-typing
Authentication requiredMessaging

Code Examples

curl -X POST 'https://api.connectsafely.ai/linkedin/messaging/send-with-typing' \
-H 'Authorization: Bearer <your_api_key>' \
-H 'Content-Type: application/json' \
-d '{"accountId":"acc_12345","recipientProfileId":"john-doe-123","message":"Hello! I would like to connect with you.","subject":"Quick question about your work","messageType":"normal","conversationUrn":"urn:li:example:123456"}'

Parameters

No parameters.

Request Body

FieldTypeRequiredDescription
accountIdstringNoLinkedIn account ID to use. If not provided, uses the default account.
recipientProfileIdstringConditionalRecipient LinkedIn profile public ID Either recipientProfileId or recipientProfileUrn must be provided.
recipientProfileUrnstringConditionalRecipient LinkedIn profile URN Either recipientProfileUrn or recipientProfileId must be provided.
messagestringYesMessage content to send
subjectstringNoSubject line (for InMail)
messageTypestringNoMessage type
conversationUrnstringNoConversation URN (required for typing indicator in existing conversations)

Example

{
  "recipientProfileUrn": "urn:li:fsd_profile:ACoAAFpqSoMB8vTqRbg4mN_wbabO8w0gjgFu-6o",
  "message": "Hello, I would like to connect with you!",
  "conversationUrn": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAAATPlQ0Bc8wdg-Iy8wZgEDuSdIVWJiE1Aio,2-NzkzMDFlNzAtZjU2OS00MjIwLWE2ZDctYzZkMWE1ZDljZDAyXzEwMA==)"
}

Responses

StatusDescription
200Message sent successfully with typing indicator
400Bad request - Missing required parameter
401Unauthorized - Invalid or missing API key
429Rate limit exceeded
500Server error

Rate Limit Headers

All responses include rate limit information in the headers:

HeaderDescription
X-RateLimit-ActionThe action type being rate limited
X-RateLimit-LimitMaximum actions allowed per period
X-RateLimit-UsedActions used in current period
X-RateLimit-RemainingActions remaining
X-RateLimit-ResetISO 8601 timestamp when limit resets

200 Response Parameters

NameTypeDescription
successboolean
messagestring
recipientProfileUrnstring
typingIndicatorSentboolean

200 Example

{
  "success": true,
  "message": "Message sent successfully",
  "recipientProfileUrn": "urn:li:fsd_profile:ACoAAFpqSoMB8vTqRbg4mN_wbabO8w0gjgFu-6o",
  "typingIndicatorSent": true
}

400 Response Parameters

NameTypeDescription
successboolean
errorobject

400 Example

{
  "success": false,
  "error": "message is required"
}

401 Example

{
  "error": "Unauthorized - Invalid credentials"
}

429 Response Parameters

NameTypeDescription
errorstring
successboolean

429 Example

{
  "error": "Rate limit exceeded for MESSAGE: 150/150 used",
  "success": false
}

500 Example

{
  "error": "Failed to get LinkedIn authentication credentials",
  "success": false
}