client.messages.send(params). The params shape is a discriminated — common fields (to, optional replyTo, optional bizOpaqueCallbackData) plus exactly one content key.
Recipient format
to is a WhatsApp ID — the recipient’s phone number in international format. Either +15551234567 or 15551234567 is accepted.
Text
TextInput
TextInput
Media
Images, videos, audio, and documents all share the same shape. Send by referencing an uploadedid or a public link:
MediaInput
MediaInput
Content types
Location
Contact cards
Send one or more vCard-style contact cards:Reactions
React to an incoming message by ID. Use an empty string foremoji to remove a reaction.
Replies
Thread a reply by settingreplyTo:
Interactive and templates
Rich messages — buttons, lists, product carousels, flows, and pre-approved templates — have their own pages:- Interactive messages — buttons, lists, flows, product messages
- Templates — template builder, parameters, carousels
Mark as read
Clear unread state on the recipient’s side:Send result
Everysend() returns a — record messageId if you plan to reply to, react to, or track status for that message.
Abort signal
Every method accepts an optionalRequestOptions with an AbortSignal: