curl --request POST \
--url https://api.omni.z-api.io/v1/channels/{channelId}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"identifier": "5511999999999"
},
"content": {
"type": "INTERACTIVE_BUTTON",
"body": {
"message": "How would you rate our service?"
},
"attachments": [
{
"id": "1",
"title": "Excellent"
},
{
"id": "2",
"title": "Good"
},
{
"id": "3",
"title": "Average"
}
]
}
}
'{
"messageId": "01A0C92D0C957FE98B73C8BA0CACF741"
}{
"error": 401,
"message": "Unauthorized"
}{
"timestamp": "2026-10-22T14:00:00.123Z",
"code": "BUSINESS_RULE_VIOLATION",
"subCode": "CHANNEL_DISCONNECTED",
"message": "Channel is disconnected"
}Messages
Send text with buttons
Send text messages with quick reply buttons
POST
/
v1
/
channels
/
{channelId}
/
messages
curl --request POST \
--url https://api.omni.z-api.io/v1/channels/{channelId}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipient": {
"identifier": "5511999999999"
},
"content": {
"type": "INTERACTIVE_BUTTON",
"body": {
"message": "How would you rate our service?"
},
"attachments": [
{
"id": "1",
"title": "Excellent"
},
{
"id": "2",
"title": "Good"
},
{
"id": "3",
"title": "Average"
}
]
}
}
'{
"messageId": "01A0C92D0C957FE98B73C8BA0CACF741"
}{
"error": 401,
"message": "Unauthorized"
}{
"timestamp": "2026-10-22T14:00:00.123Z",
"code": "BUSINESS_RULE_VIOLATION",
"subCode": "CHANNEL_DISCONNECTED",
"message": "Channel is disconnected"
}Overview
Sends a text message with quick reply buttons. Thecontent.type field must be INTERACTIVE_BUTTON. The recipient can choose from the presented options.
Optionally, you can include an image or video with the message using the thumbnail and mimeType fields inside body.
Details of the Meta Cloud API rule in conversation window. See what each channel accepts for every channel.
If the channel is disconnected, the API refuses the send with
422 and subCode CHANNEL_DISCONNECTED, and the message is not sent. See Send errors.Authorizations
Secret Key generated in the Omni Z-API Security panel
Path Parameters
Channel ID
Example:
"YOUR_CHANNEL_ID"
Body
application/json
Response
Message sent successfully
Sent message ID — 32-character uppercase hexadecimal string