SkyStream API

Проголосовать в опросе (Twitch)

POST/chat-panels/{id}/poll/votes

Голосует аккаунтами панели за вариант (choice_id) или раздаёт голоса по нескольким вариантам (split). Голосуют только аккаунты, которые в этом опросе ещё не голосовали, поэтому повтор запроса лишних голосов не даст.

Бесплатный голос у аккаунта один на опрос; дополнительные — за баллы канала (points), если опрос это разрешает.

С spread_seconds голоса уходят в фоне вразбивку по времени, а ответ приходит сразу и несёт раздачу в sending; её ход — в GET /chat-panels/{id}/poll. Без растяжки ответ приходит, когда все голоса отданы, — на большой панели это до минуты.

Право ключа: chat_panel — управление чат-панелью.

Частота: класс «изменение» — 30 запросов в минуту на ключ, 60 на аккаунт.

Idempotency-Key: необязателен; с ним повтор запроса безопасен.

Авторизация

bearerAuth
АвторизацияBearer <ключ>

Ключ API из панели. Только в заголовке Authorization: ключ в строке запроса отклоняется.

Где: header

Параметры адреса

id*string

Id чат-панели — id её заказа: cp_12.

Заголовки

Idempotency-Key?string

Ключ идемпотентности: от 8 до 128 знаков из латинских букв, цифр и символов _ : . -. Повтор запроса с тем же ключом возвращает сохранённый ответ. Ключ хранится 24 часа.

Шаблон^[A-Za-z0-9_:.\-]+$
Длина8 <= length <= 128

Тело запроса

application/json

Типы TypeScript

Тип request body для TypeScript.

Голоса аккаунтов панели. Аккаунты, которые уже голосовали, не участвуют.

Тело ответа

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

POST/chat-panels/cp_12/poll/votes
curl https://api.skystream.su/app/v1/chat-panels/cp_12/poll/votes \  -X POST \  -H "Authorization: Bearer $API_KEY" \  -H "Idempotency-Key: 7c0a5f4e-2b1d-4c9e-9a51-3f6d8e2b1c40" \  -H "Content-Type: application/json" \  -d '{    "choice_id": "c1a7"  }'
bash, zshКлюч — в переменной API_KEY
Ответ
{  "poll_id": "5c1e9a2f-0b7d-4e3a-9c61-7d2f4b8a1e03",  "voted": 3,  "failed": 0,  "by_choice": [    {      "choice_id": "c1a7",      "title": "Стратегия",      "voted": 3,      "failed": 0    }  ],  "results": [    {      "account": "fox_runner",      "choice_id": "c1a7",      "ok": true,      "error": null    },    {      "account": "night_owl_77",      "choice_id": "c1a7",      "ok": true,      "error": null    },    {      "account": "pixel_mira",      "choice_id": "c1a7",      "ok": true,      "error": null    }  ],  "sending": null,  "poll": {    "id": "5c1e9a2f-0b7d-4e3a-9c61-7d2f4b8a1e03",    "title": "Какую игру дальше?",    "status": "ACTIVE",    "duration_seconds": 300,    "remaining_ms": 184000,    "started_at": "2026-10-05T18:10:00.000Z",    "ended_at": null,    "total_voters": 44,    "total_votes": 50,    "choices": [      {        "id": "c1a7",        "title": "Стратегия",        "votes": 32,        "base_votes": 28,        "points_votes": 4,        "bits_votes": 0,        "voters": 28      },      {        "id": "c2b4",        "title": "Хоррор",        "votes": 18,        "base_votes": 16,        "points_votes": 2,        "bits_votes": 0,        "voters": 16      }    ],    "points_votes_enabled": true,    "points_votes_cost": 100,    "subscriber_only": false  }}