Skip to main content
POST
Send a poll
Ask a question with fixed answers — a delivery slot, a size, a preference.

Notes

  • question is capped at 255 characters.
  • options must contain 2 to 10 options, each up to 100 characters.
  • Options must all be different. WhatsApp counts votes by the option’s text, so two identical options make the result impossible to read. Duplicates are rejected with 400 invalid_request.
  • selectable_count is how many options one person may pick. It defaults to 1 and cannot exceed the number of options you sent.

Example

cURL
You cannot read the votes through this API. Polls render properly and people can vote, but there is no endpoint that returns the results and no webhook that reports them — you would have to look at the conversation in WhatsApp on the phone.If you need the answer back in your system, ask people to reply with a word instead: “Reply MORNING, AFTERNOON or EVENING.”

Authorizations

apikey
string
header
required

Your API key, sent in an apikey request header. Never in the URL, never as a Bearer token.

Body

application/json
instance_id
string<uuid>
required

Which of your connected numbers to send FROM. Copy it from your numbers screen in the portal, or from GET /v1/instances. It must belong to your account.

Example:

"3f9c1a2b-7d4e-4c81-9f0a-2b6d5e8c1a34"

to
string
required

The recipient, with country code and no leading zero — for example 919876543210. Spaces, dashes, brackets and a leading + are accepted and stripped; 6 to 15 digits must remain.

Example:

"919876543210"

question
string
required

The poll question. Up to 255 characters.

Required string length: 1 - 255
Example:

"Which delivery slot suits you?"

options
string[]
required

2 to 10 options, each 1 to 100 characters. They must all be different — WhatsApp counts votes by option text, so duplicates make the result unreadable and are rejected.

Required array length: 2 - 10 elements
Maximum string length: 100
Example:
selectable_count
integer
default:1

How many options one person may pick. Must be a whole number between 1 and the number of options you sent.

Required range: 1 <= x <= 10
quoted_message_id
string

Send this message as a reply, quoting an earlier one. Use the data.message_id returned by a previous send.

Maximum string length: 128
Example:

"3EB0C1D2F4A5B6C7D8E9"

quoted_from_me
boolean
default:false

Set true when the quoted message is one you sent from this number. Only valid together with quoted_message_id.

Response

Accepted for delivery.

success
boolean
data
object
request_id
string<uuid>