Send a message with up to 3 interactive buttons (REPLY, URL, CALL or COPY) and an optional media header
Auth:Documentation Index
Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt
Use this file to discover all available pages before exploring further.
TokenAccount or TokenInstance • Rate-limit: Global (100/min) • Idempotent: no
REPLY (default, returns the ID when clicked), URL (opens a link), CALL (dials a number) and COPY (copies a code). The header can be text (headerText) or media (mediaUrl + mediaType). If mediaUrl is sent, mediaType is required and must be uppercase: IMAGE, VIDEO or DOCUMENT. When media is present, headerText is ignored (the media replaces the title).
REPLY button is used to reply to a specific message inside the conversation: when the customer taps, WhatsApp sends a reply quoting the original message with the text of the button (displayText), that is what appears in the chat. In the webhook/websocket, what reaches your application is the id of the clicked button, allowing you to identify the option without depending on the displayed text.
Classic case of a quick menu. Each button returns its id in the webhook when clicked.
mediaUrl is present, mediaType is required and must be uppercase (IMAGE, VIDEO, DOCUMENT). headerText is ignored in this case.
id carries distinct semantic values per type.
content returns the contentText you sent, and messageType is fixed at buttons. The button definitions themselves do not come back in the response, store the messageId to correlate the clicks that arrive via webhook.
REPLY button, the response arrives as a text message containing the id of the clicked button, capture that via webhook to chain the flow.$Instance_Name).TokenAccount or TokenInstance.application/json5511999999999) or JID (@s.whatsapp.net, @lid, @g.us, @newsletter).id (string, required), semantics vary by type: REPLY returns this ID; URL opens this URL; CALL dials this number; COPY copies this code.displayText (string, required), text visible on the button.type (string), REPLY (default), URL, CALL or COPY. Any other value returns 400 Button N: Type must be one of: REPLY, URL, CALL, COPY.mediaUrl is provided (the media replaces the header).mediaType becomes required.mediaUrl. Required if mediaUrl is present. Accepts only IMAGE, VIDEO or DOCUMENT (uppercase). Any other value returns 400 MediaType must be one of: IMAGE, VIDEO, DOCUMENT.true and replyTo points to a message originating from a group, the message is redirected to the original author’s private chat (keeping the quote).crm, bot-suporte, n8n). Saved on the message record and propagated to webhooks.delay is in seconds (not milliseconds).400 Maximum of 3 buttons allowed.mediaUrl is sent, headerText is silently ignored.mediaType is normalized to uppercase internally, always send IMAGE, VIDEO or DOCUMENT.URL buttons, make sure the link starts with https:// to avoid being blocked by the client.CALL buttons, use the international format (+5511...).| HTTP | Internal status | Message |
|---|---|---|
| 400 | — | Instance name is required |
| 400 | — | Invalid request body: <detail> |
| 400 | — | Number is required |
| 400 | — | ContentText is required |
| 400 | — | At least one button is required |
| 400 | — | Maximum of 3 buttons allowed |
| 400 | — | MediaType is required when MediaURL is provided |
| 400 | — | MediaType must be one of: IMAGE, VIDEO, DOCUMENT |
| 400 | — | Button N: ID is required |
| 400 | — | Button N: DisplayText is required |
| 400 | — | Button N: Type must be one of: REPLY, URL, CALL, COPY |
| 400 | invalid_number | Invalid phone number format: <detail> |
| 400 | invalid_request | (reason for the invalid request detected by the service) |
| 404 | — | Instance not found |
| 500 | send_failed | Failed to send buttons message: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |