Overview
Complete endpoint reference for all ACS Monitor application API resources. All endpoints require Bearer token authentication unless noted otherwise. Endpoints are prefixed with /api/v1.
Authentication
| Method |
Path |
Description |
Permission |
POST | /auth/login | Authenticate and receive a bearer token | Public |
POST | /auth/logout | Revoke the current token | Authenticated |
GET | /auth/me | Get current user info, roles, and permissions | Authenticated |
SNMP Devices
| Method |
Path |
Description |
Permission |
GET | /devices | List all devices (filterable, paginated) | devices.view |
POST | /devices | Create a new SNMP device | devices.create |
GET | /devices/{id} | Get device details with OIDs | devices.view |
PUT | /devices/{id} | Update a device | devices.edit |
DELETE | /devices/{id} | Delete a device | devices.delete |
POST | /devices/{id}/poll | Trigger an immediate SNMP poll | devices.edit |
POST | /devices/{id}/walk | Perform an SNMP walk to discover OIDs | devices.edit |
GET | /devices/{id}/metrics | Get time-series metrics | devices.view |
Device Groups
| Method |
Path |
Description |
Permission |
GET | /device-groups | List all device groups | devices.view |
POST | /device-groups | Create a device group | devices.create |
GET | /device-groups/{id} | Get a device group | devices.view |
PUT | /device-groups/{id} | Update a device group | devices.edit |
DELETE | /device-groups/{id} | Delete a device group | devices.delete |
OIDs
| Method |
Path |
Description |
Permission |
GET | /devices/{device}/oids | List OIDs for a device | devices.view |
POST | /devices/{device}/oids | Create an OID on a device | devices.edit |
GET | /oids/{id} | Get OID details | devices.view |
PUT | /oids/{id} | Update an OID | devices.edit |
DELETE | /oids/{id} | Delete an OID | devices.delete |
POST | /oids/{id}/toggle-monitor | Toggle monitoring on/off for an OID | devices.edit |
Device Webhooks
| Method |
Path |
Description |
Permission |
GET | /devices/{device}/webhooks | List webhooks for a device | devices.view |
POST | /devices/{device}/webhooks | Create a webhook on a device | devices.create |
GET | /devices/{device}/webhooks/{webhook} | Get webhook details | devices.view |
PUT | /devices/{device}/webhooks/{webhook} | Update a webhook | devices.edit |
DELETE | /devices/{device}/webhooks/{webhook} | Delete a webhook | devices.delete |
POST | /devices/{device}/webhooks/{webhook}/toggle | Toggle webhook active/inactive | devices.edit |
GET | /devices/{device}/webhooks/{webhook}/events | List webhook ingest events (paginated) | devices.view |
Webhook Alert Rules
| Method |
Path |
Description |
Permission |
GET | /devices/{device}/webhooks/{webhook}/alert-rules | List alert rules for a webhook | alerts.view |
POST | /devices/{device}/webhooks/{webhook}/alert-rules | Create a webhook alert rule | alerts.create |
PUT | /devices/{device}/webhooks/{webhook}/alert-rules/{rule} | Update a webhook alert rule | alerts.edit |
DELETE | /devices/{device}/webhooks/{webhook}/alert-rules/{rule} | Delete a webhook alert rule | alerts.delete |
SNMP Traps
| Method |
Path |
Description |
Permission |
GET | /snmp-traps | List SNMP traps (filter by status, severity, device, search) | devices.view |
GET | /snmp-traps/{id} | Get trap details with varbinds | devices.view |
POST | /snmp-traps/{id}/acknowledge | Acknowledge a trap | alerts.acknowledge |
DELETE | /snmp-traps/{id} | Delete a trap | devices.delete |
Service Monitors
| Method |
Path |
Description |
Permission |
GET | /monitors | List monitors (filter by status, type, group, search) | monitors.view |
POST | /monitors | Create a new service monitor | monitors.create |
GET | /monitors/{id} | Get monitor details with group and recent results | monitors.view |
PUT | /monitors/{id} | Update a monitor | monitors.edit |
DELETE | /monitors/{id} | Delete a monitor | monitors.delete |
POST | /monitors/{id}/check | Trigger an immediate manual check | monitors.edit |
GET | /monitors/{id}/results | Get recent check results | monitors.view |
GET | /monitors/{id}/uptime | Get uptime statistics (7d, 30d) | monitors.view |
Monitor Groups
| Method |
Path |
Description |
Permission |
GET | /monitor-groups | List all monitor groups | monitors.view |
POST | /monitor-groups | Create a monitor group | monitors.create |
GET | /monitor-groups/{id} | Get a monitor group | monitors.view |
PUT | /monitor-groups/{id} | Update a monitor group | monitors.edit |
DELETE | /monitor-groups/{id} | Delete a monitor group | monitors.delete |
SNMP Alert Rules
| Method |
Path |
Description |
Permission |
GET | /alert-rules | List SNMP alert rules (filter by device, severity, active) | alerts.view |
POST | /alert-rules | Create an SNMP alert rule with channels | alerts.create |
GET | /alert-rules/{id} | Get rule with device, OID, channels, recent events | alerts.view |
PUT | /alert-rules/{id} | Update rule and sync channels | alerts.edit |
DELETE | /alert-rules/{id} | Delete rule and detach channels | alerts.delete |
SNMP Alert Events
| Method |
Path |
Description |
Permission |
GET | /alert-events | List SNMP alert events (paginated) | alerts.view |
GET | /alert-events/{id} | Get alert event details | alerts.view |
POST | /alert-events/{id}/acknowledge | Acknowledge an open alert | alerts.acknowledge |
POST | /alert-events/{id}/resolve | Manually resolve an alert | alerts.acknowledge |
Monitor Alert Rules
| Method |
Path |
Description |
Permission |
GET | /monitor-alert-rules | List monitor alert rules | alerts.view |
POST | /monitor-alert-rules | Create a monitor alert rule | alerts.create |
GET | /monitor-alert-rules/{id} | Get monitor alert rule details | alerts.view |
PUT | /monitor-alert-rules/{id} | Update a monitor alert rule | alerts.edit |
DELETE | /monitor-alert-rules/{id} | Delete a monitor alert rule | alerts.delete |
Monitor Events
| Method |
Path |
Description |
Permission |
GET | /monitor-events | List monitor alert events | alerts.view |
GET | /monitor-events/{id} | Get monitor event details | alerts.view |
POST | /monitor-events/{id}/acknowledge | Acknowledge a monitor event | alerts.acknowledge |
POST | /monitor-events/{id}/resolve | Resolve a monitor event | alerts.acknowledge |
Alert Channels
| Method |
Path |
Description |
Permission |
GET | /alert-channels | List notification channels | channels.view |
POST | /alert-channels | Create a channel (email, sms, webhook, slack) | channels.create |
GET | /alert-channels/{id} | Get channel details | channels.view |
PUT | /alert-channels/{id} | Update a channel | channels.edit |
DELETE | /alert-channels/{id} | Delete a channel | channels.delete |
POST | /alert-channels/{id}/test | Send a test notification | channels.edit |
MIBs
| Method |
Path |
Description |
Permission |
GET | /mibs | List uploaded MIBs | mibs.view |
POST | /mibs | Upload a MIB file (multipart) | mibs.upload |
GET | /mibs/{id} | Get MIB details and parsed OIDs | mibs.view |
DELETE | /mibs/{id} | Delete a MIB | mibs.delete |
Discovery
| Method |
Path |
Description |
Permission |
GET | /discovery | List discovery jobs | discovery.view |
POST | /discovery | Create a discovery job (subnet CIDR) | discovery.create |
GET | /discovery/{id} | Get job details with results | discovery.view |
DELETE | /discovery/{id} | Delete a discovery job | discovery.create |
POST | /discovery/{id}/run | Trigger a discovery scan | discovery.run |
POST | /discovery-results/{id}/import | Import a discovered device | discovery.create |
| Method |
Path |
Description |
Permission |
GET | /dashboards | List user dashboards | dashboards.view |
POST | /dashboards | Create a dashboard | dashboards.create |
GET | /dashboards/{id} | Get dashboard with widgets | dashboards.view |
PUT | /dashboards/{id} | Update dashboard settings | dashboards.edit |
DELETE | /dashboards/{id} | Delete dashboard and all widgets | dashboards.delete |
GET | /dashboards/{id}/widgets | List widgets on a dashboard | dashboards.view |
POST | /dashboards/{id}/widgets | Add a widget to a dashboard | dashboards.edit |
PUT | /widgets/{id} | Update a widget's config | dashboards.edit |
DELETE | /widgets/{id} | Remove a widget | dashboards.edit |
POST | /widgets/positions | Batch update widget positions | dashboards.edit |
Users & Roles
| Method |
Path |
Description |
Permission |
GET | /users | List all users | users.view |
POST | /users | Create a user | users.create |
GET | /users/{id} | Get user details | users.view |
PUT | /users/{id} | Update a user | users.edit |
DELETE | /users/{id} | Delete a user | users.delete |
GET | /roles | List all roles with permissions | roles.manage |
GET | /roles/{id} | Get role details | roles.manage |
PUT | /roles/{id} | Update role permissions | roles.manage |
| Method |
Path |
Description |
Permission |
POST | /tools/ping | Run a ping test (host, count) | monitors.run_tools |
POST | /tools/traceroute | Run a traceroute (host, max_hops) | monitors.run_tools |
POST | /tools/port-scan | Scan TCP port range (host, port_start, port_end) | monitors.run_tools |
POST | /tools/ssl-check | Check SSL certificate (host, port) | monitors.run_tools |
POST | /tools/http-headers | Inspect HTTP headers (url, follow_redirects) | monitors.run_tools |
POST | /tools/dns-lookup | DNS query (host, record_type, resolver) | monitors.run_tools |
POST | /tools/whois | WHOIS lookup (query) | monitors.run_tools |
Webhook Ingest
| Method |
Path |
Description |
Permission |
GET|POST | /webhook-ingest/{token} | Receive webhook data (no auth, token-based) | Public |
Notes:
- Accepts any JSON body — stored as the webhook event payload
- Query parameters are also captured
- Token is generated when creating a webhook on a device
- Source IP is logged for each ingest event
System
| Method |
Path |
Description |
Permission |
GET | /system/health | System health metrics (services, queues, DB) | settings.view |
GET | /system/stats | Application statistics (device/monitor counts) | settings.view |