POST
/
v1
/
messages
/
send-message
Send Message
curl --request POST \
  --url https://api.linkupapi.com/v1/messages/send-message \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <x-api-key>' \
  --data '{
  "linkedin_url": "<string>",
  "message_text": "<string>",
  "country": "<string>",
  "media_link": "<string>",
  "login_token": "<string>"
}'
{
  "status": "success",
  "message": "Message sent successfully",
  "data": {
    "entityUrn": "urn:li:msg_message:(urn:li:fsd_profile:ACoAAFHoUZgB6wGz0HEW1MdqGW45NI4e-JhvGqQ,2-MTc1MzY5NjE4NzkxMmIyODM2My0xMDAmZDYxZWIyZjUtMDQ5MS00NjJmLWJjY2ItOWFkYWVhZmM4MWFmXzEwMA==)",
    "conversation_id": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAAFHoUZgB6wGz0HEW1MdqGW45NI4e-JhvGqQ,2-ZDYxZWIyZjUtMDQ5MS00NjJmLWJjY2ItOWFkYWVhZmM4MWFmXzEwMA==)",
    "deliveredAt": 1753696188256
  }
}
Send a direct message to any LinkedIn user. The message can be sent to either a new conversation or an existing one.
This endpoint costs 1 credit for text-only messages and 2 credits for messages with media attachments.

Header Parameters

x-api-key
string
required
Your API key

Body Parameters

linkedin_url
string
required
LinkedIn profile URL of the recipient (e.g., “https://www.linkedin.com/in/username”)
message_text
string
required
Content of the message to send
country
string
default:"FR"
Country code for proxy selection. Available: (US,UK,FR)
Direct URL to media file to attach to the message (use .png,.mp4,jpeg,.pdf link extension)
media_file
file
Media file to attach to the message (second priority)
Click to select a file from your computer. The file will be automatically converted to base64 format with metadata.
login_token
string
required
LinkedIn authentication cookie obtained from the login/verify process

Response

status
string
Request status (success/error)
message
string
Detailed message about the message status
data
object
Additional data returned when message is sent successfully
{
  "status": "success",
  "message": "Message sent successfully",
  "data": {
    "entityUrn": "urn:li:msg_message:(urn:li:fsd_profile:ACoAAFHoUZgB6wGz0HEW1MdqGW45NI4e-JhvGqQ,2-MTc1MzY5NjE4NzkxMmIyODM2My0xMDAmZDYxZWIyZjUtMDQ5MS00NjJmLWJjY2ItOWFkYWVhZmM4MWFmXzEwMA==)",
    "conversation_id": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAAFHoUZgB6wGz0HEW1MdqGW45NI4e-JhvGqQ,2-ZDYxZWIyZjUtMDQ5MS00NjJmLWJjY2ItOWFkYWVhZmM4MWFmXzEwMA==)",
    "deliveredAt": 1753696188256
  }
}

Notes

  • The API automatically determines if there’s an existing conversation with the recipient
  • The API includes a typing indicator for existing conversations
  • Messages are sent with push notification enabled for the recipient
  • The recipient profile must be accessible with your login token
  • Media Priority: If multiple media parameters are provided, the system uses this priority order:
    1. media_link (direct URL) - highest priority
    2. media_file (base64 with metadata) - second priority
  • For media_file, the base64 data can include the data URL prefix (e.g., “data:image/jpeg;base64,…”)
  • Temporary files created from media_file are automatically cleaned up after sending
  • The following errors can occur:
    • Invalid profile URL format
    • Invalid media_file format or base64 encoding
    • Network or permission errors
    • Rate limiting from LinkedIn