Подписки
Управление ботом подписок: группы ресурсов, каналы и чаты внутри группы, тарифы, уведомления и купленные доступы.
Хост: https://api.bot-t.com. Все методы — POST, тело application/json.
Бот должен быть ботом подписок. Лимит: 120 запросов в минуту с одного IP.
Авторизация
В каждом запросе передайте bot_id — числовой идентификатор бота.
Секрет передаётся одним из способов (в query или в теле):
| Поле | Где взять |
|---|---|
token | Токен бота из BotFather |
secretKey | Секретный ключ бота в кабинете |
Токен и секрет храните только на своём сервере.
POST https://api.bot-t.com/v1/subscriber/resource/index?token=123456:ABC
Ответ
Успех:
{ "result": true, "data": {} }
Ошибка:
{ "result": false, "message": "текст ошибки" }
Удаление и счётчики возвращают data строкой: "1" — да, "0" — нет, либо число записей.
Даты без отдельной пометки — в часовом поясе бота, формат ГГГГ-ММ-ДД ЧЧ:ММ:СС. Дату можно передать и как unix timestamp.
Общие поля
Срок type_term
type_term| Значение | Единица |
|---|---|
| 1 | день |
| 2 | неделя |
| 3 | месяц |
| 4 | час |
| 5 | год |
term — целое от 1 до 99. Пример: term = 1, type_term = 3 — один месяц.
Валюта currency_id
currency_id| ID | Код |
|---|---|
| 1 | RUB |
| 2 | USD |
| 3 | EUR |
| 4 | UAH |
| 5 | KZT |
| 6 | BYN |
| 7 | UZS |
| 8 | GBP |
| 9 | THB |
| 10 | MDL |
| 11 | MNT |
| 12 | PLN |
| 13 | XTR (Telegram Stars) |
Если валюту не передать при создании тарифа, берётся валюта бота.
Цена
Число в основных единицах валюты: 890 или 890.50. В ответе цена — строка с двумя знаками: "890.50".
Статус группы и тарифа
| Значение | Смысл |
|---|---|
| 1 | включено |
| 0 | выключено |
Тип канала или чата
| Значение | Смысл |
|---|---|
| 1 | канал |
| 2 | чат |
data — идентификатор чата Telegram (-100… или @username). Перед добавлением бот должен быть администратором этого чата.
Статус купленной подписки
| Значение | Смысл |
|---|---|
| 1 | не оплачена |
| 2 | оплачена, доступ активен |
| 3 | срок истёк |
| 4 | ожидает оплаты |
user_id в этих методах — идентификатор пользователя в системе (поле id у пользователя бота), а не Telegram ID.
Клиент
Python
import requests
API = "https://api.bot-t.com"
TOKEN = "123456:ABC"
BOT_ID = 1
def call(path, **body):
response = requests.post(
f"{API}{path}",
params={"token": TOKEN},
json={"bot_id": BOT_ID, **body},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if not payload.get("result"):
raise RuntimeError(payload.get("message", "ошибка API"))
return payload["data"]
JavaScript
const API = "https://api.bot-t.com";
const TOKEN = "123456:ABC";
const BOT_ID = 1;
async function call(path, body = {}) {
const response = await fetch(`${API}${path}?token=${encodeURIComponent(TOKEN)}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ bot_id: BOT_ID, ...body }),
});
const payload = await response.json();
if (!payload.result) {
throw new Error(payload.message || "ошибка API");
}
return payload.data;
}
Дальше в примерах используется эта функция call.
Группа ресурсов
Группа объединяет один или несколько каналов и чатов, свои тарифы и уведомления.
Объект группы:
| Поле | Описание |
|---|---|
id | Идентификатор группы |
title | Название |
description | Описание |
status | 1 включена, 0 выключена |
custom_emoji_id | Идентификатор кастомного эмодзи кнопки или null |
access_start_date | Дата начала доступа ГГГГ-ММ-ДД или null |
items | Каналы и чаты группы (в списке и в карточке) |
Список групп
POST /v1/subscriber/resource/index
Тело: только bot_id.
groups = call("/v1/subscriber/resource/index")
const groups = await call("/v1/subscriber/resource/index");
data — массив групп.
Одна группа
POST /v1/subscriber/resource/view
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Идентификатор группы |
group = call("/v1/subscriber/resource/view", id=3)
const group = await call("/v1/subscriber/resource/view", { id: 3 });
Создать группу
POST /v1/subscriber/resource/create
| Поле | Обяз. | Описание |
|---|---|---|
title | да | Название |
description | нет | Описание |
generate | нет | true — сразу создать типовые тарифы и уведомления. По умолчанию false |
custom_emoji_id | нет | Цифры и минус, до 40 символов |
access_start_date | нет | ГГГГ-ММ-ДД, строго позже сегодняшнего дня в часовом поясе бота |
Пустая группа ещё не продаёт доступ: добавьте канал или чат методом ниже. Удобнее создать группу сразу с первым чатом: item/create-join.
group = call(
"/v1/subscriber/resource/create",
title="VIP",
description="Закрытый канал",
generate=True,
)
const group = await call("/v1/subscriber/resource/create", {
title: "VIP",
description: "Закрытый канал",
generate: true,
});
Изменить группу
POST /v1/subscriber/resource/update
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Идентификатор группы |
title | нет | Новое название |
description | нет | Новое описание |
custom_emoji_id | нет | Новый эмодзи. Пустая строка сбрасывает |
access_start_date | нет | Новая дата начала |
reset_access_start_date | нет | true — убрать дату, доступ начнётся с момента оплаты |
Непереданные поля не меняются.
call("/v1/subscriber/resource/update", id=3, title="VIP Plus")
await call("/v1/subscriber/resource/update", { id: 3, title: "VIP Plus" });
Включить или выключить
POST /v1/subscriber/resource/change-status
| Поле | Обяз. |
|---|---|
id | да |
Переключает статус на противоположный. В ответе — группа.
Удалить группу
POST /v1/subscriber/resource/delete
| Поле | Обяз. |
|---|---|
id | да |
Удаляет группу вместе с каналами, тарифами и уведомлениями. data — "1".
Канал или чат в группе
Объект:
| Поле | Описание |
|---|---|
id | Идентификатор |
resource_id | Группа |
title | Название |
data | ID чата Telegram |
type | 1 канал, 2 чат |
Список
POST /v1/subscriber/item/index
| Поле | Обяз. |
|---|---|
resource_id | да |
items = call("/v1/subscriber/item/index", resource_id=3)
const items = await call("/v1/subscriber/item/index", { resource_id: 3 });
Добавить в существующую группу
POST /v1/subscriber/item/create
| Поле | Обяз. | Описание |
|---|---|---|
resource_id | да | Группа |
title | да | Название |
data | да | ID чата |
type | да | 1 или 2 |
Число каналов и чатов в одной группе ограничено тарифом платформы.
item = call(
"/v1/subscriber/item/create",
resource_id=3,
title="Закрытый канал",
data="-1001234567890",
type=1,
)
const item = await call("/v1/subscriber/item/create", {
resource_id: 3,
title: "Закрытый канал",
data: "-1001234567890",
type: 1,
});
Создать группу и первый чат сразу
POST /v1/subscriber/item/create-join
Бот должен быть администратором чата, иначе запрос завершится ошибкой.
| Поле | Обяз. | Описание |
|---|---|---|
title | да | Название группы и чата |
data | да | ID чата |
type | да | 1 или 2 |
generate | нет | true — типовые тарифы и уведомления |
Ответ:
{
"result": true,
"data": {
"resource": { "id": 3, "title": "VIP", "items": [] },
"item": { "id": 10, "resource_id": 3, "title": "VIP", "data": "-1001234567890", "type": 1 }
}
}
created = call(
"/v1/subscriber/item/create-join",
title="VIP",
data="-1001234567890",
type=1,
generate=True,
)
resource_id = created["resource"]["id"]
const created = await call("/v1/subscriber/item/create-join", {
title: "VIP",
data: "-1001234567890",
type: 1,
generate: true,
});
const resourceId = created.resource.id;
Изменить
POST /v1/subscriber/item/update
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Идентификатор канала или чата |
title | нет | Название |
data | нет | ID чата |
type | нет | 1 или 2 |
Удалить
POST /v1/subscriber/item/delete
| Поле | Обяз. |
|---|---|
id | да |
Последний канал или чат группы удалить нельзя. Сначала удалите всю группу.
Проверить права бота
POST /v1/subscriber/item/check
| Поле | Обяз. |
|---|---|
id | да |
{
"result": true,
"data": {
"is_admin": true,
"message": "Бот является администратором"
}
}
check = call("/v1/subscriber/item/check", id=10)
if not check["is_admin"]:
raise SystemExit(check["message"])
const check = await call("/v1/subscriber/item/check", { id: 10 });
if (!check.is_admin) {
throw new Error(check.message);
}
Тарифы
Объект тарифа:
| Поле | Описание |
|---|---|
id | Идентификатор |
resource_id | Группа |
title | Название на кнопке |
term | Число срока |
type_term | Единица срока |
price | Цена, строка "890.00" |
currency_id | Валюта |
status | 1 включён, 0 выключен |
is_test | true — пробный тариф |
only_for_active_users | 1 — только у кого уже есть активный доступ к этой группе, 0 — всем |
referral_percent | Процент реферального бонуса или null |
custom_emoji_id | Эмодзи кнопки или null |
message_id | Идентификатор текста, который уходит покупателю |
text | Текст тарифа |
Список
POST /v1/subscriber/tariff/index
| Поле | Обяз. |
|---|---|
resource_id | да |
tariffs = call("/v1/subscriber/tariff/index", resource_id=3)
const tariffs = await call("/v1/subscriber/tariff/index", { resource_id: 3 });
Один тариф
POST /v1/subscriber/tariff/view
| Поле | Обяз. |
|---|---|
id | да |
Создать
POST /v1/subscriber/tariff/create
| Поле | Обяз. | Описание |
|---|---|---|
resource_id | да | Группа |
title | да | До 255 символов |
term | да | 1–99 |
type_term | да | 1–5 |
price | да | От 1. Для пробного тарифа можно 0 |
currency_id | нет | Иначе валюта бота |
status | нет | По умолчанию 1 |
is_test | нет | true — пробный. По умолчанию обычный |
only_for_active_users | нет | 0 или 1 |
text | нет | Текст покупателю. Если не передать, подставится текст по умолчанию |
referral_percent | нет | 0–100 или null |
custom_emoji_id | нет | Эмодзи кнопки |
Число тарифов в группе ограничено тарифом платформы. Лишние при создании удаляются.
tariff = call(
"/v1/subscriber/tariff/create",
resource_id=3,
title="Месяц",
term=1,
type_term=3,
price=890,
text="Доступ на 30 дней",
)
const tariff = await call("/v1/subscriber/tariff/create", {
resource_id: 3,
title: "Месяц",
term: 1,
type_term: 3,
price: 890,
text: "Доступ на 30 дней",
});
Пробный тариф:
call(
"/v1/subscriber/tariff/create",
resource_id=3,
title="3 дня бесплатно",
term=3,
type_term=1,
price=0,
is_test=True,
)
await call("/v1/subscriber/tariff/create", {
resource_id: 3,
title: "3 дня бесплатно",
term: 3,
type_term: 1,
price: 0,
is_test: true,
});
Изменить
POST /v1/subscriber/tariff/update
| Поле | Обяз. |
|---|---|
id | да |
Остальные поля те же, что при создании, и необязательны. Непереданные поля не меняются. text заменяет текст покупателю. is_test после создания не меняется.
call("/v1/subscriber/tariff/update", id=12, price=990, status=1)
await call("/v1/subscriber/tariff/update", { id: 12, price: 990, status: 1 });
Включить или выключить
POST /v1/subscriber/tariff/change-status
| Поле | Обяз. |
|---|---|
id | да |
Переключает status.
Сменить валюту
POST /v1/subscriber/tariff/currency
| Поле | Обяз. |
|---|---|
id | да |
currency_id | да |
Цена в числовом виде не пересчитывается: меняется только валюта отображения.
Удалить
POST /v1/subscriber/tariff/delete
| Поле | Обяз. |
|---|---|
id | да |
data — "1". Уже купленные доступы остаются, в них название тарифа станет «тариф удалён».
Уведомления
Сообщение уходит за term + type_term до конца доступа.
Объект:
| Поле | Описание |
|---|---|
id | Идентификатор |
resource_id | Группа |
term | За сколько |
type_term | Единица |
is_rebill | true — напоминание перед автоплатежом, false — обычное |
message_id | Идентификатор текста |
text | Текст уведомления |
Список
POST /v1/subscriber/notice/index
| Поле | Обяз. |
|---|---|
resource_id | да |
notices = call("/v1/subscriber/notice/index", resource_id=3)
const notices = await call("/v1/subscriber/notice/index", { resource_id: 3 });
Одно уведомление
POST /v1/subscriber/notice/view
| Поле | Обяз. |
|---|---|
id | да |
Создать
POST /v1/subscriber/notice/create
| Поле | Обяз. | Описание |
|---|---|---|
resource_id | да | Группа |
term | да | 1–99 |
type_term | да | 1–5 |
text | да | Текст |
is_rebill | нет | По умолчанию обычное уведомление |
Число уведомлений ограничено тарифом платформы.
notice = call(
"/v1/subscriber/notice/create",
resource_id=3,
term=2,
type_term=1,
text="До конца доступа осталось 2 дня",
)
const notice = await call("/v1/subscriber/notice/create", {
resource_id: 3,
term: 2,
type_term: 1,
text: "До конца доступа осталось 2 дня",
});
Напоминание об автоплатеже:
call(
"/v1/subscriber/notice/create",
resource_id=3,
term=1,
type_term=1,
is_rebill=True,
text="Завтра спишется оплата за продление",
)
await call("/v1/subscriber/notice/create", {
resource_id: 3,
term: 1,
type_term: 1,
is_rebill: true,
text: "Завтра спишется оплата за продление",
});
Изменить
POST /v1/subscriber/notice/update
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Уведомление |
term | нет | |
type_term | нет | |
text | нет | Новый текст |
is_rebill | нет |
call("/v1/subscriber/notice/update", id=8, term=3, text="Осталось 3 дня")
await call("/v1/subscriber/notice/update", {
id: 8,
term: 3,
text: "Осталось 3 дня",
});
Удалить
POST /v1/subscriber/notice/delete
| Поле | Обяз. |
|---|---|
id | да |
Последнее уведомление группы удалить нельзя. У активных подписок дата ближайшего уведомления пересчитывается.
Купленные подписки
Объект покупки (data элемента списка):
| Поле | Описание |
|---|---|
id | Идентификатор покупки |
bot_id | Бот |
status | 1–4, см. таблицу выше |
balanceType | Способ оплаты: id, title, image |
user | Покупатель: id, telegram_id, username, first_name, last_name, link, type |
tariff_id | Тариф или null, если тариф удалён |
resource_id | Группа |
resource_title | Название группы |
tariff_title | Название тарифа. Для автосписания: «Попытка автосписания #N» |
tariff_price | Цена тарифа строкой, например 990 ₽ |
price | Фактически оплаченная сумма строкой |
paid_time | Начало доступа в часовом поясе бота или «Не определено» |
paid_at | Начало доступа, unix UTC, или null |
end_paid_time | Конец доступа или «Не определено» |
end_paid_at | Конец доступа, unix UTC, или null |
created_time | Когда создана запись |
notification_time | Ближайшее уведомление или - |
notification_at | То же, unix UTC |
notice_id | Какое уведомление запланировано |
notice_title | Текст этого уведомления |
is_recurrent | Включено автопродление |
can_edit_access_start | Можно сдвинуть дату начала (доступ оплачен и ещё не начался) |
item_id | Способ оплаты или null |
itemData | Дополнительные данные оплаты |
bot_clone_id | Копия бота или null |
purchase_bot_title | В каком боте оформили |
Фильтры списков
Их можно передать в index, count, bot-user-index, bot-user-count.
| Поле | Описание |
|---|---|
user_id | Покупатель |
status | 1–4 |
id | Конкретная покупка |
tariff_id | Тариф. Можно массив |
resource_id | Группа. Можно массив. Если не передать в index и count — все группы бота |
type | Тип записи. Вместе с type_not_in |
type_not_in | true — исключить указанные type, false — оставить только их |
paid_time_start, paid_time_end | Период оплаты, границы включительно |
end_paid_time_start, end_paid_time_end | Период окончания доступа |
created_time_start, created_time_end | Период создания записи |
data_1 | Подстрока в данных оплаты, до 500 символов |
paid_at | Сортировка по оплате: ASC или DESC |
end_paid_at | Сортировка по окончанию |
notification_at | Сортировка по уведомлению |
Если сортировку не передать, записи идут от новых к старым.
Пагинация: limit (по умолчанию 25, максимум 1000), offset (по умолчанию 0).
Список покупок
POST /v1/subscriber/users/index
| Поле | Обяз. | Описание |
|---|---|---|
resource_id | нет | Одна группа. Без поля — все группы |
limit, offset | нет | Страница |
| фильтры | нет | Таблица выше |
page = call("/v1/subscriber/users/index", resource_id=3, status=2, limit=50, offset=0)
const page = await call("/v1/subscriber/users/index", {
resource_id: 3,
status: 2,
limit: 50,
offset: 0,
});
Количество
POST /v1/subscriber/users/count
Те же фильтры, без limit и offset. data — число строкой, например "128".
total = int(call("/v1/subscriber/users/count", status=2))
const total = Number(await call("/v1/subscriber/users/count", { status: 2 }));
Покупки одного пользователя
POST /v1/subscriber/users/bot-user-index
| Поле | Обяз. |
|---|---|
user_id | да |
Плюс limit, offset и фильтры. Группу указывать не нужно.
accesses = call("/v1/subscriber/users/bot-user-index", user_id=501, status=2)
const accesses = await call("/v1/subscriber/users/bot-user-index", {
user_id: 501,
status: 2,
});
Сколько покупок у пользователя
POST /v1/subscriber/users/bot-user-count
| Поле | Обяз. |
|---|---|
user_id | да |
Плюс фильтры. data — число строкой.
Одна покупка
POST /v1/subscriber/users/view
| Поле | Обяз. |
|---|---|
id | да |
access = call("/v1/subscriber/users/view", id=501)
const access = await call("/v1/subscriber/users/view", { id: 501 });
Выдать доступ
POST /v1/subscriber/users/grant
Создаёт оплаченную подписку от имени администратора и отправляет приглашение, как при ручной выдаче в кабинете. Пробный тариф выдать нельзя. Пользователь уже должен быть в боте.
| Поле | Обяз. | Описание |
|---|---|---|
user_id | да | Пользователь |
resource_id | да | Группа |
tariff_id | да | Обычный тариф этой группы |
accrue_referral_bonus | нет | 1 — начислить реферальный бонус (по умолчанию), 0 — не начислять |
access = call(
"/v1/subscriber/users/grant",
user_id=501,
resource_id=3,
tariff_id=12,
accrue_referral_bonus=0,
)
const access = await call("/v1/subscriber/users/grant", {
user_id: 501,
resource_id: 3,
tariff_id: 12,
accrue_referral_bonus: 0,
});
Подтвердить оплату
POST /v1/subscriber/users/success
| Поле | Обяз. |
|---|---|
id | да |
Отмечает покупку оплаченной администратором. data — "1".
Отправить приглашение в чат
POST /v1/subscriber/users/invite
| Поле | Обяз. |
|---|---|
id | да |
Бот сам отправляет ссылку пользователю. data — "ok".
Получить ссылку-приглашение
POST /v1/subscriber/users/generate-invite
| Поле | Обяз. |
|---|---|
id | да |
data — текст со ссылкой. Ссылка не выдаётся, если срок уже истёк или дата начала доступа ещё не наступила.
link = call("/v1/subscriber/users/generate-invite", id=501)
const link = await call("/v1/subscriber/users/generate-invite", { id: 501 });
Убрать автопродление
POST /v1/subscriber/users/remove-rebill
| Поле | Обяз. |
|---|---|
id | да |
data — "1".
Изменить дату окончания
POST /v1/subscriber/users/edit-end-date
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Покупка |
end_paid_time | да | Дата в часовом поясе бота или unix timestamp |
В ответе — обновлённая покупка. Если новая дата ещё не прошла, ближайшее уведомление пересчитывается.
call("/v1/subscriber/users/edit-end-date", id=501, end_paid_time="2026-12-01 12:00:00")
await call("/v1/subscriber/users/edit-end-date", {
id: 501,
end_paid_time: "2026-12-01 12:00:00",
});
Сдвинуть дату окончания у нескольких
POST /v1/subscriber/users/mass-edit-end-date
| Поле | Обяз. | Описание |
|---|---|---|
resource_id | да | Группа |
end_paid_time | да | Новая дата |
id | нет | Массив идентификаторов. Без него — все активные доступы группы |
{
"result": true,
"data": { "updated": 14, "message": "Обновлено записей: 14" }
}
call(
"/v1/subscriber/users/mass-edit-end-date",
resource_id=3,
end_paid_time="2026-12-01 12:00:00",
id=[501, 502],
)
await call("/v1/subscriber/users/mass-edit-end-date", {
resource_id: 3,
end_paid_time: "2026-12-01 12:00:00",
id: [501, 502],
});
Изменить дату начала
POST /v1/subscriber/users/edit-access-start
Только если can_edit_access_start равен true: доступ оплачен и paid_at ещё в будущем. Длительность сохраняется, конец сдвигается на ту же величину.
| Поле | Обяз. |
|---|---|
id | да |
paid_time | да |
call("/v1/subscriber/users/edit-access-start", id=501, paid_time="2026-10-01 00:00:00")
await call("/v1/subscriber/users/edit-access-start", {
id: 501,
paid_time: "2026-10-01 00:00:00",
});
Пересчитать уведомления
POST /v1/subscriber/users/rebuild-notification
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Идентификатор или массив. Пропускаются неактивные доступы |
data — "1".
Удалить доступ
POST /v1/subscriber/users/delete
| Поле | Обяз. | Описание |
|---|---|---|
id | да | Идентификатор или массив |
Пользователя убирают из ресурса. data — "1".
call("/v1/subscriber/users/delete", id=[501, 502])
await call("/v1/subscriber/users/delete", { id: [501, 502] });
Сегмент пользователей бота
POST /v1/subscriber/users/create-group
Создаёт сегмент аудитории бота из покупателей, которые подходят под фильтры.
| Поле | Обяз. | Описание |
|---|---|---|
resource_id | да | Группа |
title | да | Название сегмента |
| фильтры | нет | Те же, что у списка покупок |
{
"result": true,
"data": { "group_id": 44, "title": "Активные VIP", "users_count": 120 }
}
segment = call(
"/v1/subscriber/users/create-group",
resource_id=3,
title="Активные VIP",
status=2,
)
const segment = await call("/v1/subscriber/users/create-group", {
resource_id: 3,
title: "Активные VIP",
status: 2,
});
Проверка участников
Сверка, кто ещё состоит в чате, но доступ уже не действует.
Объект проверки:
| Поле | Описание |
|---|---|
id | Идентификатор проверки |
resource | Группа: title, description |
status | Объект со значением: 0 черновик, 1 в очереди, 2 выполняется, 3 готово, 4 ошибка |
all_users | Сколько участников проверено |
kick | Сколько исключено |
error | Сколько ошибок |
created_time | Старт, ГГГГ-ММ-ДД ЧЧ:ММ |
finish_time | Финиш или - |
Список проверок
POST /v1/subscriber/check-users/index
| Поле | Обяз. |
|---|---|
resource_id | да |
Запустить
POST /v1/subscriber/check-users/start
| Поле | Обяз. |
|---|---|
resource_id | да |
data — "1". Проверка выполняется в фоне, статус смотрите в списке.
call("/v1/subscriber/check-users/start", resource_id=3)
checks = call("/v1/subscriber/check-users/index", resource_id=3)
await call("/v1/subscriber/check-users/start", { resource_id: 3 });
const checks = await call("/v1/subscriber/check-users/index", { resource_id: 3 });
Количество
POST /v1/subscriber/check-users/count
| Поле | Обяз. |
|---|---|
resource_id | да |
data — число строкой.
Удалить проверку
POST /v1/subscriber/check-users/delete
| Поле | Обяз. |
|---|---|
id | да, число или массив |
Сводка адресов
| Метод | Назначение |
|---|---|
POST /v1/subscriber/resource/index | Список групп |
POST /v1/subscriber/resource/view | Группа |
POST /v1/subscriber/resource/create | Создать группу |
POST /v1/subscriber/resource/update | Изменить группу |
POST /v1/subscriber/resource/change-status | Вкл/выкл группу |
POST /v1/subscriber/resource/delete | Удалить группу |
POST /v1/subscriber/item/index | Каналы и чаты |
POST /v1/subscriber/item/create | Добавить канал или чат |
POST /v1/subscriber/item/create-join | Группа и первый чат |
POST /v1/subscriber/item/update | Изменить канал или чат |
POST /v1/subscriber/item/delete | Удалить канал или чат |
POST /v1/subscriber/item/check | Бот — администратор? |
POST /v1/subscriber/tariff/index | Тарифы группы |
POST /v1/subscriber/tariff/view | Тариф |
POST /v1/subscriber/tariff/create | Создать тариф |
POST /v1/subscriber/tariff/update | Изменить тариф |
POST /v1/subscriber/tariff/change-status | Вкл/выкл тариф |
POST /v1/subscriber/tariff/currency | Валюта тарифа |
POST /v1/subscriber/tariff/delete | Удалить тариф |
POST /v1/subscriber/notice/index | Уведомления |
POST /v1/subscriber/notice/view | Уведомление |
POST /v1/subscriber/notice/create | Создать уведомление |
POST /v1/subscriber/notice/update | Изменить уведомление |
POST /v1/subscriber/notice/delete | Удалить уведомление |
POST /v1/subscriber/users/index | Покупки |
POST /v1/subscriber/users/count | Сколько покупок |
POST /v1/subscriber/users/bot-user-index | Покупки пользователя |
POST /v1/subscriber/users/bot-user-count | Сколько покупок у пользователя |
POST /v1/subscriber/users/view | Одна покупка |
POST /v1/subscriber/users/grant | Выдать доступ |
POST /v1/subscriber/users/success | Подтвердить оплату |
POST /v1/subscriber/users/invite | Отправить приглашение |
POST /v1/subscriber/users/generate-invite | Получить ссылку |
POST /v1/subscriber/users/remove-rebill | Выключить автопродление |
POST /v1/subscriber/users/edit-end-date | Дата окончания |
POST /v1/subscriber/users/mass-edit-end-date | Дата окончания у нескольких |
POST /v1/subscriber/users/edit-access-start | Дата начала |
POST /v1/subscriber/users/rebuild-notification | Пересчитать уведомления |
POST /v1/subscriber/users/delete | Удалить доступ |
POST /v1/subscriber/users/create-group | Сегмент покупателей |
POST /v1/subscriber/check-users/index | Проверки участников |
POST /v1/subscriber/check-users/start | Запустить проверку |
POST /v1/subscriber/check-users/count | Сколько проверок |
POST /v1/subscriber/check-users/delete | Удалить проверку |