Skip to main content
POST
Send Message or Email

Overview

Sends a message from a connected account. For a LinkedIn account it’s a direct message — or a Sales Nav InMail with inmail: 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. For an iMessage line it sends an iMessage to phone_number (SMS when the contact has no iMessage). The params depend on the account’s platform — each field below is tagged (LinkedIn), (Email), (WhatsApp), (iMessage), 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

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.
object

React, edit or delete a message

Same endpoint, classic LinkedIn messages only, 1 credit each. message_id is the message URN: entity_urn from Get Conversation or from a webhook event (a bare 2-… id works with conversation_id). Only the account’s own messages can be edited or deleted, within 60 minutes of sending them. iMessage: react_message works too, with the message_id of the message: emoji is a tapback (love, like, dislike, laugh, emphasize, question) or any emoji. Not in group chats. action: "typing" with conversation_id (and seconds, 60 max) shows the typing indicator, in a conversation active in the last 5 minutes.

InMail

Reaches someone you are not connected to, through the account’s premium seat. Triggered by inmail: 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.
A profile that cannot be InMailed is rejected before any credit is spent. Credits come from the seat — see Balance.

Recruiter InMail

Set recruiter: true. New InMail — recipient_urn (the candidate’s profile_urn from Search People Recruiter), subject and message_text. Optional:
  • project_urn — the thread is also filed in that project
  • signature — replaces the seat’s own signature, appended by default
Reply — conversation_id (from List Inbox) and message_text. No subject. The candidate is read off the thread; pass recipient_urn to save that lookup.
Returns the conversation_id of the thread. Consumes 1 credit plus 1 Recruiter InMail credit when the candidate is not free to InMail (see Check InMail).

Email

Sending from an email mailbox uses the same params above — to + subject + message_text (and/or html):

WhatsApp

Sending from a WhatsApp account uses phone_number + message_text:
A number without WhatsApp returns CHANNEL_ERROR (422). Check numbers first with Check Numbers.