Pular para o conteúdo principal
POST
/
api
/
message
/
poll
/
:instance
Enviar Enquete
curl --request POST \
  --url https://api.example.com/api/message/poll/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "number": "<string>",
  "question": "<string>",
  "options": [
    "<string>"
  ],
  "maxAnswer": 123,
  "delay": 123,
  "replyTo": "<string>",
  "replyPrivate": true,
  "source": "<string>"
}
'

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.

Auth: TokenAccount ou TokenInstanceRate-limit: Global (100/min) • Idempotente: não

Descrição

Envia uma enquete a um contato 1-a-1, grupo (@g.us) ou canal (@newsletter). Suporta de 2 a 12 opções (limite do WhatsApp). O campo maxAnswer controla quantas opções o usuário pode marcar: 1 (padrão) = escolha única; > 1 = múltipla escolha. Se maxAnswer for omitido, inválido (< 1) ou maior que len(options), o servidor normaliza automaticamente para 1 ou para o total de opções, respectivamente. Suporta delay, replyTo e replyPrivate.

Exemplos

Enquete simples (escolha única)

Cria uma enquete com três opções (09h, 14h, 16h) e maxAnswer implícito em 1, o respondente só pode marcar uma alternativa.
curl -X POST "https://ryzeapi.cloud/api/message/poll/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":   "5511999999999",
    "question": "Qual horário você prefere para a reunião?",
    "options":  ["09h", "14h", "16h"]
  }'

Enquete de múltipla escolha

maxAnswer: 3 permite que o respondente marque até três opções.
curl -X POST "https://ryzeapi.cloud/api/message/poll/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":    "120363406289005073@g.us",
    "question":  "Quais linguagens você usa no dia a dia?",
    "options":   ["Go", "Python", "JavaScript", "TypeScript", "Rust", "Java"],
    "maxAnswer": 3
  }'

Enquete como resposta a uma mensagem

Cita uma mensagem existente via replyTo. A mensagem original precisa pertencer à mesma instância.
curl -X POST "https://ryzeapi.cloud/api/message/poll/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":   "5511999999999",
    "question": "Confirma o evento na data X?",
    "options":  ["Sim, confirmo", "Não posso", "Talvez"],
    "replyTo":  "3EB08FCF27E532F1B0F5",
    "delay":    2
  }'

Resposta de sucesso

O content retornado pré-formata a pergunta junto das opções numeradas (1. ... 2. ...), é a representação textual usada para indexar a enquete no histórico. O messageId é o que você precisa guardar para correlacionar votos via webhook.
200 OK
{
  "success": true,
  "message": "Poll sent successfully",
  "status":  "sent",
  "data": {
    "messageId":   "3EB08FCF27E532F1D3D3",
    "direction":   "sent",
    "messageType": "poll",
    "content":     "Qual horário você prefere para a reunião?\n\nOpções:\n1. 14:00\n2. 15:00\n3. 16:00\n",
    "source":      "api",
    "timestamp":   "2026-04-30T14:30:00Z",
    "chat": {
      "jid":     "5511999999999@s.whatsapp.net",
      "isGroup": false
    },
    "sender": {
      "jid":      "5511777777777@s.whatsapp.net",
      "instance": "minha-instancia"
    }
  }
}
Respostas dos participantes não chegam síncronamente nesta resposta, elas trafegam como eventos poll-update no webhook/WebSocket configurado, referenciando o messageId da enquete.

Parâmetros de rota

instance
string
obrigatório
Nome da instância (ex.: $Instance_Name).

Headers

token
string
obrigatório
TokenAccount ou TokenInstance.
Content-Type
string
obrigatório
application/json

Request body

number
string
obrigatório
Destino: telefone (5511999999999) ou JID (@s.whatsapp.net, @lid, @g.us, @newsletter).
question
string
obrigatório
Pergunta exibida no topo da enquete.
options
string[]
obrigatório
Lista de opções. Mínimo 2, máximo 12 (limite do WhatsApp). Strings duplicadas são aceitas, mas não recomendadas.
maxAnswer
int
padrão:"1"
Número máximo de opções que o respondente pode marcar. 1 = escolha única; > 1 = múltipla escolha. Valores < 1 são normalizados para 1; valores maiores que len(options) são reduzidos ao tamanho da lista.
delay
int
padrão:"0"
Tempo em segundos para aguardar antes de enviar. Durante o intervalo, o servidor envia o indicador de “digitando…” ao destinatário e dispara o “paused” antes do envio real.
replyTo
string
ID da mensagem a ser citada (reply). A mensagem original precisa pertencer à mesma instância e ter sido salva no banco.
replyPrivate
boolean
padrão:"false"
Quando true e replyTo aponta para uma mensagem originária de um grupo, a enquete é redirecionada para o privado do autor original (mantendo a citação).
source
string
padrão:"api"
Identificador de origem para rastreabilidade (ex.: crm, bot-suporte, n8n). Salvo no registro da mensagem e propagado para webhooks.

Notas

  • delay é em segundos (não milissegundos).
  • O WhatsApp aceita de 2 a 12 opções por enquete. Mais que isso é truncado pelo cliente do destinatário.
  • maxAnswer é normalizado pelo servidor: < 1 vira 1, e qualquer valor maior que len(options) cai para len(options).
  • Os votos não voltam nesta chamada, assine os eventos do webhook/WebSocket para receber poll-update quando alguém responder.
  • Em canais (@newsletter), enquetes podem ter comportamento limitado dependendo das permissões do canal.

Erros

HTTPStatus internoMensagem
400Instance name is required
400Invalid request body: <detalhe>
400Number is required
400Question is required
400At least 2 options are required
400invalid_numberInvalid phone number format: <detalhe>
404Instance not found
500send_failedFailed to send poll: <reason>
503disconnectedInstance is not connected to WhatsApp
Envelope de erro:
{
  "success": false,
  "error": { "message": "At least 2 options are required" }
}