Send a native WhatsApp poll
POST/api/sessions/:sessionId/messages/send-poll
Send a native WhatsApp poll
Request
Responses
- 201
- 400
- 401
- 403
- 404
- 409
- 422
- 501
- 503
Poll sent
Baileys rejects a phone number reported as unregistered. The request was rejected before anything was sent. Among the causes: the recipient could not be addressed — WhatsApp reports no deliverable id for that chatId, which is how it says the number is not on WhatsApp — as well as body validation and a session that is not active.
The API key is missing, unknown, revoked, or expired
The API key's role, session or chat scope, or IP allow-list does not allow this operation
The quotedMessageId could not be resolved: the whatsapp-web.js page does not hold it, or the Baileys store does not (it was never received or sent by this session, or it was evicted or deleted). On whatsapp-web.js a message that resolves but cannot be replied to is sent without the quote.
The session is not connected: an engine exists for it but is not ready, meaning disconnected, reconnecting, or still initializing, so the request never reached WhatsApp. Wait for ready and retry. A session that was never started answers 400 instead, and the session lifecycle routes answer 409 for a conflicting state rather than this. One window answers this while the session still reads ready: WhatsApp Web periodically reloads its own page and the engine re-injects into it, and for those few seconds the answer is a 409 naming the reload; retry shortly.
IDEMPOTENCY_KEY_REUSED: the Idempotency-Key was already used with a different route or body.
whatsapp-web.js cannot send a poll to a status or broadcast list (@broadcast), nor one with quotedMessageId to a channel (<id>@newsletter); nothing is sent.
Baileys could not complete the recipient lookup within the request budget. On send routes, no message was handed to WhatsApp for this lookup failure.