Skip to main content
POST
Send Poll
Auth: TokenAccount or TokenInstanceRate-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 via replyTo. The original message must belong to the same instance.

Success response

The returned content 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

string
required
Instance name (e.g., $Instance_Name).

Headers

string
required
TokenAccount or TokenInstance.
string
required
application/json

Request body

string
required
Destination: phone (5511999999999) or JID (@s.whatsapp.net, @lid, @g.us, @newsletter).
string
required
Question shown at the top of the poll.
string[]
required
List of options. Minimum 2, maximum 12 (WhatsApp limit). Duplicate strings are accepted but not recommended.
int
default:"1"
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.
int
default:"0"
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.
string
ID of the message to reply to. The original message must belong to the same instance and be saved in the database.
boolean
default:"false"
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).
string
default:"api"
Origin identifier for traceability (e.g., crm, support-bot, n8n). Saved on the message record and propagated to webhooks.

Notes

  • delay is in seconds (not milliseconds).
  • WhatsApp accepts 2 to 12 options per poll. Anything more is truncated by the recipient’s client.
  • maxAnswer is normalized by the server: < 1 becomes 1, and any value larger than len(options) falls back to len(options).
  • Votes don’t come back in this call, subscribe to webhook/WebSocket events to receive poll-update when someone votes.
  • On newsletters (@newsletter), polls may have limited behavior depending on channel permissions.

Errors

Error envelope: