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