Guutrix
https://tg-api.guutrix.ru. Все эндпоинты возвращают JSON в UTF-8.В каждом запросе передавайте заголовок Authorization: Bearer ВАШ_КЛЮЧ. Формат ключа: gtx_tg_<64 hex>.
Ключ вы создаёте сами в TG веб-панели → раздел «API доступ»
curl https://tg-api.guutrix.ru/api/tg/v1/channels \ -H "Authorization: Bearer gtx_tg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Успех:
{ "ok": true, "data": { ... } }Ошибка:
{
"ok": false,
"error": {
"code": "FORBIDDEN",
"message": "Этот канал не в ваших личных каналах (Мои каналы)"
}
}Коды ошибок:
VALIDATION_ERROR | 400 | Некорректное тело запроса |
UNAUTHORIZED | 401 | Нет/неверный ключ |
FORBIDDEN | 403 | Нет личного лимита или канал не в личном лимите |
NOT_FOUND | 404 | Канал/задача не найдены |
CONFLICT | 409 | Зрители уже запущены / конфликт настроек |
RATE_LIMIT_EXCEEDED | 429 | Превышен лимит запросов на ключ |
API_DISABLED | 503 | API временно выключен |
SERVICE_UNAVAILABLE | 503 | Сервис зрителей недоступен |
Лимит задаётся на каждый ключ (по умолчанию 60 запросов в минуту, настраивается в панели). При превышении возвращается 429 с заголовками Retry-After, X-RateLimit-Reset. Тело запроса ограничено 32 КБ.
/api/tg/v1/channelsСписок ваших личных каналов + занятость личного лимита онлайна.
Пример ответа:
{
"ok": true,
"data": {
"personalOnlineLimit": 1000,
"currentPersonalOnline": 250,
"available": 750,
"channels": [
{
"id": 12,
"channelName": "my_channel",
"viewersCount": 300,
"task": { "id": 88, "status": "ACTIVE", "streamOnline": true,
"viewersCount": 300, "activeViewersCount": 298 }
}
]
}
}/api/tg/v1/channelsДобавить личный канал. Минимум 15 зрителей.
Тело запроса:
{ "channelName": "my_channel", "viewersCount": 300 }/api/tg/v1/channels/:idИзменить желаемое кол-во зрителей / настройки.
Тело запроса:
{
"viewersCount": 350,
"settings": { "rampUpMinutes": 5, "uniqueRatio": 3, "listPercent": 100 },
"accountListId": 4
}/api/tg/v1/channels/:idУдалить личный канал. Нельзя, пока на нём идёт онлайн-задача — сначала остановите зрителей.
/api/tg/v1/viewers/startЗапустить зрителей.
Тело запроса:
{ "channelName": "my_channel" }Пример ответа:
{
"ok": true,
"data": {
"task": { "id": 88, "channelName": "my_channel",
"viewersCount": 300, "actualViewersCount": 250, "partial": true },
"online": true, "started": true, "rampUpMinutes": 5
}
}/api/tg/v1/viewers/stopПолностью остановить зрителей на канале
Тело запроса:
{ "channelName": "my_channel" }/api/tg/v1/viewers/modifyИзменение работающей задачи: количество, распределение в рейд, плавающий онлайн.
Тело запроса:
{
"channelName": "my_channel",
"viewersCount": 350,
"listPercent": 100,
"raidPercent": 80,
"fluctuationMode": "range",
"fluctuationMinViewers": 280,
"fluctuationMaxViewers": 360,
"fluctuationIntervalSeconds": 600
}