Send Interactive Buttons Message

  • Status code 200 means the message was accepted by WATI, not delivered yet.
  • To know if a message is failed, listen to the Session Message Failed webhook.
  • To know if a message is sent successfully, listen to Delivered/Read/Reply webhooks.

Permissions

For API access tokens and OIDC tokens, satisfy at least one of: api, wati_integration:write, conversations:write. API access tokens may satisfy a listed scope through the configured scope hierarchy; OIDC tokens are checked against their scope claims. Legacy JWT authentication does not use this scope check. Authentication, role, tenant, and applicable feature or plan checks still apply. For HTTP 403, check the credential type, applicable scopes, roles, and workspace access; 403 does not always mean a missing scope. Authentication/authorization failures do not guarantee a JSON response body.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Your WATI workspace (tenant) ID. This required path segment identifies the WATI account for legacy v1 and v2 API requests.

Query Params
string

WhatsApp Number with country code. Example, 85264318721. Optional when target is provided.

string

Polymorphic recipient identifier. Accepts a phone number, ContactId, or BSUID. When provided, takes precedence over whatsappNumber. BSUID resolution requires the wati_contact_bsuid_support Statsig gate to be enabled for the tenant.

string

Channel phone number with country code. Example, 85264318722

Body Params

InteractiveButtonsMessage

Header:
{
"type": "Text or Video or Image or Document",
"text": "header text for type Text",
"media": {
"url": "https://...", // (media obj should be not empty for non Text types)
"fileName": "MyDoc.pdf" } // (this field is only Document type)
}

Buttons:

  • allowed count: 1–3
  • Allowed characters length after mapping:
    • header text: 60
    • body text: 1024
    • footer text: 60
    • button's text: 20
string | null
header
object
buttons
array of objects | null
buttons
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
string
enum
Defaults to application/json-patch+json

Generated from available request content types

Allowed:
Responses

403

Authorization failed. Check the Permissions section for the credential-specific scope rules, and check roles and workspace access. The response may have no body; do not require a JSON error envelope.

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json