Skip to main content

Request

Use type as interactive and set interactive.type to button.

Field types

  • to: string (required)
  • type: string = interactive (required)
  • interactive: object (required)
  • interactive.type: string = button (required)
  • interactive.body: object (required)
  • interactive.body.text: string (required)
  • interactive.footer: object (optional)
  • interactive.footer.text: string (optional)
  • interactive.action: object (required)
  • interactive.action.buttons: array of objects (required, 1-3)
  • interactive.action.buttons[].type: string = reply (required)
  • interactive.action.buttons[].reply: object (required)
  • interactive.action.buttons[].reply.id: string (required)
  • interactive.action.buttons[].reply.title: string (required)

Field behavior and limits

  • interactive.body.text is required, max 1024 characters.
  • interactive.action.buttons supports 1 to 3 buttons.
  • interactive.action.buttons[].reply.id is required, max 256 characters, and should be unique per button.
  • interactive.action.buttons[].reply.title is required, max 20 characters, and should be unique per button.
  • interactive.footer.text is optional, max 60 characters.
  • interactive.header is optional and supports text, image, video, or document.
  • In this API, media headers use public link URLs (uploaded media id is not supported in this endpoint).
{
  "to": "+573001112233",
  "type": "interactive",
  "interactive": {
    "type": "button",
    "body": { "text": "Selecciona una opcion" },
    "footer": { "text": "Footer opcional" },
    "action": {
      "buttons": [
        { "type": "reply", "reply": { "id": "opt_1", "title": "Opcion 1" } },
        { "type": "reply", "reply": { "id": "opt_2", "title": "Opcion 2" } }
      ]
    }
  }
}