К основному содержимому

API Рекламодателей

Автор: Olga

Авторизация в API с помощью Bearer Token

Для авторизации в системе через API с использованием Bearer Token необходимо добавить в ваш запрос заголовок «Authorization» со значением «Bearer X», где «X» — ваш персональный токен. Токен доступен в личном кабинете рекламодателя в разделе «Профиль и настройки». Срок действия токена не ограничен. Токен можно сбросить через метод POST /api/users/token-reset.

Базовый URL:

https://partners.kadam.net/api/v1

Swagger-документация: https://partners.kadam.net/api-doc/#/ru
​ Общий формат ответа:

{ "success": true, "code": 0, "msg": {}, "data": { ... } }

При ошибке success = false, поле msg содержит описание ошибки.
​ Пагинация и сортировка (общие параметры для списков):

  • page — номер страницы, int (от 1)

  • perPage — количество элементов на странице, int (по умолчанию 20 или 50)

  • sort — объект вида {"поле": "asc"|"desc"}, доступные поля указаны для каждого метода

Профиль

Данные аккаунта

Для получения данных текущего аккаунта используется метод GET /me. Он возвращает ID аккаунта, баланс, валюту, дату регистрации и часовой пояс. Email и имя не передаются.

Пример запроса:

GET https://partners.kadam.net/api/v1/me
Authorization: Bearer YOUR_TOKEN

Баланс

Для быстрой проверки баланса (например, для уведомлений о низком балансе) используется метод GET /finances/balance. Он возвращает только баланс и валюту аккаунта.

Пример запроса:

GET https://partners.kadam.net/api/v1/finances/balance
Authorization: Bearer YOUR_TOKEN

Кампании

Список кампаний

Для получения списка кампаний используется метод POST /campaigns

Параметры

Значение

Дополнительные атрибуты

page

Номер страницы

int; опциональный параметр

perPage

Количество элементов на странице

int; опциональный параметр

sort

Сортировка. Допустимые поля: campaign, dateCreation, CPC, conversions, views, clicks, moneyOut, CPA, moneyIn, trafficback, dayMoneyLimit, dayClickLimit, ROI, CPM, CTR, CR, CPL, EPC, profit, rejects, holds

объект; опциональный параметр

filters.dateFrom

Начало периода статистики, формат YYYY-MM-DD

строка; обязательный параметр

filters.dateTo

Конец периода статистики, формат YYYY-MM-DD

строка; обязательный параметр

filters.timezone

Часовой пояс, смещение в часах от UTC

int; опциональный параметр

filters.searchQuery

Поиск по названию кампании

строка; опциональный параметр

filters.folderId

ID папки кампаний

int; опциональный параметр

filters.campaignId

ID кампании

int; опциональный параметр

filters.types

Массив типов кампаний: 10 — Native, 20 — Banner, 30 — Push, 40 — Popunder, 100 — In-Page Push

массив int; опциональный параметр

filters.statuses

Массив статусов: 0 — Paused, 10 — Active, 20 — Awaiting payment, 30 — Clicks limit, 40 — Day money limit, 45 — Group limit day money, 50 — Balance exceeded, 55 — Group limit total money, 60 — Conversions limit, 70 — Day money limit (user), 80 — Bid below minimum, 120 — Insufficient funds, 140 — Blocked, 200 — Moderation

массив int; опциональный параметр

filters.paymentModels

Массив моделей оплаты: 0 — CPC, 2 — CPM, 4 — CPA Target

массив int; опциональный параметр

filters.countries

Массив ID стран

массив int; опциональный параметр

filters.archive

Фильтр по архиву: 0 — активные, 1 — архив

int; опциональный параметр

Пример запроса:
​

POST https://partners.kadam.net/api/v1/campaigns
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "page": 1,
    "perPage": 50,
    "sort": {"dateCreation": "desc"},
    "filters": {
        "dateFrom": "2026-03-01",
        "dateTo": "2026-03-31",
        "timezone": 0,
        "types": [10, 30],
        "statuses": [10],
        "archive": 0
    }
}

Результат:
​

{ "success": true, "data": { "total": 124, "items": [ { "id": 789484, "name": "Campaign name", "type": 10, "status": 10, "paymentModel": 0, "dateCreation": "2026-03-15 12:00:00", "views": 12345, "clicks": 678, "conversions": 42, "moneyOut": 120.50, "moneyIn": 0, "CPC": 0.18, "CPM": 9.76, "CTR": 5.49, "CPA": 2.87, "ROI": 0 } ] } }

Получение кампании по ID

Для получения полных данных кампании используется метод GET /campaigns/{id}
Параметр в пути:

  • id — ID кампании, int; обязательный параметр

Пример запроса:
​

GET https://partners.kadam.net/api/v1/campaigns/789484
Authorization: Bearer YOUR_TOKEN

Результат возвращает все поля кампании в том же формате, который принимает PUT /campaigns/{id}/update. Удобно для редактирования: считать → изменить нужное поле → отправить обратно.

Создание кампании

Для создания кампании используется метод POST /campaigns/create
Content-Type: application/json Тело запроса зависит от типа кампании (поле type):

  • 10 — Native (тизер)

  • 20 — Banner

  • 30 — Push

  • 40 — Popunder

  • 100 — In-Page Push

Обязательные общие поля:

  • name — название кампании, строка

  • type — тип кампании, int

  • paymentModel — модель оплаты: 0=CPC, 2=CPM, 4=CPA Target

  • bids — объект ставок (структура зависит от типа и модели)

  • countries — массив ID стран

  • sites — настройки площадок (whitelist/blacklist)

  • limits — объект с лимитами (dayMoneyLimit, dayClickLimit и т. д.)

  • targeting — объект таргетингов (браузеры, ОС, устройства, города)

Для получения справочников (страны, категории, push-типы и т. д.), необходимых при создании, используется GET /campaigns/options?type={type}. Полные схемы по каждому формату см. в Swagger: https://partners.kadam.net/api-doc/#/Campaigns/post_campaigns_create

  • Banner — схема CampaignBannerRequest

  • Popunder — схема CampaignPopunderRequest

  • In-Page Push — схема CampaignInPagePushRequest

  • Push — схема CampaignPushRequest

  • Native / Teaser — схема CampaignTeaserRequest

Обновление кампании

Для обновления параметров кампании используется метод PUT /campaigns/{id}/update
​ ⚠ Важно: частичное обновление не поддерживается. В запросе нужно передать все поля (как при создании), иначе будет ошибка валидации. Типовой сценарий: GET /campaigns/{id} → изменить нужное поле → PUT /campaigns/{id}/update с полным телом. Полные схемы по форматам см. в Swagger: https://partners.kadam.net/api-doc/#/Campaigns/put_campaigns__id__update

Обновление ставки кампании

Для изменения ставок у одной кампании используется метод PUT /campaigns/{id}/bid
Content-Type: application/json

Параметры

Значение

Дополнительные атрибуты

bids

Объект ставок. Набор полей зависит от paymentModel и type кампании (CPC/CPM/CPA, гео-ставки и т. д.). Детали в Swagger, схема CampaignBids.

объект; обязательный параметр

Пример запроса:
​

PUT https://partners.kadam.net/api/v1/campaigns/789484/bid
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "bids": {
        "default": 0.05
    }
}

Массовое обновление ставок

Для изменения ставок у нескольких кампаний одновременно используется метод PUT /campaigns/bids

Параметры

Значение

Дополнительные атрибуты

campaignIds

Массив ID кампаний, для которых обновляются ставки

массив int; обязательный параметр

bids

Объект ставок (схема CampaignBids — см. Swagger)

объект; обязательный параметр

Пример запроса:
​

PUT https://partners.kadam.net/api/v1/campaigns/bids
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "campaignIds": [789484, 789485, 789486],
    "bids": {"default": 0.05}
}

Массовые действия над кампаниями

Для массового изменения статуса используются методы:

  • POST /campaigns/activate — активировать кампании

  • POST /campaigns/pause — поставить на паузу

  • POST /campaigns/archive — перенести в архив

Параметры

Значение

Дополнительные атрибуты

campaignIds

Массив ID кампаний

массив int; обязательный параметр

Пример запроса:
​

POST https://partners.kadam.net/api/v1/campaigns/activate
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"campaignIds": [789484, 789485]}

Справочники для создания кампаний

Для получения справочников (страны, категории, push-типы, модели оплаты и т. д.) используется метод GET /campaigns/options
Параметры (query):

  • type — тип кампании, int (10, 20, 30, 40, 100); обязательный параметр

  • pushType — подтип push-а (для type=30), int; опциональный параметр

Пример запроса:
​

GET https://partners.kadam.net/api/v1/campaigns/options?type=30
Authorization: Bearer YOUR_TOKEN

Восстановление, перемещение и удаление кампаний

Помимо активации, паузы и архивации, доступны следующие массовые методы:

  • POST /campaigns/restore — восстановить кампании из архива

  • POST /campaigns/move — перенести кампании в папку; помимо campaignIds передаётся folderId — ID папки, int; обязательный параметр

  • DELETE /campaigns — удалить кампании вместе с материалами. Удалить можно только кампании из архива: если в списке есть кампания не из архива, весь запрос отклоняется с ошибкой 422

campaignIds — массив ID кампаний, массив int; обязательный параметр.

Пример запроса:

POST https://partners.kadam.net/api/v1/campaigns/move
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"campaignIds": [789484, 789485], "folderId": 42}

Копирование кампании

Для создания копии кампании используется метод POST /campaigns/{id}/copy. Копируются таргетинги, лимиты и ставки; статистика и расход не копируются. Скопированные материалы всегда проходят модерацию заново.

  • name — название копии, строка; обязательный параметр

  • folderId — папка для копии, int; обязательный параметр

  • isPauseAfterModer — оставить копию на паузе после модерации, bool; обязательный параметр

  • mode — какие материалы копировать: all — все, active — только активные, строка; опциональный параметр

  • copyAutorules — копировать автоправила, bool; опциональный параметр

  • paymentModel — модель оплаты копии: 0 — CPC, 2 — CPM, 4 — CPA Target, int; опциональный параметр

  • targetCampaignType — формат копии при копировании между Push и In-Page Push: 30 — Push, 100 — In-Page Push, int; опциональный параметр

  • copyBids / bids — скопировать ставки исходной кампании или задать новые; опциональные параметры

Пример запроса:

POST https://partners.kadam.net/api/v1/campaigns/789484/copy
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"name": "Копия кампании", "folderId": 42, "isPauseAfterModer": true, "mode": "active"}

Проверка кампании перед созданием

Метод POST /campaigns/validate выполняет те же проверки, что и POST /campaigns/create, но ничего не создаёт. Тело запроса такое же, как при создании. Ответ 200 означает, что кампания будет принята в таком виде; ошибка 422 содержит список полей с ошибками.

Прогноз трафика

Метод POST /campaigns/forecast возвращает зависимость доступного объёма трафика от ставки для заданного таргетинга по данным вчерашнего аукциона. Используйте его перед созданием кампании или повышением ставки.

  • cpType — модель оплаты: 0 — CPC, 2 — CPM, int; обязательный параметр

  • type — тип кампании, int; опциональный параметр

  • campaignId — ID существующей кампании, настройки которой нужно использовать, int; опциональный параметр

  • regions, platformVersions, browsers, browserLanguages, categories, subAges, ssps — параметры таргетинга; опциональные параметры

Если вчера по заданному таргетингу было слишком мало трафика, в ответе вернётся пустая кривая и hasEnoughData: false. Это не ошибка и не означает, что трафика не будет.

Пример запроса:

POST https://partners.kadam.net/api/v1/campaigns/forecast
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"cpType": 0, "campaignId": 789484}

RSS-фид

Метод PUT /campaigns/{id}/rss задаёт RSS-фид, из которого Native-кампания импортирует креативы (для других форматов запрос вернёт ошибку 422).

  • link — адрес фида, строка. Чтобы остановить импорт, передайте пустую строку; уже импортированные креативы сохранятся

  • notRemove — сохранять креативы, которые пропали из фида (false — такие креативы архивируются при следующем импорте), bool; обязательный параметр

  • isPauseAfterModer — оставлять импортированные креативы на паузе после модерации, bool; обязательный параметр

Импорт выполняется по расписанию, поэтому успешный ответ означает, что фид сохранён, а не что креативы уже добавлены.

Easy Start

Метод PUT /campaigns/{id}/easy-start включает или выключает для кампании Easy Start — показ рекламы на отобранном наборе площадок вместо всего инвентаря. Параметр: enabled — bool; обязательный параметр.

Пример запроса:

PUT https://partners.kadam.net/api/v1/campaigns/789484/easy-start
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"enabled": true}

Справочники

Метод GET /dictionaries/{type} возвращает один справочник, необходимый для создания или изменения кампании. Доступные типы: campaign-types, browsers, platforms, devices, connection-types, categories, isps, conversion-templates, countries, regions, cities.

Дополнительные query-параметры: campaignType — тип кампании; countryId — страна (для регионов); regionId — регион (для городов); search — строка поиска; page, perPage — пагинация.

Пример запроса:

GET https://partners.kadam.net/api/v1/dictionaries/countries
Authorization: Bearer YOUR_TOKEN

Папки кампаний

Список папок

Для получения списка папок кампаний используется метод POST /campaigns/folders. Тело запроса может быть пустым ({}) либо содержать стандартные поля пагинации/сортировки. Пример запроса:
​

POST https://partners.kadam.net/api/v1/campaigns/folders
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{}

Создание папки

Для создания папки используется метод POST /campaigns/folders/create

Параметры

Значение

Дополнительные атрибуты

name

Название папки, до 50 символов

строка; обязательный параметр

Пример запроса:
​

POST https://partners.kadam.net/api/v1/campaigns/folders/create
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"name": "New folder"}

Настройки папки

Для управления лимитами и распределением бюджета папки используется метод PUT /campaigns/folders/{id}/settings
Параметр в пути: id — ID папки, int.

Параметры

Значение

Дополнительные атрибуты

limitsEnabled

Включены ли лимиты в папке

bool; обязательный параметр

groupDailyLimit

Дневной лимит, минимум 5

число (float); опциональный

groupTotalLimit

Общий лимит на группу

число (float); опциональный

groupSpendingEvenly

Равномерное распределение бюджета

bool; опциональный

Пример запроса:
​

PUT https://partners.kadam.net/api/v1/campaigns/folders/42/settings
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "limitsEnabled": true,
    "groupDailyLimit": 5.05,
    "groupTotalLimit": 10.10,
    "groupSpendingEvenly": false
}

Просмотр и изменение папки

Метод GET /campaigns/folders/{id} возвращает настройки папки. Метод PATCH /campaigns/folders/{id} изменяет название и лимиты папки: name, limitsEnabled, groupDailyLimit, groupTotalLimit, groupSpendingEvenly.

Пример запроса:

PATCH https://partners.kadam.net/api/v1/campaigns/folders/42
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"name": "Новое название папки"}

Массовые действия с папками

  • POST /campaigns/folders/activate — активировать кампании в папках

  • POST /campaigns/folders/pause — поставить кампании в папках на паузу

  • POST /campaigns/folders/archive — перенести папки в архив вместе с кампаниями

  • POST /campaigns/folders/restore — восстановить папки из архива вместе с кампаниями (принимаются только ID папок в архиве)

folderIds — массив ID папок, массив int; обязательный параметр.

Пример запроса:

POST https://partners.kadam.net/api/v1/campaigns/folders/pause
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"folderIds": [42, 43]}

Материалы (объявления / креативы)

Список материалов

Для получения списка материалов используется метод POST /materials

Параметры

Значение

Дополнительные атрибуты

page

Номер страницы

int; опциональный

perPage

Количество элементов на странице

int; опциональный

sort

Сортировка. Допустимые поля: stakes, views, clicks, CPC, moneyOut, conversions, CPA, moneyIn, profit, ROI, holds, rejects, CPL

объект; опциональный

filters.searchQuery

Поиск по материалу

строка; опциональный

filters.dateFrom / filters.dateTo

Период статистики, формат YYYY-MM-DD

строка; обязательные

filters.timezone

Часовой пояс, int

опциональный

filters.campaignId

ID кампании для фильтрации материалов

int; опциональный

filters.types

Массив типов материалов: 0 — Teaser (Native), 10 — Banner, 20 — Push, 30 — Clickunder (Popunder), 60 — Video, 90 — In-Page Push

массив int; опциональный

filters.statuses

Массив статусов: 0 — On Moderation, 5 — On Moderation 2, 10 — Active, 20 — Blocked, 30 — Not Paid, 40 — Low CTR, 50 — Blocked by day limit, 60 — Banner Block, 70 — Blocked by offer owner, 80 — Paused, 90 — Video is processing, 120 — Awaiting Payment

массив int; опциональный

filters.archive

0 — активные, 1 — архив

int; опциональный

Пример запроса:
​

POST https://partners.kadam.net/api/v1/materials
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "page": 1,
    "perPage": 50,
    "sort": {"views": "desc"},
    "filters": {
        "dateFrom": "2026-03-01",
        "dateTo": "2026-03-31",
        "timezone": 0,
        "campaignId": 789484,
        "statuses": [10]
    }
}

Получение материала по ID

Для получения данных материала используется метод GET /materials/{id}
Параметр в пути: id — ID материала, int. Пример запроса:
​

GET https://partners.kadam.net/api/v1/materials/123456
Authorization: Bearer YOUR_TOKEN

Создание материала

Для создания материала используется метод POST /campaigns/{id}/materials
Параметр в пути: id — ID кампании.
Content-Type: multipart/form-data (т. к. передаются файлы изображений). Тело зависит от типа материала. Общие поля:

  • image — основное изображение, file

  • rectangleImage — иконка/прямоугольная версия, file (для некоторых форматов)

  • title — заголовок, строка

  • text — описание, строка

  • url — ссылка перехода, строка

Полные схемы по форматам см. в Swagger: https://partners.kadam.net/api-doc/#/Materials/post_campaigns__id__materials

  • Banner — схема BannerCreateRequest

  • Push — схема PushCreateRequest

  • Native (Teaser) — схема NativeCreateRequest

  • In-Page Push — схема InPagePushCreateRequest

  • HTML Banner — схема HtmlBannerCreateRequest

Обновление материала

Для обновления материала используется метод PUT /campaigns/{id}/materials
Content-Type: application/json. Полные схемы по форматам см. в Swagger: https://partners.kadam.net/api-doc/#/Materials/put_campaigns__id__materials

  • Banner — BannerUpdateRequest

  • Push — PushUpdateRequest

  • Native — NativeUpdateRequest

  • In-Page Push — InPagePushUpdateRequest

  • HTML Banner — HtmlBannerUpdateRequest

Массовые действия над материалами

Для массового изменения статуса используются методы:

  • POST /materials/activate — активировать

  • POST /materials/pause — поставить на паузу

  • POST /materials/archive — перенести в архив

Параметры

Значение

Дополнительные атрибуты

adsIds

Массив ID материалов

массив int; обязательный параметр

Пример запроса:
​

POST https://partners.kadam.net/api/v1/materials/activate
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"adsIds": [100, 200, 300]}

Справочник размеров баннеров

Для получения словаря размеров при создании баннеров используется метод GET /materials/options. Пример запроса:
​

GET https://partners.kadam.net/api/v1/materials/options
Authorization: Bearer YOUR_TOKEN

Восстановление и удаление материалов

  • POST /materials/restore — восстановить материалы из архива. Восстановленный материал заново отправляется на модерацию. Материалы кампании, которая находится в архиве, восстановить нельзя — запрос отклоняется с ошибкой 422

  • DELETE /materials — удалить материалы. Удалить можно только материалы из архива, иначе весь запрос отклоняется с ошибкой 422

adsIds — массив ID материалов, массив int; обязательный параметр.

Копирование материалов

Метод POST /materials/copy копирует каждый указанный материал в каждую указанную кампанию (2 материала и 2 кампании дают 4 копии). Целевые кампании должны быть того же формата, что и исходная. Копии создаются на паузе и проходят модерацию.

  • adsIds — массив ID материалов; обязательный параметр

  • targets — целевые кампании: campaignId и url — ссылка перехода для копий (должна совпадать с доменом кампании); обязательный параметр

  • isPauseAfterModer — оставить копии на паузе после модерации, bool; опциональный параметр (по умолчанию false)

Пример запроса:

POST https://partners.kadam.net/api/v1/materials/copy
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"adsIds": [100, 200], "targets": [{"campaignId": 789485, "url": "https://example.com/landing"}]}

Перемещение материалов

Метод POST /materials/move переносит материалы в другую кампанию того же формата и с той же моделью оплаты. Перенесённые материалы теряют собственные ставки по странам, ставятся на паузу и заново проходят модерацию.

  • adsIds — массив ID материалов; обязательный параметр

  • campaignId — ID целевой кампании, int; обязательный параметр

  • url — ссылка перехода для перенесённых материалов (должна совпадать с доменом целевой кампании), строка; обязательный параметр

Ставки материалов по странам

Метод PUT /materials/bids задаёт собственные ставки материалов по странам. Список полностью заменяет ставки материалов: для стран, которых нет в списке, используется ставка кампании. Все материалы должны принадлежать одной кампании, а страны — входить в её таргетинг. Недоступно для кампаний CPA Target.

  • adsIds — массив ID материалов; обязательный параметр

  • bids — массив объектов: bid — ставка, countries — массив ID стран; обязательный параметр

Массовая загрузка материалов

Массовая загрузка выполняется в два шага, каждый из которых обрабатывается асинхронно:

  • POST /materials/bulk/upload (multipart/form-data) — загрузить изображения или ZIP-архивы с изображениями и проверить их на соответствие требованиям формата целевых кампаний. Параметры: campaignIds[] — ID кампаний, files[] или zip[] — файлы

  • GET /materials/bulk/{jobId} — проверить статус задачи. Когда статус станет done, возьмите из ответа загруженные изображения (stagedId)

  • POST /materials/bulk — создать материалы из загруженных изображений. Параметры: campaignIds — ID кампаний; items — строки пакета (stagedId, title, text, name, path и др.); common — общие настройки для всех строк. Каждая строка превращается в отдельный материал в каждой указанной кампании

  • GET /materials/bulk/{jobId} — проверить результат. Статус done означает, что обработка завершена; проверьте счётчики, так как отдельные строки могут завершиться ошибкой

Тестовая конверсия

Метод GET /materials/{id}/test-conversion возвращает ссылку для тестового клика по материалу: клик записывает click_id, подставляет макросы и перенаправляет на лендинг так же, как при реальном показе. Это позволяет проверить настройку постбэка от начала до конца. Для форматов, которые отображаются во фрейме, также возвращается previewUrl.

Пример запроса:

GET https://partners.kadam.net/api/v1/materials/123456/test-conversion
Authorization: Bearer YOUR_TOKEN

Аудитории

Список аудиторий

Для получения списка аудиторий используется метод POST /audiences

Параметры

Значение

Дополнительные атрибуты

page

Номер страницы

int; опциональный

perPage

Количество элементов на странице (по умолчанию 20)

int; опциональный

sort

Сортировка. Допустимые поля: audienceId, audienceName, dateCreated, expireDays, usersCount

объект; опциональный

filters.searchQuery

Поиск по названию аудитории

строка; опциональный

tableFilters

Массив расширенных фильтров: [{"column": "audienceId", "include": [...], "exclude": [...], "childField": "listID"}]

массив объектов; опциональный

Пример запроса:
​

POST https://partners.kadam.net/api/v1/audiences
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "page": 1,
    "perPage": 20,
    "sort": {"usersCount": "desc"},
    "filters": {"searchQuery": "my audience"}
}

Справочник для создания аудиторий

Для получения списка кампаний и аудиторий для S2S-связки используется метод GET /audiences/create-options. Параметры (query):

  • searchQuery — строка поиска, опциональный

Получение аудитории по ID

Для получения данных аудитории используется метод GET /audiences/{audiencesId}
Параметр в пути: audiencesId — ID аудитории, int.
Формат ответа зависит от типа аудитории (stat / pixel / S2S).

Создание аудитории

Для создания аудитории используется метод POST /audiences/create
Content-Type: application/json Тип задаётся полем type:

  • audience — стандартная статистическая аудитория (требует campaignsIds)

  • audience_code — pixel-аудитория (возвращает код трекинга)

  • audience_s2s — S2S-аудитория (Postback-интеграция)

Пример (стандартная аудитория):
​

POST https://partners.kadam.net/api/v1/audiences/create
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "type": "audience",
    "name": "My audience",
    "expireDays": 1,
    "campaignsIds": [789484, 789485],
    "hasClicks": true,
    "hasConversions": false,
    "hasHolds": false,
    "hasRejects": false,
    "usersIds": null
}

Хотя бы одно из полей hasClicks / hasConversions / hasHolds / hasRejects должно быть true.
​ usersIds — массив ID пользователей для шаринга аудитории. Пример (pixel-аудитория):
​

POST https://partners.kadam.net/api/v1/audiences/create
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "type": "audience_code",
    "name": "My code audience",
    "expireDays": 1,
    "extAudienceId": 123,
    "usersIds": null
}

Полные схемы (AudienceStandardRequest, AudienceCodeRequest, AudienceS2SRequest) — в Swagger: https://partners.kadam.net/api-doc/#/Audiences/post_audiences_create

Обновление аудитории

Для обновления аудитории используется метод PUT /audiences/{id}
Параметр в пути: id — ID аудитории, int.
Тело запроса аналогично созданию (без поля type; тип меняется только пересозданием). Детали в Swagger.

Удаление аудитории

Для удаления аудитории используется метод DELETE /audiences/{id}
Параметр в пути: id — ID аудитории, int. Пример запроса:
​

DELETE https://partners.kadam.net/api/v1/audiences/123
Authorization: Bearer YOUR_TOKEN

Параметры pixel- и S2S-аудитории

Методы GET /audiences/{id}/params и PUT /audiences/{id}/params получают и сохраняют фиксированные значения параметров, которые подставляются в код пикселя или S2S: event, paramStr, paramStr2, paramInt, paramInt2. Работают только для pixel- и S2S-аудиторий и только для владельца аудитории. PUT заменяет все значения: поле, которое не передано или передано как null, сбрасывается.

Проверка аудитории перед созданием

Метод POST /audiences/validate проверяет тело запроса так же, как POST /audiences/create, но ничего не создаёт. Принадлежность указанных в запросе кампаний и аудиторий при этом не проверяется, поэтому запрос, прошедший проверку, всё ещё может быть отклонён при создании.

Конструктор отчётов

Список сохранённых отчётов

Для получения списка сохранённых отчётов используется метод POST /custom-reports
Тело запроса может быть пустым ({}).

Получение данных отчёта

Для получения данных отчёта используется метод POST /custom-reports/data — основной метод для построения статистики.

Параметры

Значение

Дополнительные атрибуты

groups

Массив группировок (см. ниже)

массив строк; обязательный

metrics

Массив метрик (см. ниже)

массив строк; обязательный

filters.dateFrom / filters.dateTo

Период, формат YYYY-MM-DD. Можно заменить на filters.period: today, yesterday, 7days, 14days, month, prevMonth

строка; обязательный

filters.timezone

Часовой пояс (смещение от UTC)

int; опциональный

filters.filters

Массив объектов: [{"id": "advertiser_campaign", "type": "list", "include": [id1, id2]}, ...]. Типы фильтров: list, range, value, value_like, value_combined

массив объектов; опциональный

sort

Сортировка: {"time_day": "desc"}

объект; опциональный

compare

Период сравнения (если используется)

массив; опциональный

id / name

Сохранить отчёт в список под указанным именем

int / строка; опциональные

Группировки (groups):

  • Время: time_hour, time_day, time_week, time_month

  • Трафик: traffic_format, traffic_pushType, traffic_region, traffic_browser, traffic_platform, traffic_platformVersion, traffic_device, traffic_deviceType, traffic_subsAge, traffic_pageCategory, traffic_macros, traffic_isp, traffic_city, traffic_subdivision, traffic_blockSize, traffic_clickability, traffic_browserLanguage, traffic_connectionType

  • Рекламодатель: advertiser_paymentModel, advertiser_campaign, advertiser_campaignName, advertiser_ad, advertiser_campaignStatus, advertiser_adStatus, advertiser_campaignGroup, advertiser_dailyBudget, advertiser_totalBudget, advertiser_groupDailyBudget, advertiser_groupTotalBudget

  • Креативы: adv_image, adv_title, adv_text, adv_url

Метрики (metrics):

  • Трафик: traffic_visits, traffic_views, traffic_clicks, traffic_trafficback

  • Конверсии: conversion_conversions, conversion_rejects, conversion_holds, conversion_cr, conversion_pvConversions, conversion_pvConversionsCPA, conversion_pcConversions, conversion_pcConversionsCPA

  • Рекламодатель: advertiser_cpm, advertiser_cpc, advertiser_ctr, advertiser_cpa, advertiser_income, advertiser_ROI, advertiser_cpl, advertiser_epl, advertiser_epc

  • Финансы: finance_moneyOut (потрачено)

Пример запроса:
​

POST https://partners.kadam.net/api/v1/custom-reports/data
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "groups": ["time_day"],
    "metrics": ["finance_moneyOut", "conversion_conversions", "conversion_holds"],
    "filters": {
        "dateFrom": "2026-03-01",
        "dateTo": "2026-03-31",
        "timezone": 0,
        "filters": [
            {"id": "advertiser_campaign", "type": "list", "include": [789484]},
            {"id": "conversion_conversions", "type": "range", "range": {"from": "100", "to": null}}
        ]
    },
    "sort": {"time_day": "desc"},
    "compare": null
}

Примечание: отчёт возвращает только агрегированные данные. Максимальная гранулярность — по часу (time_hour). Сырые посещения/просмотры по remoteUserId — только через POST /stats/conversions (для конверсий).

Справочник значений фильтра

Для получения допустимых значений для конкретного фильтра используется метод POST /custom-reports/filter-data

Параметры

Значение

Дополнительные атрибуты

id

Идентификатор фильтра (из OPTIONS /api/v1/custom-reports)

строка; обязательный параметр

searchQuery

Строка поиска

строка; опциональный

Список всех группировок, метрик и фильтров

Для получения полного списка доступных группировок, метрик и фильтров используется OPTIONS /custom-reports.

Статистика

Статистика по конверсиям (сырые события)

Для получения сырых данных по конверсиям (одна строка = одна конверсия) используется метод POST /stats/conversions.
Это единственный метод, возвращающий событийные данные с remoteUserId. ⚠ Эндпоинт называется /stats/conversions, НЕ /stats/postback — не путать.

Параметры

Значение

Дополнительные атрибуты

page

Номер страницы

int; опциональный

perPage

Количество элементов на странице (до 1 000 000 для bulk-экспорта)

int; опциональный

sort

Сортировка. Допустимые поля: conversionType, campaign, campaignFolder, adId, conversionTime, auctionTime, conversionDelay, remoteUserId, audience, cpaCost, macrosId

объект; опциональный

filters.dateFrom / dateTo

Период (до 5 лет), формат YYYY-MM-DD

строка; обязательные

filters.timezone

Часовой пояс

int; опциональный

filters.conversionTypes

Массив типов конверсий: 1 — Approve (postback OK), 2 — Postback error, 3 — Test, 4 — Reject, 5 — Hold, 6 — PV (post-view), 7 — PC (post-click)

массив int; опциональный

filters.campaignIds

Массив ID кампаний

массив int; опциональный

filters.adsIds

Массив ID материалов

массив int; опциональный

filters.folderIds

Массив ID папок

массив int; опциональный

filters.audIds

Массив ID аудиторий

массив int; опциональный

Пример запроса:
​

POST https://partners.kadam.net/api/v1/stats/conversions
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "page": 1,
    "perPage": 100,
    "sort": {"conversionTime": "desc"},
    "filters": {
        "dateFrom": "2026-03-01",
        "dateTo": "2026-03-31",
        "timezone": 0,
        "conversionTypes": [1, 6, 7],
        "campaignIds": [789484]
    }
}

Поля ответа по строке конверсии:
​ conversionType, campaign (name + ID), campaignFolder, adId, conversionTime, auctionTime, conversionDelay, remoteUserId, audience, cpaCost, macrosId, clickId, url, status, callbackUri.

Статистика по площадкам

Для получения агрегированной статистики по площадкам (macrosID, PID) используется метод POST /stats/sites.

Параметры

Значение

Дополнительные атрибуты

page

Номер страницы

int; опциональный

perPage

Количество элементов на странице (максимум 500 за запрос)

int; опциональный

filters.sort

Сортировка. Допустимые поля: macrosId, isInBlackList, views, clicks, holds, conversions, rejects, CTR, CPM, CPC, spending, income, earnings, ROI, CPA, bid

объект; опциональный

filters.searchQuery

Поиск по ID площадки

строка; опциональный

filters.dateFrom / dateTo

Период, формат YYYY-MM-DD

строка; обязательные

filters.timezone

Часовой пояс

int; опциональный

filters.campaignIds

Массив ID кампаний

массив int; опциональный

filters.adIds

Массив ID материалов

массив int; опциональный

filters.view

Представление: null — все, "blacklist" — только ЧС, "bids" — только с индивидуальными ставками

строка; опциональный

Пример запроса:
​

POST https://partners.kadam.net/api/v1/stats/sites
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "page": 1,
    "perPage": 50,
    "filters": {
        "sort": {"views": "desc"},
        "dateFrom": "2026-03-01",
        "dateTo": "2026-03-31",
        "timezone": 0,
        "campaignIds": [789484],
        "view": null
    }
}

Массовое обновление ставок по площадкам

Для массового изменения ставок по площадкам используется метод PUT /stats/sites/bids

Параметры

Значение

Дополнительные атрибуты

campaignIds

Массив ID кампаний

массив int; обязательный

bids

Массив объектов со ставками по площадкам: [{"placementId": 123, "bid": 0.05}, ...] (детали схемы — в Swagger)

массив; обязательный

Блокировка и разблокировка площадок

Метод POST /stats/sites/block прекращает закупку указанных площадок в указанных кампаниях (добавляет их в чёрный список кампании). Метод POST /stats/sites/unblock убирает их из чёрного списка. Блокировка действует на уровне кампании: площадка, заблокированная в одной кампании, продолжает работать в других. Повторные вызовы безопасны.

  • campaignIds — массив ID кампаний; обязательный параметр

  • zones — массив ID площадок (macrosId из POST /stats/sites), до 500 за запрос; количество пар «кампания × площадка» не должно превышать 2000; обязательный параметр

Пример запроса:

POST https://partners.kadam.net/api/v1/stats/sites/block
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"campaignIds": [789484], "zones": [123, 456]}

Финансы

Список финансовых операций

Для получения списка финансовых операций используется метод POST /finances/operations

Параметры

Значение

Дополнительные атрибуты

page

Номер страницы

int; опциональный

perPage

Количество элементов на странице

int; опциональный

sort

Сортировка. Допустимые поля: date, money

объект; опциональный

filters.dateFrom / dateTo

Период, формат YYYY-MM-DD

строка; обязательные

filters.type

Тип операции: 1 — Impression operations (списание за показы), 2 — Deposit (пополнение), 3 — Admin deposit, 4 — Withdrawal, 5 — Admin withdrawal

int; опциональный

Пример запроса:
​

POST https://partners.kadam.net/api/v1/finances/operations
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
    "page": 1,
    "perPage": 20,
    "sort": {"date": "desc"},
    "filters": {
        "dateFrom": "2026-03-01",
        "dateTo": "2026-03-31",
        "type": 2
    }
}

Дневной лимит аккаунта

Метод GET /finances/day-money-limit возвращает дневной лимит расходов аккаунта, его минимально допустимое значение и валюту. Метод PUT /finances/day-money-limit устанавливает лимит: limit — лимит в валюте аккаунта, число; обязательный параметр. Значение 0 снимает лимит. При повышении или снятии лимита остановленные им кампании снова активируются.

Пример запроса:

PUT https://partners.kadam.net/api/v1/finances/day-money-limit
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"limit": 100}

Платёжные системы

Метод GET /finances/payment-systems возвращает платёжные системы, доступные для пополнения этого аккаунта, с комиссией, минимальной и максимальной суммой для каждой валюты. До первого пополнения возвращается минимальная сумма первого депозита. Список зависит от аккаунта, поэтому разные рекламодатели могут получать разные ответы.

Пример запроса:

GET https://partners.kadam.net/api/v1/finances/payment-systems
Authorization: Bearer YOUR_TOKEN

Общие правила

Сортировка

Сортировка задаётся объектом {"поле": "asc"|"desc"}. Допустимые поля указаны в описании каждого метода. Пример:
​

"sort": {"views": "desc"}

По нескольким полям:

"sort": {"views": "desc", "clicks": "asc"}

Фильтрация (конструктор отчётов)

В POST /custom-reports/data фильтры описываются массивом объектов в filters.filters:

  • list — фильтр по списку: {"id": "advertiser_campaign", "type": "list", "include": [id1, id2], "exclude": []}

  • range — диапазон значений: {"id": "conversion_conversions", "type": "range", "range": {"from": "100", "to": null}}

  • value — точное значение

  • value_like — подстрока

  • value_combined — комбинированный

Ошибки

При ошибке ответ содержит "success": false и описание в msg:

{ "success": false, "code": 400, "msg": { "field": ["Error description"] } }

Нашли ответ на свой вопрос?