Polls are available on enabled lines. Send a message first, then use its
chat_id. Unsupported lines return 422 with code 4099.Create a poll
POST /api/v1/polls
idempotency_key is required: reuse it for retries, and use a new key for each new poll. Include x-chert-tenant if your key requires it.
Read answers
GET /api/v1/polls/{id} — use the poll id returned by creation.
Both endpoints return id, chat_id, phone_line_id, message_guid, title, options (id, text, vote_count), votes (option_id, voter), and total_voters. Repeating creation returns the original result; GET returns current votes, including changes and removals. Only your tenant’s polls are accessible.
For onboarding, check GET periodically while waiting for an answer. Vote-change webhooks and closing polls are not supported yet. Rendering depends on the recipient’s Messages version.
Invalid input returns 400; an unknown chat or poll returns 404; reusing a key with different content returns 409. For retryable errors, retry with the same key. See Errors.
