Skip to main content
POST
Send WhatsApp message
Requires a connected workspace number, an active paid platform plan and whatsapp API key scope. Owner, admin, developer and member roles may send.

Request

string
required
Bearer followed by your 60db API key.
string
required
Unique message key, 8–128 characters using letters, digits, dots, colons, underscores or hyphens. The broadcast: prefix is reserved for internal campaign messages. Keep the same key and identical payload when retrying an uncertain API response. Reusing a key with a different payload returns 409 IDEMPOTENCY_CONFLICT.
string
required
The 60db UUID from GET /whatsapp/numbers, rather than the provider’s phone number ID.
string
required
Recipient’s phone number including country code, 7–15 digits without +, spaces or punctuation.
string
required
text, template, image, video, audio, document or interactive. Supply exactly the matching content object.
object
For text messages: { "body": "Hello", "preview_url": false }. Body length is 1–4,096 characters.
object
For approved templates: name, language.code and optional Meta-format components. Sync the template to 60db first.
object
Optional { "message_id": "wamid..." } to reply to a provider message.

Text reply

Replace the example UUID and phone number with your connected number and consenting recipient. Text requires an inbound message within the preceding 24 hours.

Approved template

Other message types

First upload media to the sending number, then use its returned provider_id, for example "image": {"id": "123456789", "caption": "Order photo"}. Media IDs must belong to the same number and workspace and remain unexpired. This also applies to template and interactive media headers. Arbitrary media URLs are not accepted. Video has the same fields; audio accepts an ID and optional voice: true for mono Ogg/Opus voice notes; documents can also include a filename. Interactive messages accept button or list, a body, action and optional header/footer in Meta format.

Response and delivery

202 Accepted means the message is durably queued, not delivered. A replay may return 200 OK with the existing message once it has left the queue.
Poll GET /whatsapp/messages/{id} or subscribe to message status events.

Errors