Messages
Send Poll
Creates a poll with single or multiple-choice options
POST
Send Poll
Auth:
Error envelope:
TokenAccount or TokenInstance • Rate-limit: Global (100/min) • Idempotent: no
Description
Sends a poll to a 1-to-1 contact, group (@g.us) or newsletter (@newsletter). Supports 2 to 12 options (WhatsApp limit). The maxAnswer field controls how many options the user can select: 1 (default) = single choice; > 1 = multiple choice. If maxAnswer is omitted, invalid (< 1) or larger than len(options), the server normalizes it automatically to 1 or to the total number of options, respectively. Supports delay, replyTo and replyPrivate.
Examples
Simple poll (single choice)
Creates a poll with three options (9am, 2pm, 4pm) and maxAnswer implicitly set to 1, the respondent can only pick one.
Multiple-choice poll
maxAnswer: 3 lets the respondent pick up to three options.
Poll as a reply to a message
Quotes an existing message viareplyTo. The original message must belong to the same instance.
Success response
The returnedcontent pre-formats the question alongside the numbered options (1. ... 2. ...), it’s the textual representation used to index the poll in the history. The messageId is what you need to keep around to correlate votes received via webhook.
200 OK
Participant responses don’t arrive synchronously in this response, they flow as
poll-update events on the configured webhook/WebSocket, referencing the poll’s messageId.Path parameters
Instance name (e.g.,
$Instance_Name).Headers
TokenAccount or TokenInstance.application/jsonRequest body
Destination: phone (
5511999999999) or JID (@s.whatsapp.net, @lid, @g.us, @newsletter).Question shown at the top of the poll.
List of options. Minimum 2, maximum 12 (WhatsApp limit). Duplicate strings are accepted but not recommended.
Maximum number of options the respondent can select.
1 = single choice; > 1 = multiple choice. Values < 1 are normalized to 1; values larger than len(options) are clamped to the list size.Time in seconds to wait before sending. During the interval, the server shows the “typing…” indicator to the recipient and triggers “paused” before the actual send.
ID of the message to reply to. The original message must belong to the same instance and be saved in the database.
When
true and replyTo points to a message originating from a group, the poll is redirected to the private chat of the original author (keeping the quote).Origin identifier for traceability (e.g.,
crm, support-bot, n8n). Saved on the message record and propagated to webhooks.Notes
delayis in seconds (not milliseconds).- WhatsApp accepts 2 to 12 options per poll. Anything more is truncated by the recipient’s client.
maxAnsweris normalized by the server:< 1becomes1, and any value larger thanlen(options)falls back tolen(options).- Votes don’t come back in this call, subscribe to webhook/WebSocket events to receive
poll-updatewhen someone votes. - On newsletters (
@newsletter), polls may have limited behavior depending on channel permissions.
Errors
| HTTP | Internal status | Message |
|---|---|---|
| 400 | , | Instance name is required |
| 400 | , | Invalid request body: <detail> |
| 400 | , | Number is required |
| 400 | , | Question is required |
| 400 | , | At least 2 options are required |
| 400 | invalid_number | Invalid phone number format: <detail> |
| 404 | , | Instance not found |
| 500 | send_failed | Failed to send poll: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |