Send Messages

Send Poll

Sends a native WhatsApp poll. Contacts vote and the result arrives via webhook. Poll (type poll): use choices (list of options) and selectableCount (how many the user can select; >1 = multiple choice). WhatsApp accepts 12+ options. Votes arrive through the messages webhook as PollUpdateMessage with the vote field already decrypted (option text); in multiple choice it comes as the comma-separated list of current options, and a removed vote comes empty.

POSThttps://api.zapzapapi.com/api/v1/{instanceId}/send/poll

Authentication with the x-api-key and x-api-secret headers.

Parameters

NameTypeInRequiredDescription
numbertextbodyYesRecipient number
texttextbodyYesPoll question
choicesjsonbodyYesVoting options (array of strings)
selectableCounttextbodyNoVotes allowed per person (0 = unlimited)
digitandoselectbodyNoShows an automatic "typing..." indicator, proportional to the message length, before sending. On by default (humanizes and reduces block risk). Send false to turn it off and reply faster. The response remains synchronous.

Request example

curl

curl -X POST "https://api.zapzapapi.com/api/v1/{instanceId}/send/poll" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-api-secret: YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"number":"5511999999999","text":"Qual o melhor dia?","choices":["Segunda","Terça","Quarta"]}'

Node.js

const res = await fetch("https://api.zapzapapi.com/api/v1/{instanceId}/send/poll", {
  method: "POST",
  headers: {
    "x-api-key": "YOUR_API_KEY",
    "x-api-secret": "YOUR_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "number": "5511999999999",
    "text": "Qual o melhor dia?",
    "choices": [
      "Segunda",
      "Terça",
      "Quarta"
    ]
  }),
});
console.log(await res.json());

Python

import requests

res = requests.post(
    "https://api.zapzapapi.com/api/v1/{instanceId}/send/poll",
    headers={"x-api-key": "YOUR_API_KEY", "x-api-secret": "YOUR_API_SECRET"},
    json={"number":"5511999999999","text":"Qual o melhor dia?","choices":["Segunda","Terça","Quarta"]},
)
print(res.json())

Response example

JSON

{
  "messageType": "PollCreationMessage",
  "status": "Pending"
}

Values are illustrative; the fields follow the real response format.

See the full reference

Get your API keys

Create your account, connect a number in minutes and start using the API. R$15 per active number/month, with a welcome credit when you create the account, subject to the current campaign.