Admin API: обзор и авторизация
Как подключиться к Admin API трекера: базовый адрес, токен в заголовке Api-Key, виды доступа, срок действия и ограничения.
Admin API — тот же API, через который работает панель. Внешний запрос отличается только авторизацией: вместо входа в панель передаётся токен в заголовке Api-Key. Создавать и отзывать токены могут владелец и администратор.
Базовый адрес
Все методы находятся по адресу:
https://panel.example.com/api/v1Вместо panel.example.com подставьте домен своей панели. Версия в пути одна — v1.
На домене трекинга из API открыты только адреса приёма данных, которым токен не нужен: /api/v1/postback, /api/v1/lead и /api/v1/lead-file. Запросы с токеном отправляйте на домен панели.
Во время резервного копирования, восстановления из копии и обновления на любой запрос к /api/ приходит код 503 с текстом Tracker maintenance in progress. Это обычный текст, не JSON. Повторите запрос позже.
Создание токена
- Откройте Настройки → API.
- В блоке API-токены нажмите + Токен.
- Заполните Название, например имя интеграции. Длина — до 200 байт: это 200 латинских символов или 100 кириллических.
- Выберите Доступ: Сводные отчёты или Полный доступ. По умолчанию — Сводные отчёты.
- Выберите Срок действия: 7 дней, 30 дней, 90 дней или 365 дней. По умолчанию — 90 дней.
- Нажмите Создать.
- Скопируйте токен из блока «Новый токен — скопируйте сейчас, повторно его не показать:» кнопкой Копировать.
Токен выглядит как trk_ и 40 символов после него: цифры и буквы от a до f. Целиком он показывается один раз. В списке потом видны название, первые 12 символов токена, вид доступа, срок, дата создания и дата последнего использования.
Токен для расширения расходов создаётся в другом месте: Настройки → Расходы, блок Подключить профиль, кнопка Создать ключ. Подробнее — на странице Расширение для расходов Facebook.
Те же действия через API описаны на странице Admin API: API-токены, работа со списком в панели — на странице API-токены.
Токен с доступом Полный доступ может менять данные и настройки, включая пользователей и другие токены. Храните его как пароль и выдавайте отдельный токен каждой интеграции, чтобы отзывать их по одному.
Заголовок Api-Key
Передавайте токен в заголовке Api-Key каждого запроса:
curl https://panel.example.com/api/v1/campaigns \
-H "Api-Key: trk_0123456789abcdef0123456789abcdef01234567"Этот запрос требует доступа Полный доступ. Для токена Сводные отчёты проверьте подключение запросом отчёта:
curl -X POST https://panel.example.com/api/v1/reports \
-H "Api-Key: trk_0123456789abcdef0123456789abcdef01234567" \
-H "Content-Type: application/json" \
-d '{"from":"2026-10-01T00:00:00Z","to":"2026-10-02T00:00:00Z","dimensions":["campaign"],"metrics":["clicks","leads"],"timezone":"UTC"}'Успешный ответ — код 200 и JSON. Поля отчёта описаны на странице Admin API: отчёты, общий формат запросов, ответов и ошибок — на странице Формат запросов, ответов и ошибок.
Если в запросе есть и Api-Key, и Authorization, используется Api-Key.
На неверный, отозванный или истёкший токен сервер отвечает кодом 401:
{"code": "unauthorized", "message": "invalid api key"}От чьего имени работает токен
Запрос выполняется от имени пользователя, который создал токен, с его текущей ролью.
- Токен действует, пока создатель остаётся владельцем или администратором. Подробнее о ролях — на странице Команда и роли.
- Если создателя удалить или дать ему роль ниже администратора, его токены удаляются. Запросы с ними получают
401. - Ограничения доступа по разделам, группам кампаний и полям отчётов на запросы с токеном не действуют: они не задаются для владельца и администратора.
- Время последнего запроса видно в списке токенов в строке «использован».
Виды доступа
У токена один вид доступа. В API он передаётся в поле scopes — массив из одного значения.
| Доступ в панели | Значение в API | Что разрешено |
|---|---|---|
| Сводные отчёты | reports:read | POST /api/v1/reports, POST /api/v1/reports/export, GET /api/v1/custom-metrics, GET /api/v1/conversion-types |
| Расходы расширения | spend:write | POST /api/v1/spend/snapshots, GET /api/v1/spend |
| Полный доступ | full | Все методы, которые требуют авторизации, кроме методов владельца установки |
Запрос к методу вне своего доступа получает код 403:
{"code": "token_scope", "message": "API token scope does not allow this action"}Что недоступно даже с полным доступом
Восемь методов работают только из панели под учётной записью владельца установки. С токеном они отвечают 403 с кодом forbidden:
- резервные копии —
GETиPOST /api/v1/backups; - обновления —
GETиPOST /api/v1/updates; - активация лицензии —
POST /api/v1/license/activate; - IP2Proxy —
GETиPUT /api/v1/ip2proxy,POST /api/v1/ip2proxy/update.
Подробнее — на странице Admin API: лицензия, копии и обновления.
Ограничения доступа «Сводные отчёты»
Токен reports:read строит только сводные отчёты. Разрешённые поля:
- объекты, в группировках и фильтрах:
campaign,stream,offer,lander,source,campaign_group; - гео и устройство, в группировках и фильтрах:
country,region,city,device,os,os_version,browser,browser_version,device_model,lang,connection,isp; - признаки, в группировках и фильтрах:
bot,unique,cloak,proxy,empty_referer; - время, только в группировках:
hour,day,week,month,year,dow,hour_of_day; - тип адреса, только в фильтрах:
ipv4,ipv6.
В фильтрах дополнительно разрешены базовые метрики, например clicks или roi. На список метрик в поле metrics ограничение не распространяется.
Группировки и фильтры по sub_id_1–sub_id_30, ip, user_agent, referer, click_id, subid, external_id, creative_id, keyword, ad_campaign_id, adset_name, ad_name запрещены. Ответ на такой отчёт — код 403:
{"code": "token_scope", "message": "report includes fields outside the aggregate report scope"}Журналы кликов, фоновые выгрузки и сохранённые отчёты этому токену недоступны.
Доступ «Расходы расширения»
Токен spend:write выпускается только на платной лицензии. На пробной лицензии создание ключа и все методы /api/v1/spend отвечают кодом 403:
{"code": "spend_paid_required", "message": "Расширение для расходов доступно после оплаты лицензии."}Методы расходов описаны на странице Admin API: расходы.
Срок действия
- В панели срок выбирается из четырёх значений: 7, 30, 90 или 365 дней.
- При создании через API срок задаётся полем
expires_at. Дата должна быть в будущем и не дальше 365 суток от момента запроса. Иначе сервер отвечает кодом422с сообщениемexpires_at must be in the next 365 days. Без этого поля токен действует 90 суток. - В списке у действующего токена стоит «До» и дата, у просроченного — «Истёк» и дата.
- После окончания срока запросы получают
401с сообщениемinvalid api key. Продлить токен нельзя — создайте новый. - У токена с пометкой «Без срока · старый токен» срок не задан. Он действует, пока его не отзовут.
Чтобы отозвать токен, нажмите значок ✕ в его строке и подтвердите действие. Отзыв действует сразу.
Истёкшая лицензия
Когда лицензия неактивна, запросы с токеном получают код 402:
{"code": "license_required", "message": "Доступ к трекеру закрыт до продления лицензии. Трафик и приём конверсий работают, исходящие события ожидают продления."}Исключение — GET /api/v1/license: по токену Полный доступ он продолжает отдавать состояние лицензии. По нему интеграция может отличить неактивную лицензию от сбоя.
Приём постбеков и лидов по адресам /api/v1/postback, /api/v1/lead и /api/v1/lead-file не останавливается. Что ещё работает и что закрыто — на странице Истечение лицензии.
Доступ проверяется раньше лицензии: токен, которому метод не разрешён, получит 403, а не 402.
Ограничения частоты
Общего лимита на запросы с токеном нет. Ограничены отдельные методы:
| Метод | Лимит | Ответ при превышении |
|---|---|---|
POST /api/v1/spend/snapshots | 120 запросов в минуту с одного IP | 429, код rate_limited |
POST /api/v1/blocklist-sources/{id}/check, POST /api/v1/blocklist-sources/test | 10 запросов в минуту с одного IP, счётчик общий для обоих методов | 429, код rate_limited |
POST /api/v1/domains/{id}/verify | 20 проверок в минуту на всю команду | 429, код rate_limit |
POST /api/v1/report-exports | 2 активные выгрузки на пользователя и 20 сохранённых на команду | 429, код export_quota |
При кодах rate_limited и rate_limit подождите минуту и повторите запрос. При коде export_quota дождитесь окончания активных выгрузок или удалите ненужные.
Вызовы из браузера
Отправляйте запросы к Admin API со своего сервера. В заголовке Access-Control-Allow-Origin трекер отдаёт адрес панели, поэтому скрипт на другом сайте получит в браузере ошибку CORS.
В ответах указаны разрешённые методы — GET, POST, PUT, DELETE, OPTIONS — и заголовки — Authorization, Content-Type, Api-Key.
Не вставляйте токен в код страниц и лендингов: его увидит любой посетитель. Держите токен на своём сервере или в сервисе автоматизации.
Журнал действий
В журнал Логи → Audit log попадают запросы с действующим токеном, отправленные методами POST, PUT, PATCH и DELETE, включая построение отчёта через POST /api/v1/reports. Запросы GET в журнал не записываются.
В колонке Контекст у запросов с токеном стоит API, у действий из панели — UI. В колонке Пользователь — логин создателя токена и начало токена в квадратных скобках. По нему видно, какая интеграция сделала запрос.
Как читать журнал — на странице Audit log: журнал действий пользователей.
Если не получилось
invalid api key
Токен введён с ошибкой, отозван, истёк, либо его создатель удалён или больше не владелец и не администратор. Откройте Настройки → API и сравните начало токена со строками списка. Токен должен быть в списке со сроком «До» или с пометкой «Без срока · старый токен». Если токена нет или стоит «Истёк», создайте новый.
API token scope does not allow this action
Метод не входит в доступ токена. Сверьтесь с таблицей в разделе Виды доступа и создайте токен с нужным доступом. Изменить доступ у готового токена нельзя.
missing bearer token
В запросе нет заголовка Api-Key или его значение пустое. Проверьте имя заголовка и значение токена.
Доступ к трекеру закрыт до продления лицензии
Лицензия неактивна: истёк срок, лицензия отозвана или не подтверждена. Порядок продления — на странице Продление и заказы. После продления токены, у которых не вышел срок, продолжат работать.