API Reference
193 endpoints. Все настоящие, все из бэкенда.
https://api.trektik.ruАутентификация
Есть два типа ключей: публичный (для SDK на сайте) и секретный (для сервера). Как ключ от подъезда и ключ от квартиры: первый можно дать всем, второй - только своим.
JWT (дашборд)
POST /auth/login → получить access_token
Authorization: Bearer <token>API Key (SDK)
Публичный ключ. Для отправки событий, хитмапов, replay, гайдов, опросов.
X-API-Key: pk_...Secret Key (сервер)
Для серверных запросов к Query API и Management API.
X-Secret-Key: sk_live_...SCIM Bearer
Для SCIM 2.0 endpoints (автопровижнинг из IdP).
Authorization: Bearer <scim_token>Rate Limiting
При превышении лимита: 429 Too Many Requests + Retry-After: 60. Лимит зависит от плана проекта.
Формат ошибок
{ "error": "project_id is required" }Содержание
Аутентификация
Регистрация, вход, JWT-токены, двухфакторная аутентификация. Как замок на двери: сначала покажи ключ (логин/пароль), потом заходи.
/auth/registerPublicРегистрация нового аккаунта
Создаёт аккаунт и сразу возвращает токены (автологин). Как записаться в библиотеку: заполнил анкету - получил читательский билет.
{ "email": "user@example.com", "password": "secureP@ss123", "name": "Alex" }{ "access_token": "eyJ...", "refresh_token": "eyJ...", "account": { "id": 1, "email": "user@example.com", "name": "Alex" } }curl -X POST https://api.trektik.ru/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"secureP@ss123","name":"Alex"}'/auth/loginPublicВход в аккаунт
Возвращает JWT-токены. Если включён 2FA, вернёт mfa_required: true - тогда используйте /auth/2fa/login.
{ "email": "user@example.com", "password": "secureP@ss123" }{ "access_token": "eyJ...", "refresh_token": "eyJ...", "expires_in": 3600, "account": { "id": 1, "email": "user@example.com" } }curl -X POST https://api.trektik.ru/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"secureP@ss123"}'/auth/2fa/loginPublicВход с 2FA кодом
Завершает вход при включённом 2FA. Передайте mfa_token из /auth/login и 6-значный TOTP-код.
{ "mfa_token": "mfa_abc123...", "code": "123456" }{ "access_token": "eyJ...", "refresh_token": "eyJ...", "expires_in": 3600, "account": { "id": 1 } }/auth/refreshPublicОбновить access_token
Когда access_token истёк, обменяйте refresh_token на новую пару токенов.
{ "refresh_token": "eyJ..." }{ "access_token": "eyJ...", "refresh_token": "eyJ...", "expires_in": 3600 }/auth/logoutPublicВыход
{ "refresh_token": "eyJ..." }{ "status": "ok" }/auth/forgot-passwordPublicЗапрос сброса пароля
Всегда возвращает 200 - не раскрывает, существует ли email (безопасность).
{ "email": "user@example.com" }{ "status": "ok" }/auth/reset-passwordPublicСброс пароля по токену из email
{ "token": "reset_token_from_email", "new_password": "newSecureP@ss456" }{ "status": "ok" }/auth/verify-emailPublicПодтверждение email по токену
{ "token": "verify_token_from_email" }{ "status": "email_verified" }/auth/2fa/enableJWTВключить 2FA (получить TOTP secret)
{ "secret": "JBSWY3DPEHPK3PXP", "qr_code": "otpauth://totp/Trektik:user@example.com?secret=..." }/auth/2fa/verifyJWTПодтвердить включение 2FA
{ "secret": "JBSWY3DPEHPK3PXP", "code": "123456" }{ "status": "2fa_enabled" }/auth/2fa/disableJWTОтключить 2FA
{ "password": "secureP@ss123" }{ "status": "2fa_disabled" }Проекты
Проект = ваш сайт/приложение. Как папка: внутри лежат все события, дашборды, флаги. Один аккаунт - до 3 проектов (бесплатно).
/v1/projectsJWTСписок моих проектов
{ "projects": [{ "id": 1, "name": "My App", "api_key": "pk_...", "timezone": "Europe/Moscow" }] }/v1/projectsJWTСоздать проект
{ "name": "My App", "timezone": "Europe/Moscow" }{ "project": { "id": 1, "name": "My App", "api_key": "pk_...", "secret_key": "sk_..." } }curl -X POST https://api.trektik.ru/v1/projects \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{"name":"My App"}'/v1/projects/{projectID}JWTПолучить проект по ID
{ "project": { "id": 1, "name": "My App", "timezone": "Europe/Moscow", "session_timeout_min": 30 } }/v1/projects/{projectID}JWTОбновить проект
Только admin или owner. Можно менять имя, таймзону, таймаут сессий.
{ "name": "My App v2", "timezone": "UTC", "session_timeout_min": 60 }{ "project": { "id": 1, "name": "My App v2" } }/v1/projects/{projectID}JWTУдалить проект
Только owner. Мягкое удаление.
{ "status": "deleted" }/v1/projects/{projectID}/keys/rotateJWTРотация API-ключа
Старый ключ перестаёт работать. Только admin/owner.
{ "api_key": "pk_new...", "status": "rotated" }Приём событий
Как отправить письмо: кладёте данные в конверт (JSON), указываете адрес (API-ключ) и отправляете. Лимит: 64 KB на событие, 1000 событий в батче, 10 MB на запрос.
/v1/trackX-API-KeyОтправить одно событие
Обязательно: event_name + хотя бы user_id или device_id. Поддерживает дедупликацию по insert_id (24 часа).
{
"event_name": "page_view",
"user_id": "user_123",
"device_id": "dev_abc",
"session_id": "sess_xyz",
"timestamp": "2026-03-15T10:30:00Z",
"insert_id": "uuid-for-dedup",
"str_properties": { "page": "/pricing", "browser": "Chrome" },
"num_properties": { "price": 29.99 },
"experiments": { "new-checkout": "treatment" },
"utm_source": "google",
"page_url": "https://example.com/pricing",
"referrer": "https://google.com",
"platform": "web"
}{ "status": "ok" }curl -X POST https://api.trektik.ru/v1/track \
-H "Content-Type: application/json" \
-H "X-API-Key: pk_..." \
-d '{"event_name":"page_view","user_id":"user_123","str_properties":{"page":"/home"}}'/v1/batchX-API-KeyПакетная отправка (до 1000 событий)
Тот же формат, что /v1/track, но массивом. Каждое событие валидируется отдельно - ошибки не блокируют остальные.
{
"events": [
{ "event_name": "page_view", "user_id": "u1", "str_properties": { "page": "/home" } },
{ "event_name": "click", "user_id": "u2", "str_properties": { "button": "cta" } }
]
}{ "status": "ok", "accepted": 2, "errors": [] }curl -X POST https://api.trektik.ru/v1/batch \
-H "Content-Type: application/json" \
-H "X-API-Key: pk_..." \
-d '{"events":[{"event_name":"page_view","user_id":"u1"},{"event_name":"click","user_id":"u2"}]}'Аналитика (Query)
Запросы к данным: события, воронки, удержание, пути пользователей, выручка. Все запросы проксируются в query-engine (ClickHouse).
/v1/query/eventsJWTЗапрос событий (основной аналитический отчёт)
Группировка по времени, свойствам. Метрики: count, uniques, avg, sum. До 2 group_by.
{
"project_id": 1,
"events": [{ "name": "page_view" }],
"date_range": { "start": "2026-03-01", "end": "2026-03-15" },
"metric": "count",
"interval": "day",
"group_by": ["str_properties.page"]
}curl -X POST https://api.trektik.ru/v1/query/events \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{"project_id":1,"events":[{"name":"page_view"}],"date_range":{"start":"2026-03-01","end":"2026-03-15"}}'/v1/query/funnelsJWTВоронки
Последовательность шагов: сколько пользователей дошли от шага A к шагу B.
/v1/query/funnels/usersJWTПользователи на каждом шаге воронки
/v1/query/retentionJWTУдержание (retention)
Когортный анализ: сколько пользователей вернулось через N дней после первого визита.
/v1/query/retention/usersJWTПользователи в когортах retention
/v1/query/retention/compareJWTСравнение retention между сегментами
/v1/query/journeysJWTПути пользователей (User Journeys)
Санкей-диаграмма: куда пользователи идут после события A.
/v1/query/journeys/usersJWTПользователи в путях
/v1/query/journeys/compareJWTСравнение путей между сегментами
/v1/query/revenueJWTВыручка (revenue analytics)
/v1/query/revenue/overviewJWTОбзор выручки
/v1/query/revenue/ltvJWTLTV пользователей
/v1/query/revenue/ltv/drilldownJWTДетализация LTV
/v1/query/revenue/top-payersJWTТоп плательщиков
/v1/query/experiments/resultsJWTРезультаты A/B-теста
Методы: fixed (обычный), cuped (CUPED), sequential, sequential_cuped.
/v1/query/experiments/sample-sizeJWTКалькулятор размера выборки
/v1/query/experiments/{id}/sequential-historyJWTИстория sequential-теста
/v1/segments/previewJWTПредпросмотр сегмента (подсчёт пользователей)
/v1/data-qualityJWTКачество данных (Data Quality)
/v1/users/searchJWTПоиск пользователей
/v1/users/{id}JWTПрофиль пользователя
/v1/users/{id}/eventsJWTСобытия пользователя
Public Query API (Secret Key)
Те же аналитические запросы, но через Secret Key (для серверных интеграций, BI-инструментов). Передавайте X-Secret-Key в заголовке.
/v1/api/query/eventsX-Secret-KeyЗапрос событий (через Secret Key)
curl -X POST https://api.trektik.ru/v1/api/query/events \
-H "X-Secret-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"project_id":1,"events":[{"name":"page_view"}],"date_range":{"start":"2026-03-01","end":"2026-03-15"}}'/v1/api/query/funnelsX-Secret-KeyВоронки (Secret Key)
/v1/api/query/retentionX-Secret-KeyУдержание (Secret Key)
/v1/api/query/journeysX-Secret-KeyПути (Secret Key)
/v1/api/query/revenueX-Secret-KeyВыручка (Secret Key)
/v1/api/data-qualityX-Secret-KeyКачество данных (Secret Key)
Сегменты
Сегмент = группа пользователей по правилам. Как фильтр: 'покупатели из Москвы, которые заходили за последние 7 дней'.
/v1/segmentsJWTСписок сегментов
Передайте project_id в query-параметре.
{ "segments": [{ "id": 1, "name": "Active Users", "type": "behavioral", "rules": {...} }] }/v1/segmentsJWTСоздать сегмент
{ "project_id": 1, "name": "Active Buyers", "type": "behavioral", "rules": {...}, "is_dynamic": true }/v1/segments/{id}JWTПолучить сегмент по ID
/v1/segments/{id}JWTОбновить сегмент
/v1/segments/{id}JWTУдалить сегмент
Дашборды
Дашборд = страница с виджетами (графики, таблицы). Можно расшарить по ссылке (публичный доступ без авторизации).
/v1/dashboardsJWTСписок дашбордов
/v1/dashboardsJWTСоздать дашборд
{ "project_id": 1, "name": "Marketing Dashboard", "description": "Weekly metrics" }/v1/dashboards/{id}JWTПолучить дашборд (с виджетами)
/v1/dashboards/{id}JWTОбновить дашборд
/v1/dashboards/{id}JWTУдалить дашборд
/v1/dashboards/{id}/shareJWTВключить публичный доступ (получить share_token)
/v1/dashboards/{id}/shareJWTОтключить публичный доступ
/v1/dashboards/{id}/widgetsJWTСписок виджетов
/v1/dashboards/{id}/widgetsJWTДобавить виджет
/v1/dashboards/{dashboardId}/widgets/{widgetId}JWTОбновить виджет
/v1/dashboards/{dashboardId}/widgets/{widgetId}JWTУдалить виджет
/v1/public/dashboards/{token}PublicПубличный дашборд (без авторизации)
{ "dashboard": {...}, "widgets": [...] }Feature Flags
Включай/выключай фичи без деплоя. Как выключатель света: щёлкнул - фича работает, щёлкнул ещё раз - выключилась.
/v1/flagsJWTСписок флагов
/v1/flagsJWTСоздать флаг
{ "project_id": 1, "key": "new-checkout", "name": "New Checkout", "type": "boolean", "default_value": false }/v1/flags/{id}JWTПолучить флаг
/v1/flags/{id}JWTОбновить флаг (название, правила, варианты, rollout %)
/v1/flags/{id}JWTУдалить флаг
/v1/flags/{id}/toggleJWTВкл/выкл (toggle)
/v1/flags/{id}/killJWTKill Switch (экстренное выключение)
/v1/flags/{id}/historyJWTИстория изменений флага
/v1/flags/evaluatePublicВычислить значение флага (для SDK)
Публичный endpoint. SDK отправляет project_id, flag_key, user_id - получает значение. Sticky bucket по SHA256.
{ "project_id": 1, "flag_key": "new-checkout", "user_id": "user_123", "properties": { "plan": "pro" } }{ "flag_key": "new-checkout", "value": true, "variant": "" }curl -X POST https://api.trektik.ru/v1/flags/evaluate \
-H "Content-Type: application/json" \
-d '{"project_id":1,"flag_key":"new-checkout","user_id":"user_123"}'A/B-тесты и эксперименты
A/B-тесты + Multi-Armed Bandit. Как научный эксперимент: делите пользователей на группы, показываете разные варианты, считаете статистику.
/v1/experimentsJWTСписок экспериментов
/v1/experimentsJWTСоздать эксперимент
Тип: ab_test или bandit. Минимум 2 варианта.
{
"project_id": 1, "key": "checkout-v2", "name": "Checkout V2",
"primary_metric": "purchase", "experiment_type": "ab_test",
"variants": [
{ "key": "control", "name": "Control", "weight": 50, "is_control": true },
{ "key": "treatment", "name": "Treatment", "weight": 50 }
]
}/v1/experiments/{id}JWTПолучить эксперимент (с вариантами)
/v1/experiments/{id}JWTОбновить (только draft)
/v1/experiments/{id}JWTУдалить
/v1/experiments/{id}/startJWTЗапустить
/v1/experiments/{id}/stopJWTПриостановить
/v1/experiments/{id}/completeJWTЗавершить
/v1/experiments/{id}/assignJWTНазначить вариант пользователю (sticky)
/v1/experiments/{id}/switch-strategyJWTПереключить стратегию (ab_test <-> bandit)
/v1/experiments/{id}/bandit-stateJWTСостояние бандита (веса вариантов)
/v1/experiments/{id}/bandit-historyJWTИстория аллокаций бандита
Алерты
Уведомления при аномалиях. Как будильник: задайте условие - получите уведомление когда сработает.
/v1/alertsJWTСписок алертов
/v1/alertsJWTСоздать алерт
Типы: threshold (порог), anomaly (аномалия), segment_size (размер сегмента). До 5 на бесплатном плане.
{
"project_id": 1, "name": "Crash spike", "type": "threshold",
"metric": "total", "event_name": "error", "condition": "gt",
"threshold": 100, "window_minutes": 60, "channels": [{"type": "email"}]
}/v1/alerts/{id}JWTПолучить алерт
/v1/alerts/{id}JWTОбновить алерт
/v1/alerts/{id}JWTУдалить алерт
/v1/alerts/{id}/pauseJWTПоставить на паузу
/v1/alerts/{id}/resumeJWTВозобновить
/v1/alerts/{id}/triggersJWTИстория срабатываний
/v1/alerts/{id}/testJWTТестовое уведомление
Session Replay
Запись и воспроизведение сессий пользователей. SDK записывает DOM-события, сервер хранит чанками.
/v1/replay/chunksX-API-KeyСохранить чанк записи (SDK endpoint)
Аутентификация по API-ключу. Лимит: 2 MB на чанк.
{ "session_id": "sess_abc", "chunk_index": 0, "events": [...], "user_id": "u1", "page_url": "https://example.com" }{ "status": "ok", "chunk_id": 1, "chunk_index": 0 }/v1/replay/sessionsJWTСписок записанных сессий
/v1/replay/sessions/{session_id}/chunksJWTЧанки сессии для воспроизведения
/v1/replay/storageJWTСтатистика хранилища
/v1/replay/retentionJWTНастроить политику хранения (до 90 дней)
{ "project_id": 1, "retention_days": 30 }/v1/replay/cleanupJWTЗапустить очистку вручную
Тепловые карты (Heatmaps)
Карты кликов, скролла и внимания. SDK отправляет события, дашборд показывает, куда пользователи кликают и докручивают.
/v1/heatmap/eventsX-API-KeyОтправить события хитмапа (SDK)
До 500 событий за запрос, 2 MB лимит. Типы: click, scroll, attention.
{
"events": [{
"session_id": "sess_abc", "page_url": "https://example.com/pricing",
"event_type": "click", "x": 500, "y": 300, "selector": ".cta-button",
"viewport_w": 1920, "viewport_h": 1080
}]
}{ "status": "ok", "accepted": 1 }/v1/heatmap/dataJWTПолучить данные хитмапа
Query-параметры: project_id, page_url, type (click/scroll/attention), from, to, segment_id (опционально).
{ "type": "click", "data": [{ "x": 500, "y": 300, "count": 42 }] }Taxonomy (Tracking Plan)
Словарь событий: какие события разрешены, какие свойства у каждого. Strict-режим отклоняет неизвестные события.
/v1/taxonomy/eventsJWTСписок событий в таксономии
/v1/taxonomy/eventsJWTДобавить событие в таксономию
{
"project_id": 1, "event_name": "purchase", "description": "User made a purchase",
"category": "Conversion", "status": "active",
"properties": [{ "name": "amount", "type": "number", "required": true }]
}/v1/taxonomy/events/{id}JWTПолучить событие
/v1/taxonomy/events/{id}JWTОбновить событие
/v1/taxonomy/events/{id}JWTУдалить событие
/v1/taxonomy/importJWTИмпорт таксономии (JSON)
/v1/taxonomy/exportJWTЭкспорт таксономии (JSON-файл)
/v1/taxonomy/settingsJWTНастройки (normal/strict режим)
/v1/taxonomy/settingsJWTИзменить режим (normal/strict)
{ "project_id": 1, "mode": "strict" }/v1/taxonomy/historyJWTИстория изменений таксономии
/v1/taxonomy/codegen/{lang}JWTСгенерировать типизированный SDK-код
Языки: typescript, python, go, swift, kotlin. Скачивается файл.
Экспорт данных
Выгрузка событий и пользователей в файл (ndjson, csv). Работает асинхронно: запускаете задачу, потом скачиваете файл.
/v1/export/eventsJWTЭкспорт событий
{ "project_id": 1, "format": "ndjson", "date_from": "2026-03-01", "date_to": "2026-03-15" }/v1/export/usersJWTЭкспорт пользователей
/v1/export/cohorts/{id}/usersJWTЭкспорт пользователей когорты (сегмента)
/v1/export/jobs/{id}JWTСтатус задачи экспорта
/v1/export/download/{id}JWTСкачать файл экспорта
/v1/export/jobsJWTСписок задач экспорта
/v1/export/schedulesJWTСоздать расписание экспорта (daily/weekly)
{ "project_id": 1, "type": "events", "frequency": "daily", "format": "ndjson" }/v1/export/schedulesJWTСписок расписаний
/v1/export/schedules/{id}JWTУдалить расписание
Приватность (GDPR / 152-ФЗ)
Удаление данных пользователя. Как в законе: пользователь попросил - вы удаляете все его данные из событий и сессий.
/v1/privacy/delete-userJWTЗапрос на удаление данных пользователя
Только admin/owner. Удаляет события и сессии из ClickHouse и PostgreSQL. Выполняется асинхронно (~5 мин).
{ "project_id": 1, "user_id": "user_123" }{ "job_id": 42, "estimated_completion": "2026-03-17T12:05:00Z" }/v1/privacy/delete-user/{job_id}JWTСтатус удаления
/v1/privacy/delete-userJWTСписок запросов на удаление
Webhooks
HTTP-уведомления о событиях. Как почтальон: когда что-то происходит (алерт сработал) - вам приходит POST-запрос.
/v1/webhooksJWTСоздать webhook
{ "project_id": 1, "url": "https://example.com/webhook", "event_types": ["alert_triggered"] }{ "webhook": {...}, "secret": "whsec_..." }/v1/webhooksJWTСписок вебхуков
/v1/webhooks/{id}JWTОбновить вебхук
/v1/webhooks/{id}JWTУдалить вебхук
/v1/webhooks/{id}/testJWTОтправить тестовый вебхук
/v1/webhooks/{id}/logsJWTЛоги доставки вебхука
/v1/webhooks/logsJWTВсе логи доставки по проекту
Гайды (In-App Guides)
Подсказки и туры внутри приложения. Создаёте гайд в дашборде, SDK показывает его пользователям на нужной странице.
/v1/guidesJWTСоздать гайд
/v1/guidesJWTСписок гайдов
/v1/guides/{id}JWTПолучить гайд
/v1/guides/{id}JWTОбновить гайд
/v1/guides/{id}JWTУдалить гайд
/v1/guides/{id}/activateJWTАктивировать
/v1/guides/{id}/pauseJWTПоставить на паузу
/v1/decide/guidesX-API-KeyКакие гайды показать пользователю (SDK)
/v1/guides/{id}/eventX-API-KeyТрекинг события гайда (view/click/dismiss)
Опросы (Surveys)
NPS, CSAT, опросы с произвольными вопросами. Создаёте в дашборде, SDK показывает на нужной странице, ответы собираются автоматически.
/v1/surveysJWTСоздать опрос
/v1/surveysJWTСписок опросов
/v1/surveys/{id}JWTПолучить опрос
/v1/surveys/{id}JWTОбновить опрос
/v1/surveys/{id}JWTУдалить опрос
/v1/surveys/{id}/activateJWTАктивировать
/v1/surveys/{id}/pauseJWTПоставить на паузу
/v1/surveys/{id}/resultsJWTРезультаты и ответы
/v1/decide/surveysX-API-KeyКакие опросы показать пользователю (SDK)
/v1/surveys/{id}/respondX-API-KeyОтправить ответ на опрос (SDK)
SSO (SAML 2.0)
Single Sign-On через корпоративный провайдер (Okta, Azure AD, Google Workspace). Настраиваете один раз - пользователи входят через свой IdP.
/v1/sso/configJWTСоздать/обновить SSO конфиг
{ "project_id": 1, "provider": "okta", "sso_url": "https://example.okta.com/...", "entity_id": "...", "certificate": "-----BEGIN CERTIFICATE-----..." }/v1/sso/configJWTПолучить SSO конфиг
/v1/sso/config/{id}JWTОтключить SSO
/v1/sso/saml/metadataPublicSP Metadata XML (публичный)
/v1/sso/saml/acsPublicSAML Assertion Consumer Service (IdP -> SP)
/v1/sso/saml/loginPublicНачать SAML-логин (редирект на IdP)
SCIM 2.0 (User Provisioning)
Автоматическое управление пользователями из корпоративного каталога. Когда в Okta добавляют сотрудника - он автоматически появляется в Trektik.
/scim/v2/ServiceProviderConfigSCIM BearerКонфигурация SCIM-провайдера
/scim/v2/SchemasSCIM BearerSCIM-схемы
/scim/v2/ResourceTypesSCIM BearerТипы ресурсов
/scim/v2/UsersSCIM BearerСписок пользователей
/scim/v2/Users/{id}SCIM BearerПолучить пользователя
/scim/v2/UsersSCIM BearerСоздать пользователя
/scim/v2/Users/{id}SCIM BearerОбновить пользователя (полная замена)
/scim/v2/Users/{id}SCIM BearerЧастичное обновление
/scim/v2/Users/{id}SCIM BearerДеактивировать пользователя
/v1/scim/tokensJWTСоздать SCIM-токен (для настройки IdP)
/v1/scim/tokensJWTСписок SCIM-токенов
/v1/scim/tokens/{id}JWTУдалить SCIM-токен
Роли и доступ (RBAC)
Кастомные роли + политики доступа к данным. Можно ограничить доступ до конкретного сегмента или типа событий.
/v1/rolesJWTСоздать кастомную роль
/v1/rolesJWTСписок ролей (встроенные + кастомные)
/v1/roles/{id}JWTОбновить роль
/v1/roles/{id}JWTУдалить роль
/v1/roles/{id}/assignJWTНазначить роль пользователю
/v1/permissionsJWTСписок всех доступных разрешений
/v1/data-accessJWTСоздать политику доступа к данным
/v1/data-accessJWTСписок политик доступа
/v1/data-access/{id}JWTОбновить политику
/v1/data-access/{id}JWTУдалить политику
Аудит-лог
Кто, когда и что делал. Только для owner/admin. Фильтрация по действию, актору, дате.
/v1/audit-logJWTСписок записей аудит-лога
Query: project_id, action, actor_id, from, to, limit, offset.
{ "entries": [...], "total": 150, "limit": 50, "offset": 0 }/v1/audit-log/{id}JWTОдна запись аудит-лога
CRM-интеграции
Подключение Bitrix24 и amoCRM. События из Trektik отправляются в CRM как сделки/контакты.
/v1/integrations/crmJWTСоздать CRM-интеграцию
{ "project_id": 1, "crm_type": "bitrix24", "webhook_url": "https://your.bitrix24.ru/rest/..." }/v1/integrations/crmJWTСписок CRM-интеграций
/v1/integrations/crm/{id}JWTПолучить интеграцию
/v1/integrations/crm/{id}JWTОбновить интеграцию
/v1/integrations/crm/{id}JWTУдалить интеграцию
/v1/integrations/crm/{id}/testJWTПроверить подключение
SQL-доступ (для BI)
Прямой SQL-доступ к ClickHouse для DataLens, Metabase и других BI-инструментов. Создаёт отдельный readonly-пользователь в ClickHouse.
/v1/integrations/sql-accessJWTСоздать SQL-пользователя
{ "project_id": 1 }/v1/integrations/sql-accessJWTСписок SQL-учёток
/v1/integrations/sql-access/{id}JWTОтозвать доступ
/v1/integrations/sql-access/{id}/rotateJWTРотация пароля
Статус системы
Проверка здоровья всех компонентов: PostgreSQL, ClickHouse, Redis, Kafka. Публичный endpoint, без авторизации.
/v1/statusPublicСтатус всех сервисов
{ "status": "healthy", "services": { "postgres": "ok", "clickhouse": "ok", "redis": "ok", "kafka": "ok" } }curl https://api.trektik.ru/v1/status/healthzPublicHealthcheck (для k8s)
{ "status": "ok", "service": "api" }