SkyStream API

Заказ услуг со счёта

Ставки, суммы, суточный потолок трат, заказы, продления и отмены.

Через API можно заказать просмотры, фолловеров, чат-ботов и чат-панель. Заказ оплачивается со счёта аккаунта сразу при оформлении. Для заказа у ключа должно быть право billing.

Защита от лишних списаний

У каждого денежного запроса два предохранителя:

ПредохранительЧто делает
Idempotency-KeyОбязателен. Повтор запроса с тем же ключом возвращает тот же заказ и второй раз не списывает. См. Идемпотентность
Суточный потолок ключаБольше этой суммы ключ не потратит за сутки по московскому времени

Во всех случаях отказа деньги не списываются.

Ставки

GET /prices возвращает ставки для вашего аккаунта — с учётом наценки и личных скидок — и пределы заказов:

GET/prices
curl https://api.skystream.su/app/v1/prices \  -H "Authorization: Bearer $API_KEY"
bash, zshКлюч — в переменной API_KEY
Ответ200Фрагмент ответа
{  "currency": "RUB",  "views": {    "available": true,    "unit_amount_decimal": "3.5",    "discount_percent": 10,    "min": 100,    "max": 50000  }}

Ставка — десятичная строка в копейках за единицу. Сумма заказа — количество × ставка, округлённое до копейки. Для чат-услуг ставка указана за один аккаунт на один час: сумма — аккаунты × часы × ставка.

Пример: 1000 просмотров по ставке "3.5" стоят 3500 копеек, то есть 35 рублей.

Точную сумму заказа возвращает ответ на заказ в поле price.

Оформить заказ

POST/orders/views
curl https://api.skystream.su/app/v1/orders/views \  -X POST \  -H "Authorization: Bearer $API_KEY" \  -H "Idempotency-Key: 7c0a5f4e-2b1d-4c9e-9a51-3f6d8e2b1c40" \  -H "Content-Type: application/json" \  -d '{    "channel": "example_channel",    "views": 1000  }'
bash, zshКлюч — в переменной API_KEY

Ответ 201 — заказ. Списанная сумма — в price: 1000 просмотров по ставке "3.5" — 3500 копеек.

Ответ201
{  "id": "vo_3f9c2a7b1e4d8605",  "status": "queued",  "channel": "example_channel",  "price": {    "amount": 3500,    "currency": "RUB"  },  "created_at": "2026-09-29T12:00:00.000Z",  "completed_at": null,  "type": "views",  "platform": "twitch",  "views": {    "count": 1000,    "unique_ratio": 3  }}

Поле type определяет, какой вложенный объект есть у заказа: views, followers, chat_bots или chat_panel.

ОперацияЧто заказывает
POST /orders/viewsПросмотры канала Twitch. География и источники берутся из настроек канала
POST /orders/followersФолловеров канала Twitch
POST /orders/chat-botsЧат-ботов на Twitch или Kick, с сообщениями из запроса
POST /orders/chat-panelЧат-панель на Twitch или Kick

Заказы выполняются на аккаунтах сервиса. Id заказа чат-панели — он же id панели: писать в чат от имени её аккаунтов, голосовать и ставить баллы канала можно запросами /chat-panels/{id} с правом chat_panel — см. Чат-панель.

Чат-боты и чат-панель к моменту ответа уже запущены: их status — active. Если запустить их не удалось, сумма возвращается на счёт и в суточный потолок ключа, а API отвечает 502 order_not_started; запрос можно повторить с тем же Idempotency-Key.

Суточный потолок трат

Потолок задаётся в панели для каждого ключа с правом billing. Сутки считаются по московскому времени. Сколько ключ потратил сегодня, показывает key.spent_today в GET /account, а сам потолок — key.daily_spend_limit.

Заказ, который превысил бы потолок, отклоняется с ошибкой 403 daily_spend_limit_exceeded; в описании указаны потраченное и остаток:

Ответ403daily_spend_limit_exceeded
{  "error": {    "type": "permission",    "code": "daily_spend_limit_exceeded",    "message": "Заказ на 35 ₽ превысит суточный потолок трат ключа: за сутки потрачено 4 980 ₽ из 5 000 ₽, осталось 20 ₽. Потолок меняется в панели; счётчик обнуляется в полночь по Москве.",    "request_id": "req_2f9cA1bQ7xLm0Rk4TzP8sWd3"  }}

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

В потраченное за сутки возвращаются деньги заказа, который не запустился при оформлении (order_not_started). Возвраты позже — отмена заказа поддержкой, невыполненный заказ — возвращаются на счёт, но не в потраченное ключом за сутки.

Статусы заказа

statusЧто значит
queuedЗаказ принят и ещё не выполняется
activeВыполняется
completedВыполнен, или истёк срок чат-услуги
failedНе выполнен
cancelledОтменён

Состояние заказа — GET /orders/{id}; все заказы — GET /orders с отбором по type и status.

Продлить и отменить

Чат-ботов и чат-панель можно продлить и отменить, пока они работают.

Продление прибавляет минуты к сроку и списывает их стоимость. Ставка продления — extend_unit_amount_decimal у самого заказа; стоимость — аккаунты × минуты / 60 × ставка, округлённое до копейки.

POST/orders/cb_12/extend
curl https://api.skystream.su/app/v1/orders/cb_12/extend \  -X POST \  -H "Authorization: Bearer $API_KEY" \  -H "Idempotency-Key: 9b1f6c2e-7d3a-4e58-b0c9-4a2e8f1d6c73" \  -H "Content-Type: application/json" \  -d '{    "minutes": 60  }'
bash, zshКлюч — в переменной API_KEY

Ответ — продлённый заказ и списанная за продление сумма. Фрагмент ответа для 5 аккаунтов по ставке "250": 5 × 60 / 60 × 250 = 1250 копеек.

Ответ200Фрагмент ответа
{  "order": {    "id": "cb_12",    "status": "active",    "type": "chat_bots",    "chat_bots": {      "accounts": 5,      "duration_minutes": 180,      "ends_at": "2026-09-29T15:00:00.000Z",      "extend_unit_amount_decimal": "250"    }  },  "charged": {    "amount": 1250,    "currency": "RUB"  }}

Отмена останавливает заказ; деньги за оставшееся время не возвращаются:

POST/orders/cb_12/cancel
curl https://api.skystream.su/app/v1/orders/cb_12/cancel \  -X POST \  -H "Authorization: Bearer $API_KEY"
bash, zshКлюч — в переменной API_KEY

Заказы просмотров и фолловеров после оформления не продлеваются и не отменяются.

Операции по счёту

Все списания и зачисления — заказы, продления, автопросмотры, пополнения, возвраты — возвращает GET /transactions. Сумма операции со знаком: расход отрицательный, приход положительный.

Автопросмотры — не заказы: их поминутные списания видны только в операциях.

Ошибки

КодКогда
idempotency_key_missingНе передан Idempotency-Key
insufficient_fundsНа счёте недостаточно средств
daily_spend_limit_exceededЗаказ превысил бы суточный потолок ключа
quantity_out_of_range, duration_out_of_range, interval_out_of_rangeЗначение вне пределов из /prices
active_limit_reachedРаботает наибольшее число чат-панелей на площадке
service_disabledУслуга временно недоступна
order_not_startedСервис не принял заказ; деньги возвращены
order_not_activeЗаказ не работает: для продления и отмены

На этой странице