Send a WhatsApp message
Send a message from a connected WhatsApp number. text, media, interactive_buttons, interactive_list, location, and contacts are SESSION messages - deliverable only inside the 24-hour customer window (i.e. after the user messaged you). Outside it, only template (an approved HSM) is deliverable. context_message_id (any type except contacts) threads the message as a reply under a prior WhatsApp message id, rendering as a quoted reply in the customer’s app. Requires social:write.
Authorizations
API key from Developer dashboard (Bearer token).
Body
A connected WhatsApp number (social account id).
Recipient phone in E.164 (e.g. +14155551234).
text, media, template, interactive_buttons, interactive_list, location, contacts, reaction A prior WhatsApp message id (wamid) to thread this message as a reply under, or (for type=reaction) the message being reacted to. Renders as a quoted reply in the customer's app.
Body for type=text, or the prompt text for type=interactive_buttons/interactive_list.
For type=media.
For type=template.
For type=interactive_buttons. Up to 3 reply buttons; the customer's tap arrives as an inbound message you already receive on your webhook.
3For type=interactive_list. Label on the button that opens the list, max 20 characters.
For type=interactive_list. Up to 10 rows total across all sections.
For type=location.
For type=contacts. WhatsApp's raw contact-card array - see Meta's WhatsApp Cloud API contacts message reference for the full object shape (name, phones, emails, etc.).
For type=reaction. The emoji to react with, or an empty string to remove a previously-sent reaction. Requires context_message_id.
Response
Sent
The response is of type object.

