API для паблишеров
Contents
API авторизация с помощью Bearer Token
Для авторизации в паблишерском API используется Bearer Token. В запрос добавляется заголовок "Authorization" со значением "Bearer X", где "X" — ваш персональный токен. Получить токен можно у вашего менеджера; в личном кабинете он доступен в разделе "Профиль и настройки" ("Reset Token" — для сброса). Срок действия токена не ограничен.
Базовый URL:https://pub.kadam.net/api
Swagger документация: https://pub.kadam.net/api-doc/#/ru
Через API доступны: Сайты (Sources), Блоки (Places), Конструктор отчётов (CustomReports), AdSpyGlass. Финансы, выплаты, кошельки, уведомления и
рефералы — только через личный кабинет (session-based).
Терминология:
- Source (сайт) — areaID, в API обозначается как
webmaster_source - Place (блок / рекламное место) — blockID, в API обозначается как
webmaster_block
Сайты (Sources)
Список сайтов
Для получения списка сайтов с краткой статистикой используется метод POST /sources/sources-table
Данные аналогичны странице https://pub.kadam.net/platforms
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| page | Номер страницы (от 1) | int; опциональный (по умолчанию 1) |
| perPage | Количество элементов на странице | int; опциональный (по умолчанию 20) |
| sort | Сортировка. Ключ — столбец, значение — "asc" / "desc" | объект; опциональный |
| filters.dateFrom | Начало периода, формат YYYY-MM-DD (по умолчанию сегодня − 7 дней) | строка; опциональный |
| filters.dateTo | Конец периода, формат YYYY-MM-DD (по умолчанию сегодня) | строка; опциональный |
| filters.archive | 0 — не в архиве, 1 — в архиве | int; опциональный (по умолчанию 0) |
| filters.timezone | Часовой пояс, от -12 до 12. Если не передан — берётся таймзона из настроек аккаунта | int; опциональный |
| tableFilters | Массив фильтров по столбцам. Каждый элемент: {"column": "...", "childField": "...", "value": "...", "compareType": 0..4, "include": [...], "exclude": [...]}. compareType: 0 — "=", 1 — ">", 2 — "<", 3 — ">=", 4 — "<=". | массив объектов; опциональный |
Пример запроса:
POST https://pub.kadam.net/api/sources/sources-table
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"page": 1,
"perPage": 20,
"sort": {"dateCreated": "desc"},
"filters": {
"dateFrom": "2026-03-01",
"dateTo": "2026-03-31",
"archive": 0,
},
"timezone": 0
"tableFilters": []
}
Создание сайта
Для создания сайта (первый этап) используется метод PUT /sources
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| name | Название сайта | строка; обязательный |
| url | URL сайта | строка; обязательный |
| state | При создании всегда "oninit" | строка; обязательный |
Пример запроса:
PUT https://pub.kadam.net/api/sources
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"name": "My Site",
"url": "https://example.com",
"state": "oninit"
}
Получение информации о сайте
Для получения всех настроек сайта используется метод GET /sources/{id}
Параметр в пути: id — ID сайта (areaID), int.
Пример запроса:
GET https://pub.kadam.net/api/sources/12345 Authorization: Bearer YOUR_TOKEN
Обновление сайта
Для добавления данных к сайту на следующих этапах создания используется метод PUT /sources/{id}
Параметр в пути: id — ID сайта, int.
Тело запроса — поля сайта, которые требуется обновить (набор зависит от этапа). Полную схему см. в Swagger:
https://pub.kadam.net/api-doc/#/sources/put_sources__id_
Массовые действия над сайтом
Для изменения состояния сайта используются методы:
- POST /sources/{id}/activate — активировать сайт
- POST /sources/{id}/deactivate — приостановить сайт
- POST /sources/archive/{id} — переместить в архив
- POST /sources/un-archive/{id} — восстановить из архива
Параметр в пути: id — ID сайта, int. Тело запроса не требуется.
Пример запроса:
POST https://pub.kadam.net/api/sources/12345/activate Authorization: Bearer YOUR_TOKEN
Блоки (Places)
Список блоков сайта
Для получения списка блоков на сайте с краткой статистикой используется метод POST /places/places-table/{id}
Параметр в пути: id — ID сайта (areaID), int.
Данные аналогичны странице https://pub.kadam.net/platforms/{id}
Тело запроса — такой же объект TableFilters, как в списке сайтов (page, perPage, sort, filters.dateFrom/dateTo/archive/timezone,
tableFilters).
Пример запроса:
POST https://pub.kadam.net/api/places/places-table/12345
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"page": 1,
"perPage": 20,
"filters": {
"dateFrom": "2026-03-01",
"dateTo": "2026-03-31",
"archive": 0,
"timezone": 0
},
"tableFilters": []
}
Список значений для фильтров таблицы блоков
Для получения списка возможных значений для include/exclude в фильтрах таблицы блоков используется метод POST /places/places-table/table-filters
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| column | Столбец, для которого запрашивается список | строка; обязательный |
| field | Поле фильтра в рамках столбца | строка; опциональный |
Массовые действия над блоком
Для изменения состояния блока используются методы:
- POST /places/{id}/activate — активировать блок
- POST /places/{id}/deactivate — приостановить блок
- DELETE /places/{id} — переместить в архив
- POST /places/{id}/restore — восстановить из архива
Параметр в пути: id — ID блока (blockID), int.
Пример запроса:
POST https://pub.kadam.net/api/places/98765/activate Authorization: Bearer YOUR_TOKEN
Пользователь (Users)
Информация о пользователе
Для получения обновлённой информации о пользователе (баланс, счётчик непрочитанных уведомлений) используется метод POST /users/check-upd
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| notificationsLimit | Максимальное количество получаемых непрочитанных уведомлений | int; опциональный |
Пример запроса:
POST https://pub.kadam.net/api/users/check-upd
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{"notificationsLimit": 10}
Конструктор отчётов (Custom Reports)
Список группировок, метрик и периодов
Для получения списка доступных группировок, метрик и преднастроенных периодов используется метод OPTIONS /custom-reports
Пример запроса:
OPTIONS https://pub.kadam.net/api/custom-reports Authorization: Bearer YOUR_TOKEN
Получение статистики
Основной метод построения статистики — POST /custom-reports/data
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| groups | Массив группировок (см. список ниже) | массив строк; обязательный |
| metrics | Массив метрик (см. список ниже) | массив строк; обязательный |
| filters.dateFrom / filters.dateTo | Период, формат YYYY-MM-DD | строка; обязательные (либо filters.period) |
| filters.period | Преднастроенный период вместо dateFrom/dateTo: today, yesterday, 7days, 14days, month, prevMonth | строка; опциональный |
| filters.timezone | Часовой пояс, от -12 до 12 | int; опциональный |
| filters.filters | Массив фильтров по столбцам: [{"id": "webmaster_source", "type": "list", "include": [areaId1, areaId2]}, ...] | массив объектов; опциональный |
| sort | Сортировка: {"ключ_столбца": "asc"|"desc"} | объект; опциональный |
| page / perPage | Пагинация | int; опциональные |
| compare | Сравнение с другим периодом: {"dateFrom": "YYYY-MM-DD", "dateTo": "YYYY-MM-DD", "mode": "diff"|"percent"|"compare_value", "period": "...", "sort": false}. null — без сравнения | объект; опциональный |
Группировки (groups):
- Время:
time_hour,time_day,time_week,time_month - Трафик:
traffic_region(страна/регион),traffic_browser,traffic_platform(ОС),traffic_platformVersion,traffic_device,traffic_deviceType(mobile/desktop/tablet),traffic_subsAge,traffic_pageCategory,traffic_blockFormat,traffic_blockSize - Трафик (только полная таблица, данные с задержкой):
traffic_domain,traffic_macros(subID),traffic_pid - Паблишер:
webmaster_source(areaID),webmaster_block(blockID),webmaster_subId
Метрики (metrics):
- Трафик:
traffic_visits(уникальные визиты),traffic_views(показы материалов),traffic_blockViews(показы блоков),traffic_clicks,traffic_viewRate(%),traffic_trafficback,traffic_subscriptions,traffic_unsubscriptions - Финансы:
finance_moneyIn(доход, валюта аккаунта) - Паблишер:
webmaster_cpm(CPM по показам материалов),webmaster_cpc,webmaster_blockCTR(%),webmaster_blockCPM(CPM по показам блоков)
Пример запроса — статистика по стране и SubID за вчера:
POST https://pub.kadam.net/api/custom-reports/data
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"groups": ["traffic_region", "webmaster_subId"],
"metrics": ["traffic_views", "traffic_clicks", "finance_moneyIn"],
"filters": {
"filters": [
{"id": "webmaster_source", "type": "list", "include": [12345]}
],
"period": "yesterday",
"timezone": 0
},
"sort": {"traffic_views": "desc"},
"compare": null
}
Примечание: фильтр по блоку — {"id": "webmaster_block", "type": "list", "include": [blockId]}.
Вместо period можно указать "dateFrom": "2026-03-01", "dateTo": "2026-03-07".
Группировки traffic_domain, traffic_macros, traffic_pid доступны только из полной таблицы и появляются с
задержкой.
Значения для фильтров статистики
Для получения списка возможных значений по конкретному фильтру используется метод POST /custom-reports/filter-data
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| id | Ключ столбца, для которого нужен список элементов (например, webmaster_source) | строка; обязательный |
| searchQuery | Строка поиска (для фильтров с filterSync = true) | строка; опциональный |
AdSpyGlass (ASG)
Список активных блоков
Для получения списка активных блоков, работающих с AdSpyGlass, используется метод GET /partners/asg/blocks
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| token | API токен (передаётся в query-параметре) | строка; обязательный |
Пример запроса:
GET https://pub.kadam.net/api/partners/asg/blocks?token=YOUR_TOKEN
Получение данных блока
Для получения данных конкретного рекламного блока используется метод GET /partners/asg/block
| Параметры | Значение | Дополнительные атрибуты |
|---|---|---|
| token | API токен | строка; обязательный |
| zone_id | ID блока | int; обязательный |
Пример запроса:
GET https://pub.kadam.net/api/partners/asg/block?token=YOUR_TOKEN&zone_id=98765
Общие правила
Общий формат ответа
{
"success": true,
"code": 0,
"msg": {},
"data": { ... }
}
При ошибке success = false, поле msg содержит описание ошибки.
Пагинация
Эндпоинты-списки принимают:
- page — номер страницы, int (от 1, по умолчанию 1)
- perPage — количество элементов на странице, int (по умолчанию 20)
Сортировка
Сортировка задаётся объектом {"ключ_столбца": "asc"|"desc"}. Допустимые ключи зависят от метода.
Фильтры таблиц (tableFilters / filters.filters)
В таблицах сайтов и блоков фильтры задаются массивом tableFilters:
- column — столбец
- childField — поле для multiselect-фильтра
- value — искомый текст или число (compareType: 0="=", 1=">", 2="<", 3=">=", 4="<=")
- include / exclude — массивы значений для включения/исключения
В конструкторе отчётов — массив filters.filters вида {"id": "ключ", "type": "list"|"range"|"value"|"value_like"|"value_combined",
"include": [...], "exclude": [...], "range": {"from": "...", "to": "..."}}.
Что доступно по API
Через Bearer Token доступны: Сайты (CRUD, активация/архив), Блоки (активация/архив), Конструктор отчётов (статистика + фильтры), AdSpyGlass. Финансы, выплаты, кошельки, уведомления, рефералы — только через личный кабинет.