Skip to main content
POST
/
api
/
sendButtons
Send buttons (interactive message)
curl --request POST \
  --url https://{host}/api/sendButtons \
  --header 'Content-Type: application/json' \
  --header 'apikey: <api-key>' \
  --data '{
  "chatId": "5511999999999@c.us",
  "header": "How are you?",
  "headerImage": {
    "mimetype": "image/jpeg",
    "filename": "filename.jpg",
    "url": "https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg"
  },
  "body": "Tell us how are you please 🙏",
  "footer": "If you have any questions, please send it in the chat",
  "buttons": [
    {
      "type": "reply",
      "text": "I am good!"
    },
    {
      "type": "call",
      "text": "Call us",
      "phoneNumber": "+1234567890"
    },
    {
      "type": "copy",
      "text": "Copy code",
      "copyCode": "4321"
    },
    {
      "type": "url",
      "text": "How did you do that?",
      "url": "https://waha.devlike.pro"
    }
  ],
  "session": "my-session"
}'
{
  "success": true,
  "messageId": "3EB0XXXXXX"
}

Description

This endpoint allows you to send interactive messages with buttons organized in lists to individual contacts or groups on WhatsApp. Lists can contain multiple sections with various options each.

Body

{
  "sessionId": "my-session",
  "jid": "5511999999999@s.whatsapp.net",
  "list": {
    "title": "Options Menu",
    "description": "Select one of the options below",
    "button": "View Options",
    "sections": [
      {
        "title": "Products",
        "rows": [
          {
            "title": "Basic Plan",
            "description": "$29.90/month",
            "rowId": "plan_basic"
          }
        ]
      }
    ]
  }
}

Body Parameters

PropertyTypeRequiredDescription
sessionIdstring✅ YesAuthenticated session ID that will send the message
jidstring✅ YesRecipient identifier (WhatsApp JID). Format: 5511999999999@s.whatsapp.net for contacts or 120363XXXXX@g.us for groups
listobject✅ YesObject containing the button list information
list.titlestring✅ YesMessage title
list.descriptionstring❌ NoDescription or message body
list.buttonstring✅ YesButton text that opens the list (example: “View options”)
list.sectionsarray✅ YesArray of list sections
list.sections[].titlestring✅ YesSection title
list.sections[].rowsarray✅ YesArray of section rows (options)
list.sections[].rows[].titlestring✅ YesOption title
list.sections[].rows[].descriptionstring❌ NoOption description
list.sections[].rows[].rowIdstring✅ YesUnique option ID (used to identify the response)
{
  "success": true,
  "messageId": "3EB0XXXXXX"
}

Status Codes

  • 200 - Message with buttons sent successfully
  • 400 - Invalid parameters
  • 401 - Unauthorized session
  • 404 - Session not found

Usage Example

curl -X POST https://api.wappfy.com.br/api/sendButtons \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "my-session",
    "jid": "5511999999999@s.whatsapp.net",
    "list": {
      "title": "Options Menu",
      "description": "Select one of the options below:",
      "button": "View Menu",
      "sections": [
        {
          "title": "Products",
          "rows": [
            {
              "title": "Basic Plan",
              "description": "$29.90/month",
              "rowId": "plan_basic"
            },
            {
              "title": "Pro Plan",
              "description": "$59.90/month",
              "rowId": "plan_pro"
            }
          ]
        },
        {
          "title": "Support",
          "rows": [
            {
              "title": "Talk to agent",
              "rowId": "support_human"
            }
          ]
        }
      ]
    }
  }'

Authorizations

apikey
string
header
required

Your Wappfy API key (get it at dash.wappfy.com.br)

Body

application/json
chatId
string
required
Example:

"5511999999999@c.us"

header
string
required
Example:

"How are you?"

body
string
required
Example:

"Tell us how are you please 🙏"

Example:

"If you have any questions, please send it in the chat"

buttons
object[]
required
Example:
[
{ "type": "reply", "text": "I am good!" },
{
"type": "call",
"text": "Call us",
"phoneNumber": "+1234567890"
},
{
"type": "copy",
"text": "Copy code",
"copyCode": "4321"
},
{
"type": "url",
"text": "How did you do that?",
"url": "https://waha.devlike.pro"
}
]
session
string
required

Session name (instanceName)

Example:

"my-session"

headerImage
object
  • Option 1
  • Option 2
I