Skip to main content
POST

Authorizations

token
string
header
required

Body

application/json
number
string
required

ID of the chat the message will be sent to. Can be a phone number in international format, a group ID (@g.us), a user ID (with @s.whatsapp.net or @lid) or a channel/newsletter ID (@newsletter).

Example:

"5511999999999"

text
string
required

Message text. To reply to a poll, list, or button, use a selection starting with > together with replyid. Accepts placeholders in regular text messages.

Example:

"Hello {{name}}! How can I help?"

Enables/disables link previews. If true, automatically looks for a link in the text to generate a preview.

Behavior:

  • If only linkPreview=true: generates an automatic preview of the first link found in the text
  • If custom fields are provided (title, description, image): uses the provided values
  • If custom fields are partial: combines them with automatic link data as fallback
  • Title or description containing only whitespace: the preview is generated without that field, without fetching from the link
Example:

true

Sets a custom title for the link preview. Empty uses the link's title; with only a space (" "), the preview has no title.

Example:

"Custom Title"

Sets a custom description for the link preview. Empty uses the link's description; with only a space (" "), the preview has no description.

Example:

"Custom link description"

URL or Base64 of the image to use in the link preview

Example:

"https://exemplo.com/imagem.jpg"

If true, generates a large preview with image upload. If false, generates a small preview without upload

Example:

true

replyid
string

Original message ID. With text starting with >, generates the native poll, list or button reply when the original type is supported.

Example:

"3EB0538DA65A59F6D8A251"

mentions
string

Numbers to mention (comma separated)

Example:

"5511999999999,5511888888888"

readchat
boolean

Marks chat as read after sending

Example:

true

readmessages
boolean

Marks latest received messages as read

Example:

true

delay
integer

Delay in milliseconds before sending; during delay 'Typing...' will appear

Example:

1000

forward
boolean

Marks the message as forwarded on WhatsApp

Example:

true

track_source
string

Message tracking source

Example:

"chatwoot"

track_id
string

ID for message tracking (accepts duplicate values)

Example:

"msg_123456789"

async
boolean

If true, sends the message asynchronously via the internal queue. Useful for high message volume.

Example:

false

Response

Message sent successfully

Represents a message exchanged in the system

id
string<uuid>

Internal unique message ID (format r + 7 random hex characters)

messageid
string

Original message ID at the provider

chatid
string

Related conversation ID

sender
string

Message sender ID

senderName
string

Sender's display name

isGroup
boolean
default:false

Indicates whether it is a group message

fromMe
boolean
default:false

Indicates whether the message was sent by the user

messageType
string

Message content type

source
string

Message source platform

messageTimestamp
integer
default:0

Original message timestamp in milliseconds

status
string

Message lifecycle status. Common examples: Queued, Canceled, Failed, Sent, Delivered, Read. In group messages, it follows the most advanced participant: Delivered when at least one received it, Read when at least one read it, and Played when at least one listened to it.

text
string
default:""

Original message text

quoted
string
default:""

ID of the quoted/replied message

edited
string
default:""

Message edit history

reaction
string
default:""

ID of the reacted message

vote
string
default:""

Poll and list voting data

convertOptions
string
default:""

Conversion of message options, list, poll and buttons

buttonOrListid
string
default:""

ID of the selected button or list item

owner
string
default:""

Message owner

error
string
default:""

Error message if sending failed

content

Raw message content (serialized JSON or text)

wasSentByApi
boolean

Indicates whether the message was sent via API

pinned
boolean

Message pinned in the conversation (pin and unpin also arrive in messages_update, types Pinned and Unpinned)

sendFunction
string

Function used to send the message (when sent via API)

sendPayload

Payload used in the send when available. Base64 media data is omitted.

fileURL
string

Message file URL or reference

callPeer
object

Known contact associated with a call, when available in messageType: call.

send_folder_id
string

Folder associated with the send (when applicable)

track_source
string

Tracking source

track_id
string

Tracking ID (may repeat)

ai_metadata
object

Record of an AI round. The full one (request to the model, response, and outcome) is stored once, on the contact's last message that the round replied to, even when nothing went out (error, discarded response). Each message sent by the AI carries only agent_id and turn (the id of that contact message).

sender_pn
string | null

Sender's resolved PN JID (when available)

sender_lid
string | null

Sender's original LID (when available)

sender_image_preview_url
string<uri>

Temporary preview URL of the sender, when known. Hydration in this version fills in messages received in groups; the field may be omitted. It does not trigger a photo query to WhatsApp during listing.

response
object