Для AI-агентов: markdown этой страницы — /docs-content/polls/vote.md индекс документации — /llms.txt

Проголосовать или переголосовать

POST /v1/polls/:pollId/vote

Голосует или заменяет голос текущего пользователя. До записи проверяет активные вопросы: для каждого обязательного нужен ответ, для вопроса с одним вариантом — не более одного.

Текстовые ответы старых опросов (TEXT/TEXTAREA) через API не выбираются: 400 INVALID_ANSWERS. В вопросе старого формата нельзя выбрать больше одного ответа-переключателя и больше одного ответа из выпадающего списка, даже при multipleChoice: true: Битрикс24 оставил бы только первый, поэтому такой бюллетень отклоняется 400 INVALID_ANSWERS до записи.

Скоуп: vote. Ограничения ключей — Опросы.

Параметры

Параметр Тип Обяз. По умолч. Описание
ПараметрpollId (path) Типnumber Обяз.да По умолч.— ОписаниеПоложительный ID прикрепления: поле id из поиска опросов, не voteId

Поля запроса (body)

Поле Тип Обяз. Описание
ПолеanswerIds Типnumber[] Обяз.да ОписаниеНепустой массив уникальных положительных целых ID активных ответов из questions[].answers[].id

При переголосовании в Ленте одновременное редактирование опроса может стереть предыдущий голос в Битрикс24 — так же, как в интерфейсе. После ошибки проверьте myVote.

Запись выполняется один раз, без автоматического повтора. После неизвестного исхода прочитайте опрос и решите, нужна ли повторная запись.

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/polls/25/vote" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"answerIds": [85]}'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/polls/25/vote" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"answerIds": [85]}'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/polls/25/vote', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"answerIds": [85]}),
})
const result = await res.json()

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/polls/25/vote', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"answerIds": [85]}),
})
const result = await res.json()

Поля ответа

Поле Тип Описание
Полеsuccess Типboolean Описаниеtrue при успехе
Полеdata Типobject ОписаниеОбъект опроса

Пример ответа

JSON
{
  "success": true,
  "data": {
    "id": 25,
    "voteId": 33,
    "status": "active",
    "anonymous": false,
    "allowRevote": true,
    "resultsHidden": false,
    "resultsVisible": true,
    "votersCount": 1,
    "questions": [
      {
        "id": 35,
        "text": "When?",
        "multipleChoice": false,
        "required": false,
        "votesCount": 1,
        "answers": [
          { "id": 85, "text": "Now", "votesCount": 1, "percent": 100 },
          { "id": 87, "text": "Later", "votesCount": 0, "percent": 0 }
        ]
      }
    ],
    "myVote": { "voted": true, "answerIds": [85] },
    "permissions": { "canVote": false, "canRevote": true, "canManage": true }
  }
}

Пример ответа при ошибке

400 — передан пустой answerIds:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_ANSWERS",
    "message": "Provide active answers for every required question and at most one answer for a single-choice question."
  }
}

Ошибки

HTTP Код Причина и действие
HTTP400 КодINVALID_PARAMS Причина и действиеpollId не положительное целое число
HTTP401 КодTOKEN_MISSING Причина и действиеНет пользовательской сессии Битрикс24
HTTP403 КодSCOPE_DENIED Причина и действиеНет скоупа vote
HTTP403 КодCOWORK_READONLY Причина и действиеОперация запрещена для ключа Коворка «портал только для чтения»
HTTP403 КодWRITE_BLOCKED_READONLY_KEY Причина и действиеКлюч разрешает только чтение
HTTP404 КодPOLL_NOT_FOUND Причина и действиеОпрос не найден или недоступен
HTTP400 КодINVALID_ANSWERS Причина и действиеНе выбраны обязательные ответы, выбран лишний или неактивный вариант
HTTP409 КодPOLL_FINISHED Причина и действиеБитрикс24 сообщил, что опрос завершён
HTTP403 КодPOLL_ACCESS_DENIED Причина и действиеБитрикс24 запретил операцию
HTTP422 КодBITRIX_ERROR Причина и действиеБитрикс24 отклонил запрос, например метод недоступен в этой версии
HTTP502 КодPOLL_VOTE_OUTCOME_UNKNOWN Причина и действиеЗапрос ушёл в Битрикс24, а исход не подтверждён: таймаут, обрыв соединения или ответ «Internal server error.». Тем же кодом отклоняется голос в остановленном опросе, голос при этом не записывается. Прочитайте опрос и сверьте status и myVote, прежде чем повторять

Другие отказы авторизации, лимиты и общие ошибки — Ошибки.

Смотрите также