Polls let you collect structured responses from contacts over SMS. A poll consists of an optional introductory message, one or more questions (multiple choice or open-ended), and an optional closing message. Participants receive questions sequentially via text and respond by replying with their chosen option code. Branching logic lets you route participants to different questions based on their answers.Documentation Index
Fetch the complete documentation index at: https://docs.messagesender.ai/llms.txt
Use this file to discover all available pages before exploring further.
Poll statuses
| Status | Description |
|---|---|
draft | Being configured; not yet started. |
scheduled | Approved to start at scheduledFor. |
active | Currently sending questions to participants. |
paused | Execution paused; participants retain their progress. |
completed | Poll finished or manually closed. |
List polls
Response
Create a poll
draft status. Questions must be numbered sequentially starting at 1.
Request body
Display name for the poll (max 200 characters).
Opening message sent to participants before the first question. Supports merge fields (
{{firstName}}, etc.).Closing message sent after the participant completes all questions.
Public URL of media to attach to the introductory message, making it MMS.
Public URL of media to attach to the closing message.
Array of question objects. Must contain between 1 and 20 questions numbered sequentially from 1.
When
true, the poll automatically closes once completionTarget responses are collected.Required when
completionTargetEnabled is true. Number of completed participants at which the poll closes automatically.Example request
Response
Returns the created poll with status201.
Get a poll
Path parameters
The poll’s UUID.
Start a poll
segmentId or contactFilter. If scheduledFor is more than 30 seconds in the future, the poll is scheduled rather than started immediately.
When started immediately, the poll status changes to active and message delivery begins in the background. The endpoint returns 202 Accepted immediately while sending continues asynchronously.
Path parameters
The poll’s UUID.
Request body
UUID of a saved segment to use as the audience. Mutually exclusive with
contactFilter.Ad-hoc filter defining the audience. Mutually exclusive with
segmentId.When to start the poll. If omitted or within 30 seconds of now, the poll starts immediately.
IANA timezone string for display purposes (e.g.
America/New_York). Used when storing the scheduled time.Example request — start immediately
Example request — schedule for later
Response
Returns the updated poll object. When starting immediately, status isactive and HTTP status is 202. When scheduling, status is scheduled and HTTP status is 200.
List participants
Path parameters
The poll’s UUID.
Query parameters
Filter by participant status:
not_started, in_progress, completed, or terminated. Omit to return all.Search participants by first name, last name, or phone number.
Number of results to return. Default
100, max 500.Response
Key fields reference
multiple_choice requires participants to reply with one of the defined option codes. open_ended accepts any text reply.Each option has a
code (the keyword participants text back, e.g. "1") and a label (the human-readable choice shown in the question text). Multiple-choice questions require 2–9 options.When set, the poll closes automatically after this many participants complete all questions.
Polls respect quiet hours (8 AM–9 PM in the organization’s timezone). Questions are not sent outside this window; participants in progress when quiet hours begin resume the next day.