Эндпоинты передачи
Передача бота (со всеми его кампаниями) или отдельной кампании другому аккаунту — в одной атомарной операции. Смотрите также: Руководство по передаче.
Как работает передача
Передача использует токен передачи — короткий буквенно-цифровой код каждого пользователя, отдельный от API-ключа. Он идентифицирует получателя, не раскрывая его Telegram ID или username. Отправитель получает токен передачи получателя вне системы (например, в личном сообщении), проверяет его для подтверждения возможности передачи, затем вызывает эндпоинт передачи.
Условия приёма проверяются перед перемещением данных:
- У получателя должна быть активная платная подписка.
- У получателя должно быть достаточно свободных слотов для кампаний, которые передаются.
Судьба лидов — каждый эндпоинт записи требует флага leads:
leads=1— все лиды, статистика и история переатрибутируются получателю. История сохраняется под новым владельцем.leads=0— все лиды передаваемых кампаний удаляются навсегда. Используйте это только если получатель должен начать с чистого листа.
Все операции записи выполняются в одной транзакции базы данных.
Получить свой токен передачи
GET /api/transfer/token.json
Возвращает ваш текущий токен передачи. Поделитесь им с тем, кто хочет передать вам бота или кампанию.
{ "status": "ok", "data": { "token": "xyz789abc…" } }Сбросить токен передачи
POST /api/transfer/token.json
Генерирует новый токен передачи. Старый токен перестаёт работать немедленно — любая передача, которую отправитель инициировал со старым токеном, завершится ошибкой.
{ "status": "ok", "data": { "token": "new_token_value…" } }Найти получателя
GET /api/transfer/resolve.json
Получает имя аккаунта по токену передачи и проверяет готовность к приёму. Вызывайте
перед transfer/bot или transfer/camp, чтобы убедиться в возможности передачи.
| Параметр | Описание |
|---|---|
token | Токен передачи получателя |
{
"status": "ok",
"data": {
"name": "Jane Doe",
"paid": true,
"slots": 12
}
}slots — количество свободных слотов для кампаний у получателя (-1 = безлимитно).
paid равен false, если подписка получателя истекла или он на бесплатном тарифе.
| Ошибка | Значение |
|---|---|
notfound | Аккаунт с этим токеном передачи не найден |
Передать бота
POST /api/transfer/bot.json
Передаёт бота и все его неудалённые кампании получателю.
| Параметр | Описание |
|---|---|
bot | ID бота (вы должны быть его владельцем) |
token | Токен передачи получателя |
leads | 1 — переатрибутировать лиды получателю; 0 — удалить их навсегда |
{ "status": "ok" }| Ошибка | Значение |
|---|---|
notfound | Токен передачи не соответствует ни одному аккаунту |
unpaid | Подписка получателя неактивна |
limit | У получателя недостаточно свободных слотов для кампаний |
Передать кампанию
POST /api/transfer/camp.json
Передаёт одну кампанию получателю. У получателя должен быть бот, являющийся администратором чата кампании — подходящий бот выбирается автоматически.
| Параметр | Описание |
|---|---|
camp | ID кампании (вы должны быть её владельцем) |
token | Токен передачи получателя |
leads | 1 — переатрибутировать лиды; 0 — удалить их навсегда |
{ "status": "ok" }| Ошибка | Значение |
|---|---|
notfound | Токен передачи не соответствует ни одному аккаунту |
unpaid | Подписка получателя неактивна |
limit | У получателя нет свободного слота для кампании |
nobot | У получателя нет бота, являющегося администратором чата этой кампании |