Эндпоинты передачи

Передача бота (со всеми его кампаниями) или отдельной кампании другому аккаунту — в одной атомарной операции. Смотрите также: Руководство по передаче.


Как работает передача

Передача использует токен передачи — короткий буквенно-цифровой код каждого пользователя, отдельный от 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

Передаёт бота и все его неудалённые кампании получателю.

ПараметрОписание
botID бота (вы должны быть его владельцем)
tokenТокен передачи получателя
leads1 — переатрибутировать лиды получателю; 0 — удалить их навсегда
{ "status": "ok" }
ОшибкаЗначение
notfoundТокен передачи не соответствует ни одному аккаунту
unpaidПодписка получателя неактивна
limitУ получателя недостаточно свободных слотов для кампаний

Передать кампанию

POST /api/transfer/camp.json

Передаёт одну кампанию получателю. У получателя должен быть бот, являющийся администратором чата кампании — подходящий бот выбирается автоматически.

ПараметрОписание
campID кампании (вы должны быть её владельцем)
tokenТокен передачи получателя
leads1 — переатрибутировать лиды; 0 — удалить их навсегда
{ "status": "ok" }
ОшибкаЗначение
notfoundТокен передачи не соответствует ни одному аккаунту
unpaidПодписка получателя неактивна
limitУ получателя нет свободного слота для кампании
nobotУ получателя нет бота, являющегося администратором чата этой кампании