Send Message or Email
curl --request POST \
--url https://api.linkupapi.com/v2/messages \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"message_text": "<string>",
"subject": "<string>",
"profile_url": "<string>",
"inmail": true,
"recipient_urn": "<string>",
"phone_number": "<string>",
"to": "<string>",
"html": "<string>",
"reply_to": "<string>",
"thread_ref": "<string>",
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"custom_headers": {},
"account_ids": [
"<string>"
],
"media_link": "<string>",
"media_file": {
"data": "<string>",
"filename": "<string>"
},
"media_path": "<string>",
"media_links": [
"<string>"
],
"media_files": [
{}
],
"voice_message": true,
"quoted_message_id": "<string>"
}
}
'import requests
url = "https://api.linkupapi.com/v2/messages"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"message_text": "<string>",
"subject": "<string>",
"profile_url": "<string>",
"inmail": True,
"recipient_urn": "<string>",
"phone_number": "<string>",
"to": "<string>",
"html": "<string>",
"reply_to": "<string>",
"thread_ref": "<string>",
"cc": ["<string>"],
"bcc": ["<string>"],
"custom_headers": {},
"account_ids": ["<string>"],
"media_link": "<string>",
"media_file": {
"data": "<string>",
"filename": "<string>"
},
"media_path": "<string>",
"media_links": ["<string>"],
"media_files": [{}],
"voice_message": True,
"quoted_message_id": "<string>"
}
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_id: '<string>',
action: '<string>',
params: {
message_text: '<string>',
subject: '<string>',
profile_url: '<string>',
inmail: true,
recipient_urn: '<string>',
phone_number: '<string>',
to: '<string>',
html: '<string>',
reply_to: '<string>',
thread_ref: '<string>',
cc: ['<string>'],
bcc: ['<string>'],
custom_headers: {},
account_ids: ['<string>'],
media_link: '<string>',
media_file: {data: '<string>', filename: '<string>'},
media_path: '<string>',
media_links: ['<string>'],
media_files: [{}],
voice_message: true,
quoted_message_id: '<string>'
}
})
};
fetch('https://api.linkupapi.com/v2/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'action' => '<string>',
'params' => [
'message_text' => '<string>',
'subject' => '<string>',
'profile_url' => '<string>',
'inmail' => true,
'recipient_urn' => '<string>',
'phone_number' => '<string>',
'to' => '<string>',
'html' => '<string>',
'reply_to' => '<string>',
'thread_ref' => '<string>',
'cc' => [
'<string>'
],
'bcc' => [
'<string>'
],
'custom_headers' => [
],
'account_ids' => [
'<string>'
],
'media_link' => '<string>',
'media_file' => [
'data' => '<string>',
'filename' => '<string>'
],
'media_path' => '<string>',
'media_links' => [
'<string>'
],
'media_files' => [
[
]
],
'voice_message' => true,
'quoted_message_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/messages"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"message_text\": \"<string>\",\n \"subject\": \"<string>\",\n \"profile_url\": \"<string>\",\n \"inmail\": true,\n \"recipient_urn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"to\": \"<string>\",\n \"html\": \"<string>\",\n \"reply_to\": \"<string>\",\n \"thread_ref\": \"<string>\",\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"custom_headers\": {},\n \"account_ids\": [\n \"<string>\"\n ],\n \"media_link\": \"<string>\",\n \"media_file\": {\n \"data\": \"<string>\",\n \"filename\": \"<string>\"\n },\n \"media_path\": \"<string>\",\n \"media_links\": [\n \"<string>\"\n ],\n \"media_files\": [\n {}\n ],\n \"voice_message\": true,\n \"quoted_message_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/messages")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"message_text\": \"<string>\",\n \"subject\": \"<string>\",\n \"profile_url\": \"<string>\",\n \"inmail\": true,\n \"recipient_urn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"to\": \"<string>\",\n \"html\": \"<string>\",\n \"reply_to\": \"<string>\",\n \"thread_ref\": \"<string>\",\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"custom_headers\": {},\n \"account_ids\": [\n \"<string>\"\n ],\n \"media_link\": \"<string>\",\n \"media_file\": {\n \"data\": \"<string>\",\n \"filename\": \"<string>\"\n },\n \"media_path\": \"<string>\",\n \"media_links\": [\n \"<string>\"\n ],\n \"media_files\": [\n {}\n ],\n \"voice_message\": true,\n \"quoted_message_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"message_text\": \"<string>\",\n \"subject\": \"<string>\",\n \"profile_url\": \"<string>\",\n \"inmail\": true,\n \"recipient_urn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"to\": \"<string>\",\n \"html\": \"<string>\",\n \"reply_to\": \"<string>\",\n \"thread_ref\": \"<string>\",\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"custom_headers\": {},\n \"account_ids\": [\n \"<string>\"\n ],\n \"media_link\": \"<string>\",\n \"media_file\": {\n \"data\": \"<string>\",\n \"filename\": \"<string>\"\n },\n \"media_path\": \"<string>\",\n \"media_links\": [\n \"<string>\"\n ],\n \"media_files\": [\n {}\n ],\n \"voice_message\": true,\n \"quoted_message_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "success",
"data": {
"entityUrn": "urn:li:msg_message:(urn:li:fsd_profile:ACoAA...,2-MTc4NTI3...)",
"conversation_id": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAA...,2-M2RkYWQ4...)",
"deliveredAt": 1785272227840
}
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": true,
"data": {
"status": "success",
"message": "InMail sent",
"recipient_urn": "urn:li:fs_salesProfile:(ACwAAA...,name, )",
"data": {
"value": {
"threadId": "2-OTQwMTJlODEt...",
"messageId": "2-MTc4NTIyODc1..."
}
}
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": true,
"data": {
"status": "success",
"data": {
"message_id": "<...@gmail.com>",
"sent_from": "you@company.com",
"esp": "google",
"recipient_esp": "other",
"home_court": false,
"over_cap": false,
"mailbox_health": { "sends_today": 1, "daily_limit": 40, "bounce_rate": 0.0 }
}
},
"metadata": { "action": "send", "account_id": "your-email-account-id", "credits_consumed": 1, "timestamp": "2026-09-14T12:00:00Z" }
}
{
"success": true,
"data": {
"status": "success",
"data": {
"entityUrn": "3EB05338283099EC87F1F8",
"conversation_id": "33612345678@s.whatsapp.net",
"deliveredAt": 1790436783000,
"phone_number": "33612345678"
}
},
"metadata": { "action": "send", "account_id": "your-whatsapp-account-id", "credits_consumed": 1, "timestamp": "2026-09-26T15:33:03Z" }
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "message_text is required"
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Messaging
Send Message or Email
Send a LinkedIn message or InMail, or an email — from a connected account.
POST
/
v2
/
messages
Send Message or Email
curl --request POST \
--url https://api.linkupapi.com/v2/messages \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"account_id": "<string>",
"action": "<string>",
"params": {
"message_text": "<string>",
"subject": "<string>",
"profile_url": "<string>",
"inmail": true,
"recipient_urn": "<string>",
"phone_number": "<string>",
"to": "<string>",
"html": "<string>",
"reply_to": "<string>",
"thread_ref": "<string>",
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"custom_headers": {},
"account_ids": [
"<string>"
],
"media_link": "<string>",
"media_file": {
"data": "<string>",
"filename": "<string>"
},
"media_path": "<string>",
"media_links": [
"<string>"
],
"media_files": [
{}
],
"voice_message": true,
"quoted_message_id": "<string>"
}
}
'import requests
url = "https://api.linkupapi.com/v2/messages"
payload = {
"account_id": "<string>",
"action": "<string>",
"params": {
"message_text": "<string>",
"subject": "<string>",
"profile_url": "<string>",
"inmail": True,
"recipient_urn": "<string>",
"phone_number": "<string>",
"to": "<string>",
"html": "<string>",
"reply_to": "<string>",
"thread_ref": "<string>",
"cc": ["<string>"],
"bcc": ["<string>"],
"custom_headers": {},
"account_ids": ["<string>"],
"media_link": "<string>",
"media_file": {
"data": "<string>",
"filename": "<string>"
},
"media_path": "<string>",
"media_links": ["<string>"],
"media_files": [{}],
"voice_message": True,
"quoted_message_id": "<string>"
}
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_id: '<string>',
action: '<string>',
params: {
message_text: '<string>',
subject: '<string>',
profile_url: '<string>',
inmail: true,
recipient_urn: '<string>',
phone_number: '<string>',
to: '<string>',
html: '<string>',
reply_to: '<string>',
thread_ref: '<string>',
cc: ['<string>'],
bcc: ['<string>'],
custom_headers: {},
account_ids: ['<string>'],
media_link: '<string>',
media_file: {data: '<string>', filename: '<string>'},
media_path: '<string>',
media_links: ['<string>'],
media_files: [{}],
voice_message: true,
quoted_message_id: '<string>'
}
})
};
fetch('https://api.linkupapi.com/v2/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'action' => '<string>',
'params' => [
'message_text' => '<string>',
'subject' => '<string>',
'profile_url' => '<string>',
'inmail' => true,
'recipient_urn' => '<string>',
'phone_number' => '<string>',
'to' => '<string>',
'html' => '<string>',
'reply_to' => '<string>',
'thread_ref' => '<string>',
'cc' => [
'<string>'
],
'bcc' => [
'<string>'
],
'custom_headers' => [
],
'account_ids' => [
'<string>'
],
'media_link' => '<string>',
'media_file' => [
'data' => '<string>',
'filename' => '<string>'
],
'media_path' => '<string>',
'media_links' => [
'<string>'
],
'media_files' => [
[
]
],
'voice_message' => true,
'quoted_message_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/messages"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"message_text\": \"<string>\",\n \"subject\": \"<string>\",\n \"profile_url\": \"<string>\",\n \"inmail\": true,\n \"recipient_urn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"to\": \"<string>\",\n \"html\": \"<string>\",\n \"reply_to\": \"<string>\",\n \"thread_ref\": \"<string>\",\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"custom_headers\": {},\n \"account_ids\": [\n \"<string>\"\n ],\n \"media_link\": \"<string>\",\n \"media_file\": {\n \"data\": \"<string>\",\n \"filename\": \"<string>\"\n },\n \"media_path\": \"<string>\",\n \"media_links\": [\n \"<string>\"\n ],\n \"media_files\": [\n {}\n ],\n \"voice_message\": true,\n \"quoted_message_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/messages")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"message_text\": \"<string>\",\n \"subject\": \"<string>\",\n \"profile_url\": \"<string>\",\n \"inmail\": true,\n \"recipient_urn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"to\": \"<string>\",\n \"html\": \"<string>\",\n \"reply_to\": \"<string>\",\n \"thread_ref\": \"<string>\",\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"custom_headers\": {},\n \"account_ids\": [\n \"<string>\"\n ],\n \"media_link\": \"<string>\",\n \"media_file\": {\n \"data\": \"<string>\",\n \"filename\": \"<string>\"\n },\n \"media_path\": \"<string>\",\n \"media_links\": [\n \"<string>\"\n ],\n \"media_files\": [\n {}\n ],\n \"voice_message\": true,\n \"quoted_message_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"action\": \"<string>\",\n \"params\": {\n \"message_text\": \"<string>\",\n \"subject\": \"<string>\",\n \"profile_url\": \"<string>\",\n \"inmail\": true,\n \"recipient_urn\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"to\": \"<string>\",\n \"html\": \"<string>\",\n \"reply_to\": \"<string>\",\n \"thread_ref\": \"<string>\",\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"custom_headers\": {},\n \"account_ids\": [\n \"<string>\"\n ],\n \"media_link\": \"<string>\",\n \"media_file\": {\n \"data\": \"<string>\",\n \"filename\": \"<string>\"\n },\n \"media_path\": \"<string>\",\n \"media_links\": [\n \"<string>\"\n ],\n \"media_files\": [\n {}\n ],\n \"voice_message\": true,\n \"quoted_message_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "success",
"data": {
"entityUrn": "urn:li:msg_message:(urn:li:fsd_profile:ACoAA...,2-MTc4NTI3...)",
"conversation_id": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAA...,2-M2RkYWQ4...)",
"deliveredAt": 1785272227840
}
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": true,
"data": {
"status": "success",
"message": "InMail sent",
"recipient_urn": "urn:li:fs_salesProfile:(ACwAAA...,name, )",
"data": {
"value": {
"threadId": "2-OTQwMTJlODEt...",
"messageId": "2-MTc4NTIyODc1..."
}
}
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": true,
"data": {
"status": "success",
"data": {
"message_id": "<...@gmail.com>",
"sent_from": "you@company.com",
"esp": "google",
"recipient_esp": "other",
"home_court": false,
"over_cap": false,
"mailbox_health": { "sends_today": 1, "daily_limit": 40, "bounce_rate": 0.0 }
}
},
"metadata": { "action": "send", "account_id": "your-email-account-id", "credits_consumed": 1, "timestamp": "2026-09-14T12:00:00Z" }
}
{
"success": true,
"data": {
"status": "success",
"data": {
"entityUrn": "3EB05338283099EC87F1F8",
"conversation_id": "33612345678@s.whatsapp.net",
"deliveredAt": 1790436783000,
"phone_number": "33612345678"
}
},
"metadata": { "action": "send", "account_id": "your-whatsapp-account-id", "credits_consumed": 1, "timestamp": "2026-09-26T15:33:03Z" }
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "message_text is required"
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
Overview
Sends a message from a connected account. For a LinkedIn account it’s a direct message — or a Sales Nav InMail withinmail: true / a recipient_urn. For an email account (see Connect a mailbox) it sends an email. For a WhatsApp account it sends a WhatsApp message to phone_number. The params depend on the account’s platform — each field below is tagged (LinkedIn), (Email), (WhatsApp), or several.
This endpoint consumes 1 credit for a text message or email (2 credits with LinkedIn media). An InMail consumes 1 InMail credit from the account’s premium seat (separate from your API credits — see Balance). Ignore this if you’re on per-seat pricing: usage is unlimited.
media_link, media_file and media_path attach one file (priority: media_link > media_file > media_path). To send several attachments in the same message, use media_links and/or media_files (up to 10 files per message, combinable with the single-file params).An audio file (
.m4a, .mp3, .wav, .aac) is delivered as a native voice note, not a file to download. LinkedIn caps them at 1 minute.Request
string
required
Your API key for authentication.
string
required
The unique identifier of the account to use.
string
required
Must be
"send".object
required
Show params properties
Show params properties
string
required
(LinkedIn + Email + WhatsApp) The text content. Required for LinkedIn; for email, provide
message_text and/or html; for WhatsApp, message_text and/or an attachment.string
(InMail + Email) Subject line. On LinkedIn it applies to InMails only (ignored for standard messages, and alone it does not trigger an InMail); on email it’s the email subject.
string
(LinkedIn) URL of the recipient’s profile. Used for a standard message and an InMail (with
inmail: true). Required unless you pass recipient_urn.boolean
default:false
(LinkedIn) Set to
true to send an InMail (to a non-connection, via the premium seat) instead of a standard message. Consumes 1 InMail credit. Not needed when recipient_urn is a Sales Nav URN.string
(LinkedIn InMail) The lead’s
urn:li:fs_salesProfile:(...) from the lead search. Passing it sends an InMail. Use this or profile_url + inmail: true.string
(WhatsApp) Recipient number in international format, e.g.
+33612345678. Required for a WhatsApp account.string
(Email) Recipient email address. Required for an email account.
string
(Email) HTML body. Provide
html and/or message_text.string
(Email) Optional
Reply-To address.string
(Email) Message-ID to reply into an existing thread.
string | string[]
(Email) CC recipients (a comma-separated string or an array).
string | string[]
(Email) BCC recipients — hidden from the other recipients (e.g. to log a copy into a CRM).
object
(Email) Extra
X-… headers as a { name: value } map — e.g. { "X-Campaign-Id": "camp-42" } — to correlate replies/bounces back to your system.string[]
(Email) Optional pool of your own mailbox ids to route the send across (home-court + daily limits).
sent_from in the response tells you which was used.string
(LinkedIn + Email + WhatsApp) A publicly accessible URL to a file to attach.
object
string
(LinkedIn + Email) A server-side file path to a file to attach.
string[]
(LinkedIn + Email + WhatsApp) Publicly accessible URLs of files to attach — all delivered in the same message.
object[]
(LinkedIn + Email + WhatsApp) Base64-encoded files to attach — same shape as
media_file (data, filename).boolean
default:false
(LinkedIn + WhatsApp) Force the attached media to be sent as a voice note. Only needed when the filename carries no usable extension.
string
(WhatsApp) Reply to a message: its
id from Get Conversation.Response
boolean
Indicates whether the request was successful.
object
Details of the sent message. The shape differs between a LinkedIn standard message, an InMail, and an email.
Show standard message
Show standard message
Show InMail
Show InMail
Show email
Show email
string
"success" when the email was sent.object
Show properties
Show properties
string
The sent email’s Message-ID.
string
The mailbox address the email was sent from.
string
Sending mailbox provider bucket (
google / outlook / other).string
Recipient’s detected provider bucket.
boolean
true when sender and recipient are on the same provider.boolean
true when the mailbox is over its daily limit (the send still went out).object
sends_today, daily_limit, bounce_rate for the sending mailbox.object
{
"success": true,
"data": {
"status": "success",
"data": {
"entityUrn": "urn:li:msg_message:(urn:li:fsd_profile:ACoAA...,2-MTc4NTI3...)",
"conversation_id": "urn:li:msg_conversation:(urn:li:fsd_profile:ACoAA...,2-M2RkYWQ4...)",
"deliveredAt": 1785272227840
}
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": true,
"data": {
"status": "success",
"message": "InMail sent",
"recipient_urn": "urn:li:fs_salesProfile:(ACwAAA...,name, )",
"data": {
"value": {
"threadId": "2-OTQwMTJlODEt...",
"messageId": "2-MTc4NTIyODc1..."
}
}
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 1,
"timestamp": "2026-03-24T12:00:00Z"
}
}
{
"success": true,
"data": {
"status": "success",
"data": {
"message_id": "<...@gmail.com>",
"sent_from": "you@company.com",
"esp": "google",
"recipient_esp": "other",
"home_court": false,
"over_cap": false,
"mailbox_health": { "sends_today": 1, "daily_limit": 40, "bounce_rate": 0.0 }
}
},
"metadata": { "action": "send", "account_id": "your-email-account-id", "credits_consumed": 1, "timestamp": "2026-09-14T12:00:00Z" }
}
{
"success": true,
"data": {
"status": "success",
"data": {
"entityUrn": "3EB05338283099EC87F1F8",
"conversation_id": "33612345678@s.whatsapp.net",
"deliveredAt": 1790436783000,
"phone_number": "33612345678"
}
},
"metadata": { "action": "send", "account_id": "your-whatsapp-account-id", "credits_consumed": 1, "timestamp": "2026-09-26T15:33:03Z" }
}
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "message_text is required"
},
"metadata": {
"action": "send",
"account_id": "your-account-id",
"credits_consumed": 0,
"timestamp": "2026-03-24T12:00:00Z"
}
}
InMail
Reaches someone you are not connected to, through the account’s premium seat. Triggered byinmail: true or a recipient_urn — a subject alone never turns a message into an InMail. Prefer recipient_urn from the lead search when you have it.
{
"account_id": "your-account-id",
"action": "send",
"params": {
"recipient_urn": "urn:li:fs_salesProfile:(...)",
"subject": "Quick question",
"message_text": "Hi ..."
}
}
params above — to + subject + message_text (and/or html):
{
"account_id": "your-email-account-id",
"action": "send",
"params": { "to": "prospect@example.com", "subject": "Quick question", "message_text": "Hi there, ..." }
}
phone_number + message_text:
{
"account_id": "your-whatsapp-account-id",
"action": "send",
"params": { "phone_number": "+33612345678", "message_text": "Hi there, ..." }
}
CHANNEL_ERROR (422). Check numbers first with Check Numbers.Was this page helpful?