Send typing indicator
Send a typing indicator to a LinkedIn conversation. Shows the recipient that you are typing a message. Useful for creating a more natural conversation experience before sending a message.
Deprecated: Will be moved to /conversations API.
/messaging/typing-indicatorCode Examples
curl -X POST 'https://api.connectsafely.ai/linkedin/messaging/typing-indicator' \ -H 'Authorization: Bearer <your_api_key>' \ -H 'Content-Type: application/json' \ -d '{"conversationUrn":"urn:li:msg_conversation:(urn:li:fsd_profile:ACoAAATPlQ0Bc8wdg-Iy8wZgEDuSdIVWJiE1Aio,2-NzkzMDFlNzAtZjU2OS00MjIwLWE2ZDctYzZkMWE1ZDljZDAyXzEwMA==)"}'Send a typing indicator to a LinkedIn conversation. Shows the recipient that you are typing a message. Useful for creating a more natural conversation experience before sending a message.
Parameters
No parameters.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
accountId | string | No | LinkedIn account ID to use. If not provided, uses the default account. |
conversationUrn | string | Yes | LinkedIn conversation URN to send typing indicator to |
Example
{
"conversationUrn": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAAATPlQ0Bc8wdg-Iy8wZgEDuSdIVWJiE1Aio,2-NzkzMDFlNzAtZjU2OS00MjIwLWE2ZDctYzZkMWE1ZDljZDAyXzEwMA==)"
}Responses
| Status | Description |
|---|---|
| 200 | Typing indicator sent successfully |
| 400 | Bad request - Missing required parameter |
| 401 | Unauthorized - Invalid or missing API key |
| 500 | Server error or failed to send typing indicator |
200 Response Parameters
| Name | Type | Description |
|---|---|---|
success | boolean | |
accountId | string | |
conversationUrn | string | |
message | string |
200 Example
{
"success": true,
"accountId": "696ce9e780e0483585e4e553",
"conversationUrn": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAAATPlQ0Bc8wdg-Iy8wZgEDuSdIVWJiE1Aio,2-NzkzMDFlNzAtZjU2OS00MjIwLWE2ZDctYzZkMWE1ZDljZDAyXzEwMA==)",
"message": "Typing indicator sent successfully"
}400 Response Parameters
| Name | Type | Description |
|---|---|---|
success | boolean | |
error | object |
400 Example
{
"success": false,
"error": "conversationUrn is required"
}401 Example
{
"error": "Unauthorized - Invalid credentials"
}500 Example
{
"success": false,
"accountId": "696ce9e780e0483585e4e553",
"conversationUrn": "urn:li:msg_conversation:...",
"message": "Failed to send typing indicator"
}Get conversation details
Retrieve detailed message history for a specific LinkedIn conversation. Supports pagination via deliveredAt timestamp to load older/newer messages. Returns full message content, sender info, and timestamps.
Send a message (messaging wrapper)
Send a LinkedIn message using the messaging endpoint. Wrapper around the core messaging functionality with a cleaner interface. Supports regular messages and InMail. Rate limit: 150 NEW conversations per day per account (resets at midnight UTC). The quota applies to cold outreach only — a message that starts a conversation with someone this account has no existing thread with. Replying inside an existing conversation does not count, whether you pass a `conversationUrn` or a recipient this account has already messaged. Do not read the rate-limit headers on a reply as the daily quota: an exempt reply never touches the daily counter, so its headers come from the general per-minute API throttle instead (write endpoints: 15 requests/minute per user). A `X-RateLimit-Limit` of 15 resetting within a minute therefore means the send was NOT counted against the 150/day.
