Skip to main content

Channels

WhatsApp API

Programmatic WhatsApp Cloud API — onboard WABAs, send all message types, manage templates and campaigns, and read delivery analytics.

note
The WhatsApp API wraps Meta's Cloud API behind your cm_ key. API keys need the matching scope (whatsapp:read, whatsapp:write, whatsapp:send). Connect a WhatsApp Business Account (WABA) via Embedded Signup (/onboarding/exchange) or manually, then send to numbers in 24-hour session windows — outside the window you must use an approved template.
POST/api/v1/whatsapp/onboarding/exchange Auth

Complete Embedded Signup — exchange the Meta token for a connected WABA

Request Body

codestring (Meta auth code)
phone_number_idstring
POST/api/v1/whatsapp/onboarding/manual Auth

Connect a WABA manually with system-user credentials

Request Body

waba_idstring
phone_number_idstring
access_tokenstring
GET/api/v1/whatsapp/accounts Auth

List connected WhatsApp Business Accounts

GET/api/v1/whatsapp/phone_numbers Auth

List connected phone numbers

POST/api/v1/whatsapp/phone_numbers/:phone_id/link-bot Auth

Link or unlink a bot to a phone number

Request Body

bot_idUUID | null
POST/api/v1/whatsapp/phone_numbers/:phone_id/autoreply Auth

Toggle phone-level AI auto-reply

Request Body

enabledboolean
POST/api/v1/whatsapp/messages Auth

Send a text message

Request Body

phone_number_idstring
tostring (E.164)
textstring
POST/api/v1/whatsapp/messages/template Auth

Send an approved template message (required outside the 24h window)

Request Body

phone_number_idstring
tostring
templatestring (name)
languagestring
componentsarray (variables)
POST/api/v1/whatsapp/messages/media Auth

Send image, document, audio, or video

Request Body

phone_number_idstring
tostring
typeimage | document | audio | video
media_idstring | link
POST/api/v1/whatsapp/messages/interactive Auth

Send interactive buttons or list messages

Request Body

phone_number_idstring
tostring
interactiveobject
POST/api/v1/whatsapp/messages/:message_id/read Auth

Mark an inbound message as read

POST/api/v1/whatsapp/media Auth

Upload media to Meta (max 100 MB) — returns a media_id

Request Body

filemultipart file upload
GET/api/v1/whatsapp/templates Auth

List message templates and approval status

POST/api/v1/whatsapp/templates Auth

Create a message template (submitted to Meta for review)

Request Body

namestring
categoryMARKETING | UTILITY | AUTHENTICATION
languagestring
componentsarray
POST/api/v1/whatsapp/templates/sync Auth

Re-sync template approval status from Meta

DELETE/api/v1/whatsapp/templates/:uuid Auth

Delete a template

GET/api/v1/whatsapp/campaigns Auth

List broadcast campaigns

POST/api/v1/whatsapp/campaigns Auth

Create a template broadcast campaign

Request Body

namestring
templatestring
phone_number_idstring
POST/api/v1/whatsapp/campaigns/:id/launch Auth

Launch a campaign to its recipients

GET/api/v1/whatsapp/analytics/funnel Auth

Sent → delivered → read → replied funnel

GET/api/v1/whatsapp/analytics/timeseries Auth

Message volume over time

Query Parameters

daysnumber (1-90)
GET/api/v1/whatsapp/analytics/costs Auth

Conversation-based cost breakdown

Was this page helpful?