Skip to main content

API Endpoints

Base URL​

http://localhost:4000/api

Authentication​

Most endpoints require JWT authentication. Include the token in the Authorization header:

Authorization: Bearer <token>

Agents​

Base path: /api/agents

MethodEndpointAuthDescription
POST/agents/register-Register a new agent (auto-creates server if needed)
POST/agents/heartbeat-Agent heartbeat
POST/agents/unregister-Unregister an agent
GET/agents-List all agents
GET/agents/latest-version/:type-Get latest version for agent type

AlertGroups​

Base path: /api/alertGroups

MethodEndpointAuthDescription
GET/alertGroups✓List all alert groups with alert count
GET/alertGroups/:id✓Get a single alert group with its member alerts
PUT/alertGroups/:id/resolve✓Resolve an alert group

AlertInhibitionRules​

Base path: /api/alertInhibitionRules

MethodEndpointAuthDescription
GET/alertInhibitionRules✓List all inhibition rules
GET/alertInhibitionRules/:id✓Get a single inhibition rule
POST/alertInhibitionRules✓Create a new inhibition rule
PUT/alertInhibitionRules/:id✓Update an inhibition rule
DELETE/alertInhibitionRules/:id✓Delete an inhibition rule

AlertRoutingRules​

Base path: /api/alertRoutingRules

MethodEndpointAuthDescription
GET/alertRoutingRules✓List all routing rules ordered by priority ASC
GET/alertRoutingRules/:id✓Get a single routing rule
POST/alertRoutingRules✓Create a new routing rule
PUT/alertRoutingRules/:id✓Update a routing rule
DELETE/alertRoutingRules/:id✓Delete a routing rule

Alerts​

Base path: /api/alerts

MethodEndpointAuthDescription
GET/alerts✓Get active alerts
GET/alerts/rules✓Get all alert rules
GET/alerts/templates✓Get all alert templates
POST/alerts/templates✓Create alert template
GET/alerts/templates/:id✓Get specific template
PUT/alerts/templates/:id✓Update alert template
DELETE/alerts/templates/:id✓Delete alert template
POST/alerts/templates/:id/test✓Test template against live Prometheus data
POST/alerts/rules✓Create alert rule
PUT/alerts/rules/:id✓Update alert rule
DELETE/alerts/rules/:id✓Delete alert rule
POST/alerts/bulk/acknowledge✓Bulk acknowledge alerts
POST/alerts/bulk/silence✓Bulk silence alerts
POST/alerts/:id/acknowledge✓Acknowledge an alert
POST/alerts/:id/silence✓Silence an alert
POST/alerts/webhook✓Receive alerts from AlertManager
GET/alerts/stats✓Get alert statistics (single query instead of 6)
GET/alerts/history✓Get alert state transition history

Annotations​

Base path: /api/annotations

MethodEndpointAuthDescription
GET/annotations✓List annotations, optionally filtered by time range and tags
POST/annotations✓Create a new annotation
PUT/annotations/:id✓Update an annotation
DELETE/annotations/:id✓Delete an annotation

Anomalies​

Base path: /api/anomalies

MethodEndpointAuthDescription
GET/anomalies✓Get all current anomalies
GET/anomalies/server/:serverId✓Get anomalies for a specific server
GET/anomalies/rates✓Get Node Anomaly Rates for all servers
GET/anomalies/rate/:serverId✓Get Node Anomaly Rate for a specific server
GET/anomalies/events✓Get historical anomaly events from database
GET/anomalies/models✓Inspect trained models stored in PostgreSQL
GET/anomalies/stats✓Get anomaly detection statistics
POST/anomalies/events✓Record an anomaly event (internal use)
PUT/anomalies/events/:id/resolve✓Mark an anomaly event as resolved

ApiTokens​

Base path: /api/apiTokens

MethodEndpointAuthDescription
GET/apiTokens✓List tokens for current user (never expose tokenHash)
POST/apiTokens✓Create a new API token
DELETE/apiTokens/:id✓Delete token (only if it belongs to current user)
POST/apiTokens/:id/revoke✓Revoke token (only if it belongs to current user)

Audit​

Base path: /api/audit

MethodEndpointAuthDescription
GET/audit-List audit log entries
GET/audit/entity/:type/:id-Get audit trail for a specific entity
GET/audit/stats-Audit log statistics

Auth​

Base path: /api/auth

MethodEndpointAuthDescription
POST/auth/register-Register new user
POST/auth/login-Login user
GET/auth/me-Get current user
POST/auth/logout-Logout (client-side token removal + clear session cookie)
GET/auth/verify-session-Verify session cookie (used by nginx auth_request)
GET/auth/users-List all users (admin only)
PUT/auth/users/:id-Update user (admin only)
DELETE/auth/users/:id-Delete user (admin only)

CompositeMonitors​

Base path: /api/compositeMonitors

MethodEndpointAuthDescription
GET/compositeMonitors✓List all composite monitors
GET/compositeMonitors/:id✓Get a single composite monitor
GET/compositeMonitors/:id/evaluate✓Evaluate the composite expression against current uptime monitor statuses
POST/compositeMonitors✓Create a new composite monitor
PUT/compositeMonitors/:id✓Update a composite monitor
DELETE/compositeMonitors/:id✓Delete a composite monitor

Containers​

Base path: /api/containers

MethodEndpointAuthDescription
POST/containers✓Agent reports container data (public, rate-limited)
GET/containers/server/:serverId✓Get containers for a server
GET/containers/:id✓Get single container details
GET/containers/server/:serverId/metrics✓Get live metrics for all VMs on a server

Dashboards​

Base path: /api/dashboards

MethodEndpointAuthDescription
GET/dashboards✓List all dashboards
GET/dashboards/:id✓Get single dashboard
POST/dashboards✓Create dashboard
PUT/dashboards/:id✓Update dashboard
DELETE/dashboards/:id✓Delete dashboard

EscalationPolicies​

Base path: /api/escalationPolicies

MethodEndpointAuthDescription
GET/escalationPolicies✓List all policies with steps
GET/escalationPolicies/:id✓Get single policy with steps
POST/escalationPolicies✓Create policy with nested steps
PUT/escalationPolicies/:id✓Update policy (replace steps if provided)
DELETE/escalationPolicies/:id✓Delete policy (cascade handles steps)

Events​

Base path: /api/events

MethodEndpointAuthDescription
GET/events✓Get monitoring events
GET/events/types✓Get available event types
GET/events/severities✓Get available severity levels
GET/events/stats✓Get event statistics
POST/events/cleanup✓Manually trigger event cleanup (admin only)

Feeds​

Base path: /api/feeds

MethodEndpointAuthDescription
GET/feeds/incidents.rss-RSS 2.0 feed of latest incidents
GET/feeds/incidents.atom-Atom feed of latest incidents

Forecasting​

Base path: /api/forecasting

MethodEndpointAuthDescription
GET/forecasting/disk/:serverId✓Forecast disk exhaustion
GET/forecasting/memory/:serverId✓Forecast memory exhaustion
GET/forecasting/cpu/:serverId✓Forecast CPU trend
GET/forecasting/all/:serverId✓Return all forecasts for a server

Incidents​

Base path: /api/incidents

MethodEndpointAuthDescription
GET/incidents✓List incidents with optional filters
GET/incidents/stats✓Incident statistics
GET/incidents/:id✓Get single incident with updates
POST/incidents✓Create incident
PUT/incidents/:id✓Update incident
POST/incidents/:id/updates✓Add an update to an incident
DELETE/incidents/:id✓Delete incident and its updates
POST/incidents/:id/analyze✓AI root cause analysis
POST/incidents/from-alert✓Create incident from an existing alert

InfraChanges​

Base path: /api/infraChanges

MethodEndpointAuthDescription
GET/infraChanges✓List changes with filters (serverId, changeType, start, end)
POST/infraChanges✓Create change (webhook ingestion)
DELETE/infraChanges/:id✓Delete a change

Kubernetes​

Base path: /api/kubernetes

MethodEndpointAuthDescription
GET/kubernetes✓List all Kubernetes clusters
POST/kubernetes✓Create a new Kubernetes cluster (ADMIN only)
GET/kubernetes/:id✓Get a single Kubernetes cluster
PUT/kubernetes/:id✓Update a Kubernetes cluster
DELETE/kubernetes/:id✓Delete a Kubernetes cluster
GET/kubernetes/:id/status✓Get cluster status (stub - returns mock data)

Logs​

Base path: /api/logs

MethodEndpointAuthDescription
GET/logs✓Query logs from Loki
GET/logs/labels✓Get available label names
GET/logs/labels/:name/values✓Get values for a specific label
GET/logs/tail✓Stream logs (SSE)

MaintenanceWindows​

Base path: /api/maintenanceWindows

MethodEndpointAuthDescription
GET/maintenanceWindows✓List maintenance windows (optionally filter by server, scope, or active status)
GET/maintenanceWindows/:id✓Get a single maintenance window
POST/maintenanceWindows✓Create a new maintenance window
PUT/maintenanceWindows/:id✓Update a maintenance window
DELETE/maintenanceWindows/:id✓Delete a maintenance window
GET/maintenanceWindows/server/:serverId/active✓Check if a server is currently in maintenance

Metrics​

Base path: /api/metrics

MethodEndpointAuthDescription
GET/metrics/query✓Proxy to Prometheus API
GET/metrics/query_range✓Query range (for graphs)
GET/metrics/server/:serverId✓Get server metrics summary
GET/metrics/targets✓Get targets status
GET/metrics/rules✓Get Prometheus rules (alerts)
GET/metrics/server/:serverId/history✓Get historical metrics for a server (for charts)
GET/metrics/server/:serverId/bandwidth✓Get bandwidth summary for a server
GET/metrics/server/:serverId/bandwidth/all✓Get all bandwidth summaries (all periods)
GET/metrics/server/:serverId/aggregate✓Get aggregated metric value
GET/metrics/server/:serverId/chart-data✓Get latest metrics for charting (combined endpoint for efficiency)
GET/metrics/server/:serverId/cpanel-accounts✓Get cPanel account details from Prometheus
GET/metrics/server/:serverId/exim-domains✓Get Exim per-domain email stats from Prometheus
GET/metrics/bandwidth/top✓Get top-N servers by bandwidth usage
GET/metrics/server/:serverId/disk-usage✓Get filesystem mount usage for a server

MultiStepMonitors​

Base path: /api/multiStepMonitors

MethodEndpointAuthDescription
GET/multiStepMonitors✓List all monitors with step count
GET/multiStepMonitors/:id✓Get monitor with steps and recent results
POST/multiStepMonitors✓Create monitor with nested steps
PUT/multiStepMonitors/:id✓Update monitor (replaces steps)
DELETE/multiStepMonitors/:id✓Delete monitor
POST/multiStepMonitors/:id/run✓Manually trigger a run
GET/multiStepMonitors/:id/results✓Get check results with pagination

Notifications​

Base path: /api/notifications

MethodEndpointAuthDescription
GET/notifications/channels✓List all notification channels
GET/notifications/channels/:id✓Get single channel
POST/notifications/channels✓Create notification channel
PUT/notifications/channels/:id✓Update channel
DELETE/notifications/channels/:id✓Delete channel
POST/notifications/channels/:id/test✓Send test notification
GET/notifications/logs✓Get notification delivery logs
POST/notifications/daily-report✓Trigger daily report manually

OnCallSchedules​

Base path: /api/onCallSchedules

MethodEndpointAuthDescription
GET/onCallSchedules/current✓Get who is currently on call across all schedules
GET/onCallSchedules✓List all schedules with rotation count
POST/onCallSchedules✓Create a new schedule
GET/onCallSchedules/:id✓Get a single schedule with its rotations
PUT/onCallSchedules/:id✓Update a schedule
DELETE/onCallSchedules/:id✓Delete a schedule (cascade deletes rotations)
POST/onCallSchedules/:id/rotations✓Add a rotation to a schedule
DELETE/onCallSchedules/rotations/:rotationId✓Remove a rotation

Otlp​

Base path: /api/otlp

MethodEndpointAuthDescription
POST/otlp/v1/traces-Accept OTLP JSON trace data (public endpoint)
GET/otlp/services-List distinct service names
GET/otlp/traces-Search traces with filters
GET/otlp/traces/:traceId-Get all spans for a trace

PostMortems​

Base path: /api/postMortems

MethodEndpointAuthDescription
GET/postMortems✓List all post-mortems with incident title
GET/postMortems/:incidentId✓Get post-mortem by incident ID
POST/postMortems✓Create a post-mortem
PUT/postMortems/:id✓Update a post-mortem
POST/postMortems/:id/publish✓Publish a post-mortem
DELETE/postMortems/:id✓Delete a post-mortem

RetentionPolicies​

Base path: /api/retentionPolicies

MethodEndpointAuthDescription
GET/retentionPolicies✓List all retention policies
POST/retentionPolicies✓Create a retention policy (or upsert by metricType)
PUT/retentionPolicies/:id✓Update a retention policy
DELETE/retentionPolicies/:id✓Delete a retention policy

Rum​

Base path: /api/rum

MethodEndpointAuthDescription
POST/rum/beacon-Public endpoint for RUM data collection
GET/rum/stats-Aggregate web vitals and page stats
GET/rum/sessions-List sessions with page view count

Runbooks​

Base path: /api/runbooks

MethodEndpointAuthDescription
GET/runbooks✓List runbooks
POST/runbooks✓Create runbook (ADMIN only)
GET/runbooks/:id✓Get runbook with recent executions
PUT/runbooks/:id✓Update runbook (ADMIN only)
DELETE/runbooks/:id✓Delete runbook (ADMIN only)
POST/runbooks/:id/execute✓Execute runbook manually
GET/runbooks/:id/executions✓Get execution history

ScheduledReports​

Base path: /api/scheduledReports

MethodEndpointAuthDescription
GET/scheduledReports✓List all reports
GET/scheduledReports/:id✓Get single report
POST/scheduledReports✓Create a new report
PUT/scheduledReports/:id✓Update a report
DELETE/scheduledReports/:id✓Delete a report
POST/scheduledReports/:id/send✓Manually trigger sending a report

ServerGroups​

Base path: /api/serverGroups

MethodEndpointAuthDescription
GET/serverGroups✓List all groups as tree
GET/serverGroups/:id✓Get single group with servers
POST/serverGroups✓Create group
PUT/serverGroups/:id✓Update group
DELETE/serverGroups/:id✓Delete group (servers become ungrouped)
POST/serverGroups/move-servers✓Move servers to a group

Servers​

Base path: /api/servers

MethodEndpointAuthDescription
GET/servers/tags✓Get all unique tags
PUT/servers/tags/bulk✓Bulk add/remove tags
DELETE/servers/bulk✓Bulk delete servers
GET/servers✓List all servers
GET/servers/:id✓Get single server
POST/servers✓Create new server
PUT/servers/:id✓Update server
DELETE/servers/:id✓Delete server
GET/servers/stats/overview✓Get server statistics

ServiceDependencies​

Base path: /api/serviceDependencies

MethodEndpointAuthDescription
GET/serviceDependencies/map✓Returns full graph data: nodes (servers + monitors with current status) and edges
GET/serviceDependencies✓List all dependencies
POST/serviceDependencies✓Create a dependency
DELETE/serviceDependencies/:id✓Delete a dependency

Settings​

Base path: /api/settings

MethodEndpointAuthDescription
GET/settings-Get system settings (public - for login page branding)
GET/settings/all-Get all system settings (admin only)
PUT/settings-Update system settings (admin only)
POST/settings/logo-Upload a new logo (admin only)
DELETE/settings/logo-Delete the current logo (admin only)
GET/settings/system-info-Get system hostname and IP (admin only)
POST/settings/backup-Trigger a manual database backup (admin only)
POST/settings/daily-report-Manually trigger the daily infrastructure report (admin only)
GET/settings/export-Export system configuration as JSON (admin only)
POST/settings/import-Import system configuration from JSON (admin only)

SlaPolicies​

Base path: /api/slaPolicies

MethodEndpointAuthDescription
GET/slaPolicies✓List all SLA policies with uptime monitor name
GET/slaPolicies/:id✓Get a single SLA policy with monitor info
GET/slaPolicies/:id/compliance✓Calculate SLA compliance for a policy
POST/slaPolicies✓Create a new SLA policy
PUT/slaPolicies/:id✓Update an SLA policy
DELETE/slaPolicies/:id✓Delete an SLA policy

SlackInteractions​

Base path: /api/slackInteractions

MethodEndpointAuthDescription
POST/slackInteractions-Receives Slack interactive message payloads (button clicks).

Slos​

Base path: /api/slos

MethodEndpointAuthDescription
GET/slos✓List all SLOs
POST/slos✓Create a new SLO
GET/slos/:id✓Get a single SLO with computed budget
PUT/slos/:id✓Update an SLO
DELETE/slos/:id✓Delete an SLO
GET/slos/:id/budget✓Calculate error budget for an SLO

SnmpDevices​

Base path: /api/snmpDevices

MethodEndpointAuthDescription
GET/snmpDevices✓List all SNMP devices
GET/snmpDevices/:id✓Get a single device with recent poll results
POST/snmpDevices✓Create a new SNMP device
PUT/snmpDevices/:id✓Update an SNMP device
DELETE/snmpDevices/:id✓Delete an SNMP device and its poll results
GET/snmpDevices/:id/results✓Get poll results with pagination
POST/snmpDevices/:id/poll✓Trigger a manual poll (stub - logs intent)

StatusPages​

Base path: /api/statusPages

MethodEndpointAuthDescription
GET/statusPages✓List all status pages (auth required — applied in index.ts via requireAuth)
GET/statusPages/public/:slug-PUBLIC endpoint — returns status page config + component statuses
POST/statusPages/public/:slug/subscribe-PUBLIC — Create subscriber with confirm token
GET/statusPages/public/confirm/:token-PUBLIC — Confirm subscription
POST/statusPages/public/:slug/unsubscribe-PUBLIC — Unsubscribe by email/endpoint
GET/statusPages/:id✓Get a single status page with components
POST/statusPages✓Create a new status page with components
PUT/statusPages/:id✓Update a status page
DELETE/statusPages/:id✓Delete a status page

SyntheticChecks​

Base path: /api/syntheticChecks

MethodEndpointAuthDescription
GET/syntheticChecks✓List all synthetic checks
POST/syntheticChecks✓Create a new synthetic check (ADMIN only)
GET/syntheticChecks/:id✓Get a single synthetic check with recent results
PUT/syntheticChecks/:id✓Update a synthetic check
DELETE/syntheticChecks/:id✓Delete a synthetic check and its results
POST/syntheticChecks/:id/run✓Run a synthetic check manually (stub - records an attempt noting Playwright is not installed)
GET/syntheticChecks/:id/results✓Get results with pagination

SystemStatus​

Base path: /api/systemStatus

MethodEndpointAuthDescription
GET/systemStatus✓-

Uptime​

Base path: /api/uptime

MethodEndpointAuthDescription
GET/uptime/stats/overview✓Return aggregate stats across all monitors
GET/uptime✓List all monitors with latest check status
GET/uptime/:id✓Get a single monitor with recent checks
POST/uptime✓Create a new monitor
PUT/uptime/:id✓Update an existing monitor
DELETE/uptime/:id✓Delete a monitor and its checks
GET/uptime/:id/checks✓Get check history with optional time range
POST/uptime/:id/test✓Run a one-off check and return the result

WebSocket Events​

Connect to http://localhost:4000 with Socket.IO client.

Server Events (Emitted by Server)​

EventDescriptionPayload
server:createdNew server addedServer object
server:updatedServer modifiedServer object
server:deletedServer removed{ id: string }
agent:registeredAgent came onlineAgent object
agent:unregisteredAgent went offline{ agentId: string }
metrics:updateReal-time metrics{ serverId, metrics }
event:newMonitoring eventEventLog object
deployment:startedDeployment initiatedDeployment object

Client Events (Subscribe)​

EventDescription
subscribe:serverSubscribe to server updates
unsubscribe:serverUnsubscribe from server