This endpoint offers a unified interface for sending four main types of interactive messages:
Tracking fields support: This endpoint also supports track_source and track_id documented in the “Send Message” tag.
All requests follow this base structure:
{
"number": "5511999999999",
"type": "button|list|poll|carousel",
"text": "Main message text",
"choices": ["options based on the chosen type"],
"footerText": "Footer text (optional for buttons and lists)",
"listButton": "Button text (for lists)",
"selectableCount": "Number of selectable options (polls only)"
}
Creates interactive buttons with different action functionalities.
footerText: Optional text displayed below the main messagechoices: Array of options that will be converted into buttonsEach button can be configured using | (pipe) or \n (newline) as separators:
Reply Button:
"text|id" or"text\nid" or"text" (ID will be equal to the text)Copy Button:
"text|copy:code" or"text\ncopy:code"Call Button:
"text|call:+5511999999999" or"text\ncall:+5511999999999"URL Button:
"text|https://example.com" or"text|url:https://example.com"To add an image to the buttons, use the imageButton field in the payload:
{
"number": "5511999999999",
"type": "button",
"text": "Choose a product:",
"imageButton": "[https://example.com/product1.jpg](https://example.com/product1.jpg)",
"choices": [
"Product A|prod_a",
"More Info|[https://example.com/product-a](https://example.com/product-a)",
"Product B|prod_b",
"Call|call:+5511999999999"
],
"footerText": "Featured products"
}
Support: The
imageButtonfield accepts URLs or base64 images.
{
"number": "5511999999999",
"type": "button",
"text": "How can we help?",
"choices": [
"Tech Support|support",
"Place Order|order",
"Our Website|[https://example.com](https://example.com)",
"Contact Us|call:+5511999999999"
],
"footerText": "Choose one of the options below"
}
Important: When combining reply buttons with other types (call, url, copy) in the same message, the warning: “This message cannot be displayed on WhatsApp Web. Open WhatsApp on your phone to view it.” will be displayed.
Creates menus organized in sections with selectable items.
listButton: Text of the button that opens the listfooterText: Optional footer textchoices: Array with sections and list items"[Section Title]": Starts a new section"text|id|description": List item with:
{
"number": "5511999999999",
"type": "list",
"text": "Product Catalog",
"choices": [
"[Electronics]",
"Smartphones|phones|Latest releases",
"Notebooks|notes|2024 Models",
"[Accessories]",
"Headphones|phones|Bluetooth and wired",
"Cases|cases|Protection for your device"
],
"listButton": "View Catalog",
"footerText": "Prices subject to change"
}
Creates interactive voting polls.
selectableCount: Number of options that can be selected (default: 1)choices: Simple array with voting options{
"number": "5511999999999",
"type": "poll",
"text": "What time do you prefer for the appointment?",
"choices": [
"Morning (8am-12pm)",
"Afternoon (1pm-5pm)",
"Evening (6pm-10pm)"
],
"selectableCount": 1
}
Creates a carousel of cards with images and interactive buttons.
choices: Array with carousel elements in the following order:
[Card Text]: Card text inside brackets{URL or base64 of image}: Image inside curly braces"text|copy:code" for copy button"text|https://url" for link button"text|call:+number" for call button{
"number": "5511999999999",
"type": "carousel",
"text": "Meet our products",
"choices": [
"[Smartphone XYZ\nThe most advanced smartphone in the line]",
"{[https://example.com/product1.jpg](https://example.com/product1.jpg)}",
"Copy Code|copy:PROD123",
"View on Site|[https://example.com/xyz](https://example.com/xyz)",
"Contact Us|call:+5511999999999",
"[Notebook ABC\nThe ideal notebook for professionals]",
"{[https://example.com/product2.jpg](https://example.com/product2.jpg)}",
"Copy Code|copy:NOTE456",
"Buy Online|[https://example.com/abc](https://example.com/abc)",
"Support|call:+5511988888888"
]
}
Note: We created another endpoint for carousel:
/send/carousel, it works the same way but with a different payload format. See which one is easier for you.
Interactive button and list features may be discontinued at any time without prior notice. We are not responsible for any changes or unavailability of these features.
Considering the dynamic nature of these resources, our endpoint was designed to facilitate migration between different message types (buttons, lists, and polls).
We recommend creating your flows flexibly, prepared to switch between different types.
In case of feature discontinuation, you can easily migrate to another message type by simply changing the “type” field in the payload, maintaining the same choices structure.
Recipient number (international format)
"5511999999999"
Menu type (button, list, poll, carousel)
button, list, poll, carousel "list"
Main text (accepts placeholders)
"Choose an option:"
List of options. Use [Title] for sections in lists
[
"[Electronics]",
"Smartphones|phones|Latest releases",
"Notebooks|notes|2024 Models",
"[Accessories]",
"Headphones|fones|Bluetooth and wired",
"Cases|cases|Protection for your device"
]Footer text (optional)
"Service menu"
Main button text
"View options"
Maximum number of selectable options (for polls)
1
Image URL for buttons (recommended for type: button)
"https://example.com/button-image.jpg"
ID of the message to reply to
"3EB0538DA65A59F6D8A251"
Numbers to mention (comma separated)
"5511999999999,5511888888888"
Mark chat as read after sending
true
Mark last received messages as read
true
Delay in milliseconds before sending, during the delay 'Typing...' will appear
1000
Message tracking source
"chatwoot"
ID for message tracking (accepts duplicate values)
"msg_123456789"
Menu sent successfully
Representa uma mensagem trocada no sistema
ID único interno da mensagem (formato r + 7 caracteres hex aleatórios)
ID original da mensagem no provedor
ID da conversa relacionada
Indica se a mensagem foi enviada pelo usuário
Indica se é uma mensagem de grupo
Tipo de conteúdo da mensagem
text, image, video, document, audio, location, button, list, reaction Timestamp original da mensagem em milissegundos
Histórico de edições da mensagem
ID da mensagem citada/respondida
ID da mensagem reagida
ID do remetente da mensagem
Nome exibido do remetente
Plataforma de origem da mensagem
ios, web, android Status do ciclo de vida da mensagem
pending, sent, delivered, read, failed, deleted Texto original da mensagem
Dados de votação de enquete e listas
ID do botão ou item de lista selecionado
Conversão de opções de da mensagem, lista, enquete e botões
URL para download de arquivos de mídia
Conteúdo completo da mensagem em formato JSON
Dono da mensagem
Origem do rastreamento da mensagem
ID para rastreamento da mensagem (aceita valores duplicados)
Data de criação no sistema (formato SQLite YYYY-MM-DD HH:MM:SS.FFF)
Data da última atualização (formato SQLite YYYY-MM-DD HH:MM:SS.FFF)
Metadados do processamento por IA