Enviar lista de opções
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"message": "<string>",
"optionList": {
"title": "<string>",
"buttonLabel": "<string>",
"options": [
{
"title": "<string>",
"description": "<string>",
"id": "<string>"
}
]
}
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list"
payload = {
"phone": "<string>",
"message": "<string>",
"optionList": {
"title": "<string>",
"buttonLabel": "<string>",
"options": [
{
"title": "<string>",
"description": "<string>",
"id": "<string>"
}
]
}
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
message: '<string>',
optionList: {
title: '<string>',
buttonLabel: '<string>',
options: [{title: '<string>', description: '<string>', id: '<string>'}]
}
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone' => '<string>',
'message' => '<string>',
'optionList' => [
'title' => '<string>',
'buttonLabel' => '<string>',
'options' => [
[
'title' => '<string>',
'description' => '<string>',
'id' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"optionList\": {\n \"title\": \"<string>\",\n \"buttonLabel\": \"<string>\",\n \"options\": [\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"optionList\": {\n \"title\": \"<string>\",\n \"buttonLabel\": \"<string>\",\n \"options\": [\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"optionList\": {\n \"title\": \"<string>\",\n \"buttonLabel\": \"<string>\",\n \"options\": [\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_bodyMessages
Enviar lista de opções
Envia uma mensagem com lista de opções selecionáveis
POST
/
instances
/
{instanceId}
/
token
/
{token}
/
send-option-list
Enviar lista de opções
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"message": "<string>",
"optionList": {
"title": "<string>",
"buttonLabel": "<string>",
"options": [
{
"title": "<string>",
"description": "<string>",
"id": "<string>"
}
]
}
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list"
payload = {
"phone": "<string>",
"message": "<string>",
"optionList": {
"title": "<string>",
"buttonLabel": "<string>",
"options": [
{
"title": "<string>",
"description": "<string>",
"id": "<string>"
}
]
}
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
message: '<string>',
optionList: {
title: '<string>',
buttonLabel: '<string>',
options: [{title: '<string>', description: '<string>', id: '<string>'}]
}
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone' => '<string>',
'message' => '<string>',
'optionList' => [
'title' => '<string>',
'buttonLabel' => '<string>',
'options' => [
[
'title' => '<string>',
'description' => '<string>',
'id' => '<string>'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"optionList\": {\n \"title\": \"<string>\",\n \"buttonLabel\": \"<string>\",\n \"options\": [\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": \"<string>\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"optionList\": {\n \"title\": \"<string>\",\n \"buttonLabel\": \"<string>\",\n \"options\": [\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/send-option-list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"message\": \"<string>\",\n \"optionList\": {\n \"title\": \"<string>\",\n \"buttonLabel\": \"<string>\",\n \"options\": [\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"id\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_bodyConceituação
Neste método você poderá enviar mensagens de texto com uma lista de opções, onde o usuário poderá selecionar uma das opções enviadas.A funcionalidade de lista de opções não funciona mais em grupos.
Exemplo no WhatsApp
Atributos
Header
string
obrigatório
ID da sua instância. Disponível no painel Z-API em Instâncias.
string
obrigatório
Token da sua instância Z-API.
Obrigatórios
string
obrigatório
Telefone (ou ID do grupo para casos de envio para grupos) do destinatário no formato DDI DDD NÚMERO. Ex: 551199999999
string
obrigatório
Texto a ser enviado
object
obrigatório
Opcionais
number
Delay adicionado na mensagem. Você pode decidir entre um range de 1 a 15 sec, significa quantos segundos ele vai esperar para enviar a próxima mensagem. (Ex.: “delayMessage”: 5). O delay default caso não seja informado é de 1 a 3 sec
Request Body
{
"phone": "5511999999999",
"message": "Selecione a melhor opção:",
"optionList": {
"title": "Opções disponíveis",
"buttonLabel": "Abrir lista de opções",
"options": [
{
"id": "1",
"description": "Z-API Asas para sua imaginação",
"title": "Z-API"
},
{
"id": "2",
"description": "Não funcionam",
"title": "Outros"
}
]
}
}
Response
200
{
"zaapId": "3999984263738042930CD6ECDE9VDWSA",
"messageId": "D241XXXX732339502B68",
"id": "D241XXXX732339502B68"
}