REST API Reference
HTTP API для интеграции с FlowLink
~6 мин чтения
Base URLs
https://relay.flow-masters.ru:9081http://127.0.0.1:9081https://staging.flow-masters.ru:9081Аутентификация
Большинство эндпоинтов требуют JWT токен или API ключ. JWT токены получаются через /api/v1/signup или /api/v1/login.
1# JWT токен в заголовке2Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...34# API ключ в заголовке5Authorization: Bearer flk_live_abc123...6# Или через x-api-key7x-api-key: flk_live_abc123...
Token Scopes
Эндпоинты
Health & System
/healthzpublicБазовая проверка работоспособности
1curl -X GET https://relay.flow-masters.ru:9081/healthz
/healthpublicДетальная проверка состояния системы
1curl -X GET https://relay.flow-masters.ru:9081/health
/metricsauth requiredМетрики в формате Prometheus
1curl -X GET https://relay.flow-masters.ru:9081/metrics \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
Auth & Account
/api/v1/signuppublicРегистрация пользователя
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/signup \2 -H "Content-Type: application/json" \3 -d '{4 "email": "user@example.com",5 "password": "secure_password",6 "organization": "My Company"7 }'
/api/account/infoauth requiredИнформация о текущем аккаунте
1curl -X GET https://relay.flow-masters.ru:9081/api/account/info \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/account/settingsauth requiredПолучение настроек аккаунта
1curl -X GET https://relay.flow-masters.ru:9081/api/account/settings \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/account/settingsauth requiredОбновление настроек аккаунта
1curl -X PUT https://relay.flow-masters.ru:9081/api/account/settings \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "language": "en",6 "timezone": "UTC"7 }'
/api/account/notificationsauth requiredПолучение уведомлений пользователя
1curl -X GET https://relay.flow-masters.ru:9081/api/account/notifications \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/account/notifications/{'id'}/readauth requiredОтметить уведомление как прочитанное
1curl -X POST https://relay.flow-masters.ru:9081/api/account/notifications/notif_123/read \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
Agents & Control Plane
/api/agentsauth requiredСписок всех агентов
1curl -X GET https://relay.flow-masters.ru:9081/api/agents \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/agentsauth requiredСписок агентов через Control Plane
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/agents \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/agents/{'id'}auth requiredДетали конкретного агента
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/agents/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/agents/{'id'}auth requiredУдаление (дерегистрация) агента
1curl -X DELETE https://relay.flow-masters.ru:9081/api/v1/agents/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/heartbeatpublicСистемный heartbeat
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/heartbeat \2 -H "Content-Type: application/json" \3 -d '{4 "agent_id": "agent_abc",5 "status": "healthy"6 }'
/api/exec/{'agent_id'}auth requiredВыполнение команды на агенте
1curl -X GET https://relay.flow-masters.ru:9081/api/exec/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -G --data-urlencode "command=ls -la"
Devices
/api/devices/pairpublicПривязка нового устройства
1curl -X POST https://relay.flow-masters.ru:9081/api/devices/pair \2 -H "Content-Type: application/json" \3 -d '{4 "device_name": "Workstation-01",5 "pairing_code": "XYZ-123"6 }'
/api/devices/confirmpublicПодтверждение привязки устройства
1curl -X POST https://relay.flow-masters.ru:9081/api/devices/confirm \2 -H "Content-Type: application/json" \3 -d '{4 "device_id": "dev_abc",5 "token": "pairing_token_xyz"6 }'
/api/devicesauth requiredСписок всех устройств
1curl -X GET https://relay.flow-masters.ru:9081/api/devices \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/devices/{'id'}auth requiredУдаление устройства
1curl -X DELETE https://relay.flow-masters.ru:9081/api/devices/dev_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/devices/{'id'}/trustauth requiredПроверка статуса доверия устройства
1curl -X GET https://relay.flow-masters.ru:9081/api/devices/dev_abc/trust \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
GitOps
/api/v1/gitops/drift/{'agent_id'}auth requiredПроверка отклонения конфигурации (Drift)
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/gitops/drift/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/gitops/backup/{'agent_id'}auth requiredЗапуск бэкапа конфигурации
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/gitops/backup/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/gitops/backups/{'agent_id'}auth requiredСписок бэкапов
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/gitops/backups/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/gitops/restore/{'agent_id'}auth requiredВосстановление из бэкапа
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/gitops/restore/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "backup_id": "bak_123"6 }'
/api/v1/gitops/guard/{'agent_id'}auth requiredСтатус GitOps Guard
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/gitops/guard/agent_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/gitops/reposauth requiredСписок репозиториев
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/gitops/repos \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/gitops/reposauth requiredСоздание репозитория
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/gitops/repos \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "name": "Main Policy Repo",6 "provider": "github",7 "url": "https://github.com/org/repo"8 }'
/api/v1/gitops/applyauth requiredПрименение политики
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/gitops/apply \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "repo_url": "https://github.com/org/repo",6 "branch": "main",7 "policy_path": "policies/agent.yaml"8 }'
/api/v1/gitops/rollbackauth requiredОткат версии политики
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/gitops/rollback \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "policy_id": "pol_abc",6 "version": "v1.2.0"7 }'
/api/v1/gitops/versionsauth requiredСписок версий политик
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/gitops/versions \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/gitops/webhookpublicGitOps Webhook endpoint
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/gitops/webhook \2 -H "Content-Type: application/json" \3 -d '{4 "event": "push",5 "repository": "main-repo"6 }'
Shield & Security
/api/shield/alertsauth requiredСписок активных алертов
1curl -X GET https://relay.flow-masters.ru:9081/api/shield/alerts \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/shield/approve/{pid}auth requiredОдобрение заблокированного процесса
1curl -X POST https://relay.flow-masters.ru:9081/api/shield/approve/proc_123 \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "reason": "Authorized by admin"6 }'
/api/shield/reject/{pid}auth requiredОтклонение заблокированного процесса
1curl -X POST https://relay.flow-masters.ru:9081/api/shield/reject/proc_123 \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "reason": "Malicious activity detected"6 }'
/api/shield/resolveauth requiredРазрешение алерта
1curl -X POST https://relay.flow-masters.ru:9081/api/shield/resolve \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "alert_id": "alrt_456"6 }'
/api/shield/ingestauth requiredИмпорт алертов безопасности
1curl -X POST https://relay.flow-masters.ru:9081/api/shield/ingest \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "source": "external_siem",6 "alerts": [...]7 }'
/api/shield/canaryauth requiredЗапуск canary-теста
1curl -X POST https://relay.flow-masters.ru:9081/api/shield/canary \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"}
Audit & Compliance
/api/auditauth requiredЗапрос логов аудита
1curl -X GET https://relay.flow-masters.ru:9081/api/audit \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \34 -G --data-urlencode "start_time=2025-01-01T00:00:00Z" \5 -G --data-urlencode "end_time=2025-01-02T00:00:00Z"
/api/audit/exportauth requiredЭкспорт логов аудита
1curl -X GET https://relay.flow-masters.ru:9081/api/audit/export \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Accept: application/json"
/api/audit/eventauth requiredРегистрация события аудита
1curl -X POST https://relay.flow-masters.ru:9081/api/audit/event \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "event_type": "user_login",6 "actor": "admin",7 "details": {}8 }'
/api/v1/compliance/reportauth requiredПолучение отчёта о комплаенсе
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/compliance/report \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/compliance/reportsauth requiredСписок отчётов
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/compliance/reports \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/compliance/report/generateauth requiredГенерация отчёта
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/compliance/report/generate \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "audit_summary",6 "period": "last_30_days"7 }'
Integrations & Webhooks
/api/integrationsauth requiredСписок установленных интеграций
1curl -X GET https://relay.flow-masters.ru:9081/api/integrations \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/integrationsauth requiredУстановка интеграции
1curl -X POST https://relay.flow-masters.ru:9081/api/integrations \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "type": "slack",6 "config": {}7 }'
/api/integrations/{'id'}auth requiredУдаление интеграции
1curl -X DELETE https://relay.flow-masters.ru:9081/api/integrations/int_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/integrations/oauth/beginauth requiredНачало OAuth процесса
1curl -X POST https://relay.flow-masters.ru:9081/api/integrations/oauth/begin \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "integration_id": "int_abc"6 }'
/api/integrations/catalogauth requiredКаталог интеграций
1curl -X GET https://relay.flow-masters.ru:9081/api/integrations/catalog \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/integrations/oauth/callbackauth requiredOAuth callback
1curl -X GET https://relay.flow-masters.ru:9081/api/integrations/oauth/callback \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -G --data-urlencode "code=abc123def" \4 -G --data-urlencode "state=xyz"
/api/webhooks/alertmanagerpublicWebhook для Alertmanager
1curl -X POST https://relay.flow-masters.ru:9081/api/webhooks/alertmanager \2 -H "Content-Type: application/json" \3 -d '{4 "status": "firing",5 "alerts": [...]6 }'
/api/webhooks/generic-alertpublicОбщий webhook для алертов
1curl -X POST https://relay.flow-masters.ru:9081/api/webhooks/generic-alert \2 -H "Content-Type: application/json" \3 -d '{4 "event": "security_alert",5 "payload": {}6 }'
/api/tg/webhookpublicWebhook для Telegram бота
1curl -X POST https://relay.flow-masters.ru:9081/api/tg/webhook \2 -H "Content-Type: application/json" \3 -d '{4 "chat_id": "123456",5 "message": "Hello!"6 }'
Admin & Management
/api/admin/configauth requiredКонфигурация системы
1curl -X GET https://relay.flow-masters.ru:9081/api/admin/config \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/config/reloadauth requiredПерезагрузка конфигурации
1curl -X POST https://relay.flow-masters.ru:9081/api/admin/config/reload \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/accountsauth requiredСписок учетных записей
1curl -X GET https://relay.flow-masters.ru:9081/api/admin/accounts \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/accounts/{'id'}/planauth requiredИзменение тарифного плана
1curl -X PUT https://relay.flow-masters.ru:9081/api/admin/accounts/usr_abc/plan \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "plan_id": "pro"6 }'
/api/admin/accounts/{'id'}/toggleauth requiredАктивация/деактивация аккаунта
1curl -X POST https://relay.flow-masters.ru:9081/api/admin/accounts/usr_abc/toggle \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "active": false6 }'
/api/admin/dashboard-statsauth requiredГлобальная статистика дашборда
1curl -X GET https://relay.flow-masters.ru:9081/api/admin/dashboard-stats \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/plansauth requiredСписок тарифных планов
1curl -X GET https://relay.flow-masters.ru:9081/api/admin/plans \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/plansauth requiredСоздание тарифного плана
1curl -X POST https://relay.flow-masters.ru:9081/api/admin/plans \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "name": "Enterprise Plus",6 "price": 999,7 "features": [...]8 }'
/api/admin/plans/{'id'}auth requiredОбновление тарифного плана
1curl -X PUT https://relay.flow-masters.ru:9081/api/admin/plans/plan_abc/ \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "price": 4996 }'
/api/admin/plans/{'id'}auth requiredУдаление тарифного плана
1curl -X DELETE https://relay.flow-masters.ru:9081/api/admin/plans/plan_abc \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/subscriptionsauth requiredСписок подписок
1curl -X GET https://relay.flow-masters.ru:9081/api/admin/subscriptions \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/admin/ordersauth requiredСписок заказов
1curl -X GET https://relay.flow-masters.ru:9081/api/admin/orders \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
RBAC & Roles
/api/v1/rolesauth requiredСоздание кастомной роли
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/roles \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "name": "Security Auditor",6 "permissions": ["audit:read"]7 }'
/api/v1/rolesauth requiredСписок всех ролей
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/roles \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/roles/{name}auth requiredДетали роли
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/roles/admin \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/roles/{name}auth requiredОбновление роли
1curl -X PUT https://relay.flow-masters.ru:9081/api/v1/roles/admin \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "permissions": ["all"]6 }'
/api/v1/roles/{name}auth requiredУдаление роли
1curl -X DELETE https://relay.flow-masters.ru:9081/api/v1/roles/admin \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api/v1/roles/{name}/assignauth requiredНазначение роли пользователю
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/roles/admin/assign \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "user_id": "usr_123"6 }'
/api/v1/roles/{name}/revokeauth requiredОтозвание роли у пользователя
1curl -X POST https://relay.flow-masters.ru:9081/api/v1/roles/admin/revoke \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{5 "user_id": "usr_123"6 }'
/api/v1/roles/user/{user_id}auth requiredСписок ролей пользователя
1curl -X GET https://relay.flow-masters.ru:9081/api/v1/roles/user/usr_123 \2 -H "Authorization: Bearer YOUR_JWT_TOKEN"
Real-Time & Streaming
/wsauth requiredWebSocket соединение
1# WebSocket handshake2wss://relay.flow-masters.ru:9081/ws
/api/eventsauth requiredServer-Sent Events (SSE)
1curl -X GET https://relay.flow-masters.ru:9081/api/events \2 -H "Authorization: Bearer YOUR_JWT_TOKEN" \3 -H "Accept: text/event-stream"
/mcpauth optionalMCP JSON-RPC endpoint
1# MCP tools/list (public)2curl -X POST https://relay.flow-masters.ru:9081/mcp \3 -H "Content-Type: application/json" \4 -d '{5 "jsonrpc": "2.0",6 "id": 1,7 "method": "tools/list"8 }'
/mcp/streamauth optionalMCP streaming
1curl -X POST https://relay.flow-masters.ru:9081/mcp/stream \2 -H "Content-Type: application/json" \3 -d '{4 "jsonrpc": "2.0",5 "id": 1,6 "method": "tools/call",7 "params": { ... }8 }'
Ответы с ошибками
Все ошибки возвращаются в формате JSON с полем error.
1{2 "error": {3 "code": "INVALID_TOKEN",4 "message": "JWT token is invalid or expired",5 "details": {}6 }7}89# Частые коды ошибок:10# - INVALID_TOKEN: JWT токен недействителен11# - INSUFFICIENT_SCOPES: Недостаточно прав12# - AGENT_NOT_FOUND: Агент не найден13# - POLICY_NOT_FOUND: Политика не найдена14# - COMMAND_BLOCKED: Команда заблокирована15# - RATE_LIMIT_EXCEEDED: Превышен лимит запросов
Rate Limiting
API имеет rate limiting для предотвращения abuse. Лимиты указаны в заголовках ответа.
Заголовки Rate Limit
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1642245600
Лимиты по планам
Starter
100 req/min
Team
500 req/min
Business
2 000 req/min
Enterprise
Безлимит