Профиль и трекер

Просмотр данных аккаунта, ротация API-ключа, настройка глобальных шаблонов постбэков, выбор языка интерфейса, уведомлений и подключение трекера AlterCPA Lite.

Все ответы — HTTP 200 с Content-Type: application/json; результат определяется полем status, а не HTTP-кодом. Успех возвращается как {"status":"ok", …} с полями на верхнем уровне (без обёртки data), ошибка — как {"status":"error","error":"<код>"}. Метки времени — это целые числа Unix (секунды), 0 если значение не задано. Общие коды ошибок описаны в разделе Авторизация и соглашения.

Все эндпоинты на этой странице работают по API-ключу и не требуют отдельной подписки.


Данные профиля

GET /api/profile/info.json

Полная карточка аккаунта: идентификация, API-ключ, даты создания и окончания подписки, разрешённый тариф с лимитами и флагами возможностей, текущее использование, пять глобальных шаблонов URL постбэков и настройки уведомлений.

{
  "status": "ok",
  "id": 42,
  "login": "johndoe",
  "name": "John Doe",
  "lang": "en",
  "api_key": "d3adb33fcafe1234567890abcdef0123456789ab",
  "created": 1751328000,
  "paid_until": 1782950400,
  "active": true,
  "tariff": {
    "id": 2,
    "code": "cat",
    "name": "Котик",
    "campaigns": 15,
    "broadcasts": true,
    "broadcasts_day": 1350,
    "screens": true,
    "crm": false,
    "operators": 0
  },
  "usage": {
    "campaigns": 3
  },
  "postbacks": {
    "wait": "",
    "hold": "",
    "approve": "https://www.altercpa.red/postbacks/abc?click={click}&uid={lead}&name={username}&status=approve",
    "cancel": "https://www.altercpa.red/postbacks/abc?click={click}&uid={lead}&name={username}&status=cancel",
    "trash": "https://www.altercpa.red/postbacks/abc?click={click}&uid={lead}&name={username}&status=trash"
  },
  "notify": {
    "tariff": true,
    "leads": true
  }
}

created и paid_until — Unix-время (0, если оплат не было). activetrue, когда подписка оплачена и ещё не истекла.

В объекте tariff: campaigns — лимит кампаний (-1 означает безлимит), broadcasts — доступны ли рассылки, broadcasts_day — лимит ручных рассылок в сутки, screens — доступны ли многоэкранные приветствия, crm — доступен ли CRM, operators — лимит операторов CRM.

usage.campaigns — количество неудалённых кампаний. В объекте postbacks пустое поле означает, что постбэк для этого события глобально отключён. notify.tariff — включены ли предупреждения об окончании тарифа, notify.leads — глобальный переключатель уведомлений о лидах.

ОшибкаЗначение
dbОшибка базы данных при чтении профиля

Сброс API-ключа

POST /api/profile/apikey.json

Генерирует новый постоянный публичный API-ключ. Старый ключ перестаёт работать немедленно. Тело запроса не требуется.

{ "status": "ok", "api_key": "9f8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c" }

Поле api_key содержит «голый» 40-символьный токен (без префикса {user_id}-). Для авторизации к нему добавляется ваш ID: 42-9f8e7d6c….

ОшибкаЗначение
dbОшибка базы данных при обновлении ключа

Настройка глобальных постбэков

POST /api/profile/postbacks.json

Устанавливает пять глобальных шаблонов URL постбэков, которые кампании используют по умолчанию. Частичное обновление — записываются только переданные поля; пропущенное поле не изменяется. Передайте пустую строку, чтобы очистить шаблон. Если не передано ни одного поля — это безопасная пустая операция, возвращающая {"status":"ok"}.

ПараметрОписание
waitШаблон URL для события wait (открыта ссылка бота)
holdШаблон URL для события hold (отправлена заявка на вступление)
approveШаблон URL для события approve (вступил или заявка одобрена)
cancelШаблон URL для события cancel (покинул чат добровольно, в пределах окна)
trashШаблон URL для события trash (кик или бан, в пределах окна)

Доступные {макросы} в шаблонах — в разделе Интеграция с трекером.

{ "status": "ok" }
ОшибкаЗначение
dbОшибка базы данных при обновлении шаблонов

Настройка уведомлений

POST /api/profile/notify.json

Устанавливает настройки уведомлений. Частичное обновление — пропущенные поля не изменяются.

ПараметрОписание
tariffbool: true = получать предупреждения об окончании тарифа. Уведомление об оплате отправляется всегда.
leadsbool: true = глобальный переключатель уведомлений о лидах из всех кампаний.

Булевы значения принимаются как 1/true/yes/on (иначе — выключено).

{ "status": "ok" }
ОшибкаЗначение
dbОшибка базы данных при обновлении настроек

Выбор языка

POST /api/profile/lang.json

Устанавливает язык интерфейса. Изменение применяется немедленно.

ПараметрОбязательныйОписание
langРовно en или ru; любое другое значение — ошибка func
{ "status": "ok", "lang": "ru" }
ОшибкаЗначение
funclang не равен en или ru
dbОшибка базы данных при обновлении

Статус интеграции с трекером

GET /api/profile/tracker.json

Возвращает статус подключения трекера. Сохранённый ключ трекера никогда не возвращается.

{ "status": "ok", "connected": true, "domain": "www.altercpa.red" }

connectedtrue, если домен трекера задан. domain — пустая строка, когда трекер не подключён.

ОшибкаЗначение
dbОшибка базы данных при чтении статуса

Подключение / отключение трекера

POST /api/profile/tracker.json

Подключает (или переподключает) либо отключает трекер AlterCPA Lite. Полная инструкция — в разделе Интеграция с AlterCPA Lite.

Подключение: передайте domain + key. Сервис проверяет учётные данные, обращаясь к собственному эндпоинту трекера GET /api/tracker/status.json на указанном домене (этот эндпоинт принадлежит вашему трекеру, а не нашему API), получает токен постбэков и автоматически заполняет все пять глобальных шаблонов постбэков.

Отключение: передайте domain="". Очищает домен и ключ трекера; шаблоны постбэков сохраняются и продолжают отправляться, пока вы не отредактируете или не очистите их вручную.

ПараметрОбязательныйОписание
domainДомен трекера, например www.altercpa.red. Завершающие / обрезаются. Не должен содержать /, ? или # (иначе func). Пустая строка — отключение.
keyAPI-ключ трекера (формат {user_id}-{user_api} на стороне трекера). Обязателен при подключении (непустом домене); пустой ключ при непустом домене — ошибка func.

Подключение прошло успешно:

{
  "status": "ok",
  "connected": true,
  "domain": "www.altercpa.red",
  "postback_sample": "https://www.altercpa.red/postbacks/abc?click={click}&uid={lead}&name={username}&status=approve"
}

postback_sample — это сгенерированный шаблон постбэка для события approve (показывается на экране профиля как пример сохранённого URL).

Отключение прошло успешно:

{ "status": "ok", "connected": false }

Если проверочный запрос к трекеру не удался (домен недоступен, неверные учётные данные или пустой токен), сервис возвращает успешный конверт с полем error, а не стандартную ошибку — поле status остаётся ok:

{ "status": "ok", "error": "connect" }
ОшибкаЗначение
funcДомен содержит /, ? или #, либо при подключении не передан key
busyПревышен лимит проверочных запросов (15 в минуту на пользователя)
dbОшибка базы данных при сохранении настроек трекера

Кроме того, при неудачной проверке трекера возвращается {"status":"ok","error":"connect"} (см. выше) — это не стандартный конверт ошибки.