Admin API: партнёрские сети
Методы Admin API для партнёрских сетей: каталог шаблонов, список, создание, изменение и удаление сети.
Методы этой страницы работают с тем же списком, что раздел Сети в панели: отдают каталог шаблонов, создают, меняют и удаляют партнёрские сети. Всем методам нужен токен с доступом Полный доступ (full). Авторизация описана на странице Admin API: обзор и авторизация, формат запросов и общие коды ошибок — на странице Формат запросов, ответов и ошибок.
Объект сети
Список, создание и изменение возвращают сеть в одном виде.
| Поле | Тип | Описание |
|---|---|---|
id | строка, UUID | Идентификатор сети. Его же указывают в оффере в поле network_id |
name | строка | Название. Подставляется в макрос {affiliate_network_name} |
postback_template | строка или null | Параметры постбека. Начинаются с ? или &. Если null или пустая строка, адрес постбека сети совпадает с общим |
template_id | строка | Идентификатор шаблона из каталога. У сети, созданной без шаблона, — пустая строка |
template_version | целое число | Версия шаблона, с которой создана сеть. У сети, созданной без шаблона, — 0 |
offer_param | строка | Параметры для ссылки оффера, например sub1={subid}. Если не заданы — пустая строка |
От первого знака postback_template зависит адрес постбека сети: строка с ? заменяет стандартные параметры, строка с & дописывается к ним. Правила и примеры — в разделе Как собирается URL постбека. Готовый адрес методы не возвращают: он показан в разделе Сети, в колонке URL постбэка.
В теле ответа знак & внутри строк записан как &. Это допустимая запись JSON: после разбора получится &. В запросах пишите & как есть.
Каталог шаблонов
Получить каталог шаблонов сетей
GET /api/v1/affiliate-network-templatesВозвращает каталог шаблонов партнёрских сетей — 333 записи. Параметров нет.
Ответ — код 200 и объект:
| Поле | Тип | Описание |
|---|---|---|
version | целое число | Версия каталога |
items | массив | Шаблоны |
items[].id | строка | Идентификатор шаблона. Передаётся в template_id при создании сети |
items[].name | строка | Название сети |
items[].version | целое число | Версия шаблона. Передаётся в template_version |
items[].postback_template | строка | Параметры постбека |
items[].offer_param | строка | Параметры для ссылки оффера |
items[].note | строка | Примечание, например Замените REPLACE перед подключением. Может быть пустым |
Состав каталога и примечания разобраны на странице Каталог шаблонов источников и сетей.
Список сетей
Получить список сетей
GET /api/v1/affiliate-networksВозвращает все сети команды. Параметров нет, постраничной выдачи нет. Порядок — по дате создания, новые первыми.
Ответ — код 200 и массив объектов сети. Если сетей нет — [].
Метода для чтения одной сети нет: найдите её в списке по id.
Создание сети
Создать сеть
POST /api/v1/affiliate-networksСоздаёт сеть из шаблона каталога или со своими параметрами постбека.
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
name | строка | да | Название, до 200 байт: это 200 латинских символов или 100 кириллических. Строка из одних пробелов не принимается |
template_id | строка | нет | Идентификатор шаблона из каталога. Если задан, postback_template и offer_param берутся из шаблона, значения из запроса не учитываются |
template_version | целое число | с template_id | Версия шаблона из каталога. Должна совпадать с текущей |
postback_template | строка или null | нет | Параметры постбека для сети без шаблона. Первый знак — ? или &, длина до 16 000 байт, без переводов строк. Пустая строка допустима |
offer_param | строка | нет | Параметры для ссылки оффера для сети без шаблона, до 4096 байт |
Название из шаблона не подставляется: передавайте name и для сети из каталога.
Ответ — код 201 и объект сети.
Пример: сеть из шаблона. Идентификатор и версию возьмите из каталога.
curl -X POST https://panel.example.com/api/v1/affiliate-networks \
-H "Api-Key: <токен>" \
-H "Content-Type: application/json" \
-d '{"name":"Example Network","template_id":"kt-50e6398b4494","template_version":1}'{
"template_id": "kt-50e6398b4494",
"template_version": 1,
"offer_param": "sub1={subid}",
"id": "7b0d2c3e-5a41-4f8e-9c1d-2e6f8a9b0c1d",
"name": "Example Network",
"postback_template": "?payout={money}&status={action}&lead_status=0&sale_status=subscribe,rebill&ignore_status=unsubscribe&subid={sub1}"
}Пример: сеть со своими параметрами.
curl -X POST https://panel.example.com/api/v1/affiliate-networks \
-H "Api-Key: <токен>" \
-H "Content-Type: application/json" \
-d '{"name":"My Network","postback_template":"?subid={sub1}&status={status}&payout={amount}","offer_param":"sub1={subid}"}'Ошибки — код 422, code = validation:
| Сообщение | Причина |
|---|---|
name is required | Нет поля name, оно пустое, либо тело не разобрано: это не JSON-объект, оно больше 1 МиБ или у поля не тот тип, например template_version передан строкой |
Шаблон сети не найден или устарел | В каталоге нет шаблона с таким template_id и такой template_version, либо template_version не передан. Запросите каталог заново |
Некорректное название или параметры сети | name длиннее 200 байт или из одних пробелов, либо offer_param длиннее 4096 байт |
Постбек должен содержать параметры после ? или & | postback_template начинается с другого знака, длиннее 16 000 байт или содержит перевод строки |
Некорректные параметры постбека | В postback_template есть знак ; или знак %, за которым нет двух шестнадцатеричных цифр |
Изменение сети
Изменить сеть
PUT /api/v1/affiliate-networks/{id}Меняет название и параметры постбека сети. В панели сеть не редактируется: изменить её можно только этим методом.
Параметр пути id — идентификатор сети, UUID.
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
name | строка | да | Новое название. Пределы те же, что при создании |
postback_template | строка или null | нет | Новые параметры постбека. Правила те же, что при создании |
Метод записывает оба поля при каждом запросе. Чтобы изменить только название, возьмите текущий postback_template из списка сетей и передайте его вместе с новым name.
Запрос без postback_template стирает сохранённые параметры постбека: поле становится null, адрес постбека сети — общим.
Поля template_id, template_version и offer_param этим методом не меняются: в ответе вернутся значения, заданные при создании. Шаблон из каталога к готовой сети не применяется. Так у сети из каталога можно вписать свои значения вместо REPLACE в параметрах постбека, и параметры для ссылки оффера сохранятся.
Ответ — код 200 и объект сети. Новое название подставляется в макрос {affiliate_network_name} у офферов этой сети.
curl -X PUT https://panel.example.com/api/v1/affiliate-networks/7b0d2c3e-5a41-4f8e-9c1d-2e6f8a9b0c1d \
-H "Api-Key: <токен>" \
-H "Content-Type: application/json" \
-d '{"name":"Example Network CPA","postback_template":"?payout={money}&status={action}&lead_status=0&sale_status=subscribe,rebill&subid={sub1}"}'После смены postback_template меняется адрес постбека сети в разделе Сети. В кабинете партнёрской сети адрес остаётся прежним, пока вы не замените его сами — см. Вставка адреса в кабинет сети.
Ошибки:
| Код | code | Когда |
|---|---|---|
400 | bad_request | id — не UUID |
404 | not_found | Сети с таким id нет |
422 | validation | Те же сообщения, что при создании, кроме сообщения о шаблоне |
Удаление сети
Удалить сеть
DELETE /api/v1/affiliate-networks/{id}Удаляет сеть. Параметр пути id — идентификатор сети, UUID. Тела запроса нет. Сеть удаляется сразу и в корзину не попадает.
Ответ — код 204 без тела. Офферы, в которых сеть была выбрана, остаются и продолжают принимать трафик: поле network_id у них становится null, макрос {affiliate_network_name} — пустым. Постбеки по адресу, уже вписанному в кабинет сети, трекер принимает как раньше.
Ошибки:
| Код | code | Когда |
|---|---|---|
400 | bad_request | id — не UUID |
404 | not_found | Сети с таким id нет |
Сеть выбирают в оффере полем network_id — см. Admin API: офферы.