Webserver HTTP API
The Webserver exposes a comprehensive REST API on port 8050. All endpoints (except authentication) require a valid JWT Bearer token. Interactive Swagger documentation is available at https://<webserver>:8050/docs/index.html.
Authentication
All API calls require a JWT token obtained from the /api/auth endpoint. Tokens expire after 15 minutes and must be refreshed before expiry.
Get a token
curl -k -X POST https://<webserver>:8050/api/auth \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"yourPassword"}'
Response:
{
"code": 200,
"expire": "2026-03-28T12:00:00+01:00",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Use the token
Pass the token in the Authorization header for every subsequent call:
curl -k -X GET https://<webserver>:8050/api/users \
-H "Authorization: Bearer <token>"
Refresh the token
Call /refresh_token before the current token expires (within 15-minute window):
curl -k -X GET https://<webserver>:8050/refresh_token \
-H "Authorization: Bearer <token>"
Refresh all component tokens
Force token refresh for all registered components (Monitors, Integrators, etc.):
curl -k -X GET https://<webserver>:8050/refreshTokens \
-H "Authorization: Bearer <token>"
Using the CA certificate (recommended)
Instead of -k (skip TLS verification), use the Webserver’s CA certificate:
curl --cacert /path/to/webserver/config/ssl/certificates/webserver.crt \
-X POST https://<webserver>:8050/api/auth \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"yourPassword"}'
Token lifetime summary
| Token type | Validity |
|---|---|
User token (via /api/auth) |
15 minutes |
Component token (via /loginComponent) |
60 days |
Long-lived API key (via /genAPIKey) |
Custom (up to 1 year) |
Health & Status
Public endpoints — no authentication required.
| Method | Endpoint | Description |
|---|---|---|
GET |
/ping |
Liveness check — returns {"message":"pong"} |
GET |
/uptime |
Returns formatted service uptime |
GET |
/api/metrics |
Prometheus-compatible system metrics |
# Liveness check
curl -k https://<webserver>:8050/ping
# Service uptime
curl -k https://<webserver>:8050/uptime
Users
Requires admin group.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/users |
List all users |
GET |
/api/users/:username |
Get a specific user |
POST |
/api/users |
Create a new user |
PATCH |
/api/users |
Update an existing user |
DELETE |
/api/users/:username |
Delete a user |
Create a user
curl -k -X POST https://<webserver>:8050/api/users \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "jsmith",
"fullName": "John Smith",
"email": "jsmith@example.com",
"password": "SecureP@ss123",
"accountType": "full",
"group": "user",
"enabled": "true",
"tags": "Production,EU",
"apps": "App1,App2",
"maxAppsPerRow": 6,
"horizontalSpacing": 5,
"verticalSpacing": 15,
"darkMode": "false"
}'
Update a user
curl -k -X PATCH https://<webserver>:8050/api/users \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "jsmith",
"group": "admin",
"enabled": "true",
"tags": "Production,EU,US",
"password": "NewP@ss456"
}'
Settings
Requires admin group.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/setting |
Get all platform settings |
PATCH |
/api/updateSetting |
Update platform settings |
# Get current settings
curl -k -X GET https://<webserver>:8050/api/setting \
-H "Authorization: Bearer <token>"
Components
Manage registered Mugnsoft components (Monitor Probes, Integrators, Load Testers, Sentinel Agents).
Status and listing
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/components |
List all registered components |
GET |
/api/components/status |
Status of all enabled/pending components |
GET |
/api/components/status/:key |
Status of a specific component |
# List all components
curl -k -X GET https://<webserver>:8050/api/components \
-H "Authorization: Bearer <token>"
# Get status of component "probe1"
curl -k -X GET https://<webserver>:8050/api/components/status/probe1 \
-H "Authorization: Bearer <token>"
Register a component
These endpoints are called automatically by components during self-registration. They can also be called manually via the API.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/components/probe |
Add a Monitor Probe |
POST |
/api/components/integrator |
Add an Integrator |
POST |
/api/components/loadtest |
Add a Load Tester |
POST |
/api/components/discovery_agent |
Add a Sentinel Agent (discovery_agent type) |
curl -k -X POST https://<webserver>:8050/api/components/probe \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "probe-paris",
"os": "linux",
"token": "<component_token>",
"ip": "10.0.1.10",
"port": "8051",
"state": "true",
"typeServer": "monitor",
"logLevel": "info",
"maxBackups": "5",
"maxSize": "10",
"maxAge": "28",
"logCompress": "true",
"dataRetention": "336",
"purgeStatusChangeDataNb": "200",
"concurrencyLimit": "20",
"nbDaysBackup": "14",
"backupInterval": "24",
"chromeBinPath": "",
"firefoxBinPath": "",
"edgeBinPath": ""
}'
Update component settings
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/components/setting/:key |
Get component configuration |
PATCH |
/api/components/setting/probe |
Update Monitor Probe settings |
PATCH |
/api/components/setting/integrator |
Update Integrator settings |
PATCH |
/api/components/setting/loadtest |
Update Load Tester settings |
PATCH |
/api/components/setting/discovery_agent |
Update Sentinel Agent settings |
Enable / Disable / Delete
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/components/disable/:key |
Disable a component |
POST |
/api/components/enable/:key/:componentType |
Enable a component |
DELETE |
/api/components/forceDelete/:key |
Force-delete a component |
# Disable component "probe1"
curl -k -X POST https://<webserver>:8050/api/components/disable/probe1 \
-H "Authorization: Bearer <token>"
# Enable component "probe1" (type: monitor)
curl -k -X POST https://<webserver>:8050/api/components/enable/probe1/monitor \
-H "Authorization: Bearer <token>"
Certificate management
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/reloadCertificates |
Reload TLS certificates on Webserver |
GET |
/api/reloadComponentCertificates/:key |
Reload TLS certificates on a component |
URL Monitors
HTTP/HTTPS URL availability and response time checks.
Common operations
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/urls |
Create a new URL monitor |
DELETE |
/api/urls/:key |
Delete a URL monitor |
DELETE |
/api/urls/clean/:key |
Delete historical data only |
DELETE |
/api/urls/ref/:key |
Delete Webserver reference only |
GET |
/api/urls/run/:key |
Trigger an on-demand run |
POST |
/api/urls/disable/:key |
Disable a URL monitor |
POST |
/api/urls/enable/:key |
Enable a URL monitor |
GET |
/api/urls/status |
Get status of all URL monitors |
GET |
/api/urls/details |
Get details of all URL monitors |
GET |
/api/urls/details/:key |
Get details of a specific URL monitor |
GET |
/api/urls/ko |
List all non-OK URL monitors |
GET |
/api/urls/disabled |
List all disabled URL monitors |
Create a URL monitor
curl -k -X POST https://<webserver>:8050/api/urls \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Homepage Check",
"description": "Monitor the main website homepage",
"url": "https://www.example.com",
"probe": "probe-paris",
"sched": "5MIN",
"tags": "Production,Web",
"state": "on",
"timeout": "30",
"retries": "2",
"threshCri": "5000",
"threshMaj": "3000",
"threshMin": "1500",
"certCheck": "on",
"checkCertExp": "on",
"nbDaysNotifCert": "30",
"emailsNotifCert": "ops@example.com",
"emailOnF": "true",
"emailR": "ops@example.com",
"emailOnSC": "true",
"patternUrl": "Welcome",
"patternComp": "string =="
}'
Get URL monitor status
# All URL statuses
curl -k -X GET https://<webserver>:8050/api/urls/status \
-H "Authorization: Bearer <token>"
# Specific monitor
curl -k -X GET https://<webserver>:8050/api/urls/details/homepage-check \
-H "Authorization: Bearer <token>"
# All non-OK monitors
curl -k -X GET https://<webserver>:8050/api/urls/ko \
-H "Authorization: Bearer <token>"
API Monitors
REST API endpoint monitoring with custom methods, headers, and body validation.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/apis |
Create a new API monitor |
DELETE |
/api/apis/:key |
Delete an API monitor |
DELETE |
/api/apis/clean/:key |
Delete historical data only |
DELETE |
/api/apis/ref/:key |
Delete Webserver reference only |
GET |
/api/apis/run/:key |
Trigger an on-demand run |
POST |
/api/apis/disable/:key |
Disable |
POST |
/api/apis/enable/:key |
Enable |
GET |
/api/apis/status |
Status of all API monitors |
GET |
/api/apis/details |
Details of all API monitors |
GET |
/api/apis/details/:key |
Details of a specific API monitor |
GET |
/api/apis/ko |
List all non-OK API monitors |
GET |
/api/apis/disabled |
List all disabled API monitors |
EUM / Browser Monitors
Selenium-based end-user monitoring (browser automation scenarios).
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/monitors |
Create a new EUM monitor (via Swagger — use Web UI for full script upload) |
DELETE |
/api/monitors/:key |
Delete a monitor |
DELETE |
/api/monitors/clean/:key |
Delete historical data only |
DELETE |
/api/monitors/ref/:key |
Delete Webserver reference only |
GET |
/api/monitors/run/:key/:show |
Trigger an on-demand run |
POST |
/api/monitors/stop/:key |
Stop a running monitor |
POST |
/api/monitors/disable/:key |
Disable a monitor |
POST |
/api/monitors/enable/:key |
Enable a monitor |
GET |
/api/monitors/status |
Status of all EUM monitors |
GET |
/api/monitors/details |
Details of all EUM monitors |
GET |
/api/monitors/details/:key |
Details of a specific EUM monitor |
GET |
/api/monitors/ko |
List all non-OK monitors |
GET |
/api/monitors/disabled |
List all disabled monitors |
The :show parameter in the run endpoint controls whether a browser window is displayed during execution (true requires the probe to run as a process, not a service).
# Run EUM monitor headlessly
curl -k -X GET "https://<webserver>:8050/api/monitors/run/my-monitor/false" \
-H "Authorization: Bearer <token>"
# Stop a running monitor
curl -k -X POST https://<webserver>:8050/api/monitors/stop/my-monitor \
-H "Authorization: Bearer <token>"
TCP Monitors
TCP port connectivity checks.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/tcps |
Create a new TCP monitor |
DELETE |
/api/tcps/:key |
Delete |
DELETE |
/api/tcps/clean/:key |
Delete historical data |
DELETE |
/api/tcps/ref/:key |
Delete reference |
GET |
/api/tcps/run/:key |
Trigger on-demand run |
POST |
/api/tcps/disable/:key |
Disable |
POST |
/api/tcps/enable/:key |
Enable |
GET |
/api/tcps/status |
Status of all TCP monitors |
GET |
/api/tcps/details |
Details of all TCP monitors |
GET |
/api/tcps/details/:key |
Details of a specific TCP monitor |
GET |
/api/tcps/ko |
Non-OK TCP monitors |
GET |
/api/tcps/disabled |
Disabled TCP monitors |
Create a TCP monitor
curl -k -X POST https://<webserver>:8050/api/tcps \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Redis Port 6379",
"description": "Check Redis TCP port",
"destIp": "10.0.1.20",
"destPort": "6379",
"probe": "probe-paris",
"sched": "1MIN",
"tags": "Production,Cache",
"state": "on",
"timeout": "5000",
"retries": "2",
"threshCri": "1000",
"threshMaj": "500",
"threshMin": "200",
"emailOnF": "true",
"emailR": "ops@example.com"
}'
Ping Monitors
ICMP ping checks (latency, jitter, packet loss).
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/pings |
Create a new Ping monitor |
DELETE |
/api/pings/:key |
Delete |
GET |
/api/pings/run/:key |
Trigger on-demand run |
POST |
/api/pings/disable/:key |
Disable |
POST |
/api/pings/enable/:key |
Enable |
GET |
/api/pings/status |
Status of all Ping monitors |
GET |
/api/pings/details |
Details of all Ping monitors |
GET |
/api/pings/details/:key |
Details of a specific Ping monitor |
GET |
/api/pings/ko |
Non-OK Ping monitors |
GET |
/api/pings/disabled |
Disabled Ping monitors |
Create a Ping monitor
curl -k -X POST https://<webserver>:8050/api/pings \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Gateway Ping",
"destIp": "10.0.0.1",
"count": "5",
"probe": "probe-paris",
"sched": "1MIN",
"tags": "Production,Network",
"state": "on",
"timeout": "5000",
"retries": "2",
"threshCri": "500",
"threshMaj": "200",
"threshMin": "100",
"jitterThreshCri": "100000",
"jitterThreshMaj": "50000",
"jitterThreshMin": "20000",
"emailOnF": "true",
"emailR": "ops@example.com"
}'
DNS Monitors
DNS resolution checks (nslookup).
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/nslookups |
Create a new DNS monitor |
DELETE |
/api/nslookups/:key |
Delete |
GET |
/api/nslookups/run/:key |
Trigger on-demand run |
POST |
/api/nslookups/disable/:key |
Disable |
POST |
/api/nslookups/enable/:key |
Enable |
GET |
/api/nslookups/status |
Status of all DNS monitors |
GET |
/api/nslookups/details |
Details of all DNS monitors |
GET |
/api/nslookups/details/:key |
Details of a specific DNS monitor |
GET |
/api/nslookups/ko |
Non-OK DNS monitors |
GET |
/api/nslookups/disabled |
Disabled DNS monitors |
Create a DNS monitor
curl -k -X POST https://<webserver>:8050/api/nslookups \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"display_name": "DNS Check example.com",
"lookupName": "example.com",
"probe": "probe-paris",
"sched": "5MIN",
"tags": "Production,DNS",
"state": "on",
"timeout": "5000",
"retries": "2",
"threshCri": "2000",
"threshMaj": "1000",
"threshMin": "500",
"emailOnF": "true",
"emailR": "ops@example.com"
}'
Database Monitors
SQL query execution and result validation (MySQL, MSSQL).
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/dbs |
Create a new DB monitor |
DELETE |
/api/dbs/:key |
Delete |
GET |
/api/dbs/run/:key |
Trigger on-demand run |
POST |
/api/dbs/disable/:key |
Disable |
POST |
/api/dbs/enable/:key |
Enable |
GET |
/api/dbs/status |
Status of all DB monitors |
GET |
/api/dbs/details |
Details of all DB monitors |
GET |
/api/dbs/details/:key |
Details of a specific DB monitor |
GET |
/api/dbs/ko |
Non-OK DB monitors |
GET |
/api/dbs/disabled |
Disabled DB monitors |
SNMP Monitors
SNMP OID polling and threshold evaluation.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/snmps |
Create a new SNMP monitor |
DELETE |
/api/snmps/:key |
Delete |
GET |
/api/snmps/run/:key |
Trigger on-demand run |
POST |
/api/snmps/disable/:key |
Disable |
POST |
/api/snmps/enable/:key |
Enable |
GET |
/api/snmps/status |
Status of all SNMP monitors |
GET |
/api/snmps/details |
Details of all SNMP monitors |
GET |
/api/snmps/details/:key |
Details of a specific SNMP monitor |
GET |
/api/snmps/ko |
Non-OK SNMP monitors |
GET |
/api/snmps/disabled |
Disabled SNMP monitors |
System Monitors
Probe self-monitoring: CPU, memory, and disk usage of the probe host.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/syss |
Create a new System monitor |
DELETE |
/api/syss/:key |
Delete |
GET |
/api/syss/run/:key |
Trigger on-demand run |
POST |
/api/syss/disable/:key |
Disable |
POST |
/api/syss/enable/:key |
Enable |
GET |
/api/syss/status |
Status of all System monitors |
GET |
/api/syss/details |
Details of all System monitors |
GET |
/api/syss/details/:key |
Details of a specific System monitor |
GET |
/api/syss/ko |
Non-OK System monitors |
GET |
/api/syss/disabled |
Disabled System monitors |
Applications
Group monitors into logical applications with aggregated status and topology views.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/apps |
Create a new application |
DELETE |
/api/apps/:key |
Delete an application |
DELETE |
/api/apps/clean/:key |
Delete historical data |
DELETE |
/api/apps/ref/:key |
Delete reference |
POST |
/api/apps/disable/:key |
Disable |
POST |
/api/apps/enable/:key |
Enable |
GET |
/api/apps/status |
Status of all applications |
GET |
/api/apps/details/:key |
Details of a specific application |
Create an application
curl -k -X POST https://<webserver>:8050/api/apps \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "ecommerce-prod",
"display_name": "E-Commerce Production",
"description": "All production e-commerce monitors",
"tags": "Production,Ecommerce",
"apps": "Checkout,Catalog,Payment",
"bRule": "or",
"threshCri": "1",
"threshMaj": "2",
"threshMin": "3",
"state": "on",
"emailOnF": "true",
"emailR": "ops@example.com",
"emailOnSC": "true"
}'
Reports
Generate and send performance reports.
| Method | Endpoint | Description |
|---|---|---|
POST |
/genAndSendReport |
Generate and send a specific report |
POST |
/genAndSendReportAll |
Generate and send all reports |
POST |
/genAndSendReportUrl |
Generate and send a URL monitor report |
POST |
/genAndSendReportApi |
Generate and send an API monitor report |
POST |
/genAndSendReportTcp |
Generate and send a TCP monitor report |
POST |
/genAndSendReportPing |
Generate and send a Ping monitor report |
POST |
/genAndSendInfraReport |
Generate and send an infrastructure report |
# Generate and send report by key
curl -k -X POST https://<webserver>:8050/genAndSendReport \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"key": "weekly-perf-report"}'
Downtimes
Create planned maintenance windows to suppress alerting.
| Method | Endpoint | Description |
|---|---|---|
POST |
/downtime/create |
Create a downtime |
POST |
/downtime/update/:key |
Update a downtime |
DELETE |
/downtime/delete/:key |
Delete a downtime |
GET |
/downtime/detail/:key |
Get a specific downtime |
GET |
/downtime/details |
List all downtimes with details |
GET |
/downtime/some/:tags |
List downtimes for given tags |
GET |
/downtime/cronjobs |
List downtime cron schedules |
# Create a downtime window
curl -k -X POST https://<webserver>:8050/downtime/create \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "weekly-maintenance",
"display_name": "Weekly Maintenance Window",
"tags": "Production",
"sched": "0 2 * * 0",
"duration": "120",
"state": "on"
}'
API Keys & Token Management
Generate long-lived API keys for automation and CI/CD integration.
| Method | Endpoint | Description |
|---|---|---|
GET |
/apiKeys |
List all API keys |
POST |
/genAPIKey |
Generate a custom API key with configurable TTL |
POST |
/genAPIKeyComponent |
Generate an API key for a component |
POST |
/revokeAPIKey |
Revoke an API key |
GET |
/getComponentToken |
Get the current component JWT token |
GET |
/gettoken |
Get current user token details |
# Generate a 1-year API key
curl -k -X POST https://<webserver>:8050/genAPIKey \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "cicd-pipeline",
"ttl": "8760",
"group": "admin"
}'
# Revoke an API key
curl -k -X POST https://<webserver>:8050/revokeAPIKey \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"key": "cicd-pipeline"}'
Hosts
Manage monitored hosts with SSH-based instrumentation file distribution.
| Method | Endpoint | Description |
|---|---|---|
GET |
/hosts |
List all hosts |
POST |
/addHost |
Add a host |
POST |
/updateHost |
Update a host |
DELETE |
/host/:probe/:key |
Delete a host |
GET |
/getHostDetails/:key |
Get host details |
GET |
/hostsList |
Flat list of all hosts |
GET |
/hostsList/:probe |
Hosts registered to a specific probe |
POST |
/sendInstrumFiles/:key |
Push instrumentation files via SSH/SFTP |
Devices (SNMP)
Manage SNMP-monitored devices.
| Method | Endpoint | Description |
|---|---|---|
GET |
/devices |
List all SNMP devices |
POST |
/addDevice |
Add a device |
POST |
/updateDevice |
Update a device |
DELETE |
/device/:probe/:key |
Delete a device |
GET |
/getDeviceDetails/:key |
Get device details |
POST |
/device/testsnmp |
Test SNMP connectivity to a device |
POST |
/device/testoid |
Test a specific OID on a device |
Database Operations
Low-level KV store operations. Requires admin group.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/backupKV |
Trigger a KV store backup |
GET |
/api/reinitKV |
Reinitialize the KV store (⚠ destructive) |
POST |
/backupDatabase |
Backup the Webserver KV store |
POST |
/backupDatabase/:key |
Backup a specific component’s KV store |
POST |
/reinitDatabase/:svrType/:key |
Reinitialize a component’s KV store (⚠ destructive) |
GET |
/webserver/:bucket/allV |
Get all values from a bucket |
GET |
/webserver/:bucket/allK |
Get all keys from a bucket |
GET |
/webserver/:bucket/allKV |
Get all key-value pairs from a bucket |
/reinitKV and /reinitDatabase endpoints permanently delete all data in the target KV store. Always take a backup first with /backupKV or /backupDatabase.
# Backup the Webserver KV store
curl -k -X POST https://<webserver>:8050/backupDatabase \
-H "Authorization: Bearer <token>"
# Backup probe "probe1" KV store
curl -k -X POST https://<webserver>:8050/backupDatabase/probe1 \
-H "Authorization: Bearer <token>"
# List all keys in the "user" bucket
curl -k -X GET https://<webserver>:8050/webserver/user/allK \
-H "Authorization: Bearer <token>"
Common Alert Fields
All monitor types (URL, API, TCP, Ping, DNS, DB, SNMP, EUM) share the same alerting fields:
Common Schedule Values
The sched field accepts the following values:
| Value | Description |
|---|---|
1MIN |
Every 1 minute |
5MIN |
Every 5 minutes |
15MIN |
Every 15 minutes |
30MIN |
Every 30 minutes |
1HOUR |
Every hour |
6HOUR |
Every 6 hours |
12HOUR |
Every 12 hours |
1DAY |
Once a day |
CRON |
Custom cron expression (set schedCron) |
When using CRON, set sched to "CRON" and provide a standard cron expression in schedCron:
"sched": "CRON",
"schedCron": "0 8 * * 1-5"
Status Codes
All API responses include a numeric code field:
| Code | Meaning |
|---|---|
200 |
Success |
400 |
Bad request — missing or invalid parameters |
401 |
Unauthorized — expired token, wrong credentials, or insufficient group |
404 |
Not found |
429 |
Too many login attempts — IP locked out for 5 minutes |
500 |
Internal server error |
Monitor status values returned by status endpoints:
| Status | Color | Meaning |
|---|---|---|
OK |
Green | All checks passing within thresholds |
MINOR |
Yellow | Response time above MINOR threshold |
MAJOR |
Orange | Response time above MAJOR threshold |
CRITICAL |
Red | Response time above CRITICAL threshold |
ERROR |
Red | Check failed (connection refused, timeout) |
DOWN |
Gray | Monitor disabled or probe unreachable |
Predictions
AI-powered threshold suggestions based on historical performance data.
| Method | Endpoint | Description |
|---|---|---|
GET |
/predictions |
List all prediction configurations |
GET |
/prediction/:name/:probe |
Get prediction for a specific monitor |
POST |
/runPredictions |
Trigger prediction computation |
GET |
/predictionSettings |
Get prediction engine settings |
POST |
/updatePredictionSettings |
Update prediction settings |
Swagger UI
The full interactive API reference is available at:
https://<webserver>:8050/docs/index.html
The Swagger UI lets you explore all endpoints, inspect request/response schemas, and execute calls directly from the browser using a valid JWT token.
Quick Reference: Shell Script Template
Use this template to build automation scripts against the Webserver API:
#!/bin/bash
WEBSERVER="https://webserver.example.com:8050"
CACERT="/path/to/webserver.crt" # or use -k for testing
# 1. Authenticate
TOKEN=$(curl -s --cacert "$CACERT" -X POST "$WEBSERVER/api/auth" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"yourPassword"}' \
| jq -r '.token')
if [ -z "$TOKEN" ] || [ "$TOKEN" = "null" ]; then
echo "Authentication failed"
exit 1
fi
# 2. Make API calls
curl -s --cacert "$CACERT" -X GET "$WEBSERVER/api/urls/status" \
-H "Authorization: Bearer $TOKEN" \
| jq .
# 3. Get all non-OK monitors across all types
for TYPE in urls apis monitors tcps pings nslookups dbs snmps syss; do
echo "=== NON-OK $TYPE ==="
curl -s --cacert "$CACERT" -X GET "$WEBSERVER/api/$TYPE/ko" \
-H "Authorization: Bearer $TOKEN" \
| jq .
done
See also
- Create API Tokens — generate long-lived API tokens for CI/CD
- Webserver Component — architecture, startup, and service management
- Webserver Configuration — complete settings reference
- Monitor HTTP API — Monitor Probe API reference
- Integrator HTTP API — Integrator API reference