API reference
Complete reference for the SecuMon v2 API: authentication, roles and the 62 endpoints grouped by module, with examples.
Overview
The SecuMon v2 API is a JSON REST API. All resources are isolated to your organization: you only see and manipulate your own data.
Base URL
| Environment | Base URL |
|---|---|
| Production | https://api.secumon.secuaas.ovh/api/v2 |
| Development | https://api.secumon.secuaas.dev/api/v2 |
Authentication
Each request must carry your session Bearer token, obtained by logging in to the portal:
Authorization: Bearer <your-token>curl -s https://api.secumon.secuaas.ovh/api/v2/status \
-H "Authorization: Bearer $SECUMON_TOKEN"A request without a valid token is rejected. Log in to the portal, retrieve your
token, and place it in the Authorization header: that is all you need.
Required roles
The minimum role depends on the action:
- Read (list, detail, graphs, costs): all roles
(
owner,admin,operator,viewer). - Write (create, edit, delete) on hosts, checks, policies, status pages,
maintenance windows, on-call schedules, workers, AI tagging:
owner/admin. - Incident actions (create, acknowledge, resolve, updates, AI mode):
owner/admin/operator. - Run a check on demand:
owner/admin/operator.
Conventions
- Request and response bodies are JSON (
Content-Type: application/json). - Dates are in RFC3339 format (
2026-06-23T12:00:00Z). - Identifiers are UUIDs.
- Common return codes:
200OK,201resource created,204success with no body,400invalid request,403insufficient role,404not found,503dependency unavailable. - The examples use the fictitious host
web-prod-01(10.0.0.12).
Hosts
GET /hosts
Lists hosts. Role: all. Params: active=true (optional).
curl -s "https://api.secumon.secuaas.ovh/api/v2/hosts?active=true" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "hosts": [ { "id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "web-prod-01", "hostname": "10.0.0.12", "is_active": true } ] }GET /hosts/:id
Detail of a host. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "web-prod-01", "hostname": "10.0.0.12", "host_type": "server", "tags": { "env": "prod" }, "is_active": true }POST /hosts
Creates a host. Role: owner/admin. Required: name, hostname.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/hosts \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "name": "web-prod-01", "hostname": "10.0.0.12", "host_type": "server", "tags": { "env": "prod" } }'{ "id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "web-prod-01", "hostname": "10.0.0.12", "is_active": true, "created_at": "2026-06-23T12:00:00Z" }PUT /hosts/:id
Edits a host (partial fields). Role: owner/admin.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "is_active": false }'{ "id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "web-prod-01", "is_active": false, "updated_at": "2026-06-23T12:30:00Z" }DELETE /hosts/:id
Deletes a host. Role: owner/admin. Response: 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f \
-H "Authorization: Bearer $SECUMON_TOKEN"GET /hosts/:id/latest
Latest result of each check of the host. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f/latest \
-H "Authorization: Bearer $SECUMON_TOKEN"[ { "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "time": "2026-06-23T12:01:30Z", "status": 0, "latency_ms": 1.5, "output": "pong 1.5ms", "error_msg": "" } ]GET /hosts/:id/snmp-metrics
SNMP series of the host. Role: all. Params: from, to (RFC3339, default: 6 h).
curl -s "https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f/snmp-metrics" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "checks": [ { "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "check_name": "snmp web-prod-01", "points": [] } ] }GET /hosts/:id/uptime
Ping uptime. Role: all. Params: window=24h|7d|30d (default 24h).
curl -s "https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f/uptime?window=7d" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "uptime_pct": 99.87, "samples": 10080, "window": "7d" }GET /hosts/:id/logs
Correlated logs of the host. Role: all. Params: from, to (max 24 h), limit (1–5000, default 100).
curl -s "https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f/logs?limit=50" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "enabled": true, "count": 0, "entries": [] }POST /hosts/ai-tag
AI tagging of all hosts (sequential, max 200). Role: owner/admin. Optional body: { "active_only": true }.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/hosts/ai-tag \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "active_only": true }'{ "tagged": 1, "failed": 0, "results": [ { "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "status": "ok", "ai_tags": { "role": "web-server" }, "confidence": 0.82 } ] }POST /hosts/:id/ai-tag
AI tagging of a single host. Role: owner/admin.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/hosts/8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f/ai-tag \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "host": { "id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "web-prod-01" }, "ai_tags": { "role": "web-server" }, "confidence": 0.82, "cost_usd": 0.0004, "tags": { "env": "prod", "ai:role": "web-server" } }Checks
GET /checks
Lists checks. Role: all. Params: host_id (optional).
curl -s "https://api.secumon.secuaas.ovh/api/v2/checks?host_id=8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "checks": [ { "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "ping web-prod-01", "check_type": "ping", "interval_sec": 60, "enabled": true } ] }GET /checks/:id
Detail of a check. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /checks
Creates a check. Role: owner/admin. Required: host_id, name, check_type.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/checks \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "ping web-prod-01", "check_type": "ping", "config": { "host": "10.0.0.12" }, "interval_sec": 60, "timeout_sec": 10 }'{ "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "ping web-prod-01", "check_type": "ping", "interval_sec": 60, "timeout_sec": 10, "enabled": true }PUT /checks/:id
Edits a check (partial fields). Role: owner/admin.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "interval_sec": 120, "enabled": false }'DELETE /checks/:id
Deletes a check. Role: owner/admin. Response: 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
-H "Authorization: Bearer $SECUMON_TOKEN"GET /checks/:id/last-result
Latest raw result. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/last-result \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "time": "2026-06-23T12:01:30Z", "status": 0, "latency_ms": 1.5, "output": "pong 1.5ms", "error_msg": "" }POST /checks/:id/run
Forces an immediate run. Role: owner/admin/operator. Response: 202.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/run \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "queued": true, "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "run_id": "c0ffee00-1234-4abc-9def-0123456789ab" }GET /metrics/checks
Aggregated results of a check. Role: all. Params: check_id (required), from, to, granularity (raw|1min|5min|1h|1d).
curl -s "https://api.secumon.secuaas.ovh/api/v2/metrics/checks?check_id=1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d&granularity=5min" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "from": "2026-06-23T11:00:00Z", "to": "2026-06-23T12:00:00Z", "granularity": "5min", "count": 12, "results": [] }SNMP
GET /snmp-devices
Inventory of SNMP devices (derived from snmp checks). Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/snmp-devices \
-H "Authorization: Bearer $SECUMON_TOKEN"[ { "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f", "name": "snmp web-prod-01", "hostname": "10.0.0.12", "metrics": {} } ]Incidents
GET /incidents
Lists open incidents. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/incidents \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "incidents": [ { "id": "9d8c7b6a-1234-4abc-9def-001122334455", "title": "web-prod-01 no longer responds to ping", "severity": "critical", "status": "investigating" } ] }GET /incidents/:id
Detail of an incident. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455 \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /incidents
Creates an incident manually. Role: owner/admin/operator. Required: title.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/incidents \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "title": "web-prod-01 degradation", "severity": "major" }'{ "id": "9d8c7b6a-1234-4abc-9def-001122334455", "title": "web-prod-01 degradation", "severity": "major", "status": "investigating", "tags": { "source": "manual" } }POST /incidents/:id/ack
Acknowledges an incident (shortcut). Role: owner/admin/operator.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/ack \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "status": "acknowledged" }PUT /incidents/:id/acknowledge
Acknowledges an incident. Role: owner/admin/operator.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/acknowledge \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "status": "acknowledged" }POST /incidents/:id/resolve
Resolves an incident (shortcut). Role: owner/admin/operator.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/resolve \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "status": "resolved", "resolved_at": "2026-06-23T12:10:00Z" }PUT /incidents/:id/resolve
Resolves an incident. Role: owner/admin/operator.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/resolve \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "status": "resolved", "resolved_at": "2026-06-23T12:10:00Z" }POST /incidents/:id/updates
Adds an update to the timeline. Role: owner/admin/operator. Required: note. Optional: status.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/updates \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "note": "Mitigation applied.", "status": "acknowledged" }'{ "ok": true, "event": { "time": "2026-06-23T12:05:00Z", "action": "update", "note": "Mitigation applied.", "status": "acknowledged" } }POST /incidents/:id/ai-mode
Enables AI analysis mode (critical incident only). Role: owner/admin/operator. Required: provider, justification. Optional: budget_usd (default 50, max 200), operator.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/ai-mode \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "provider": "claude", "justification": "Critical outage, fast analysis.", "budget_usd": 50 }'{ "incident_id": "9d8c7b6a-1234-4abc-9def-001122334455", "provider": "anthropic", "budget_usd": 50, "started_at": "2026-06-23T12:06:00Z", "active": true }DELETE /incidents/:id/ai-mode
Disables AI analysis mode. Role: owner/admin/operator.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/ai-mode \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "incident_id": "9d8c7b6a-1234-4abc-9def-001122334455", "total_usd": 3.42, "status": "ended" }GET /incidents/:id/ai-cost
Cost of AI analysis mode. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455/ai-cost \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "incident_id": "9d8c7b6a-1234-4abc-9def-001122334455", "spent_usd": 3.42, "budget_usd": 50, "active": true, "started_at": "2026-06-23T12:06:00Z" }Alert policies
GET /alert-policies
Lists policies. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/alert-policies \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "policies": [ { "id": "7c6d5e4f-1111-4222-9333-444455556666", "name": "Critical → on-call", "enabled": true, "cooldown_sec": 300 } ] }GET /alert-policies/:id
Detail of a policy. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/alert-policies/7c6d5e4f-1111-4222-9333-444455556666 \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /alert-policies
Creates a policy. Role: owner/admin. Required: name.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/alert-policies \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "name": "Critical → on-call", "conditions": { "severity": ["critical"] }, "channels": { "email": ["oncall@example.com"] }, "cooldown_sec": 300 }'{ "id": "7c6d5e4f-1111-4222-9333-444455556666", "name": "Critical → on-call", "enabled": true, "cooldown_sec": 300 }PUT /alert-policies/:id
Edits a policy. Role: owner/admin. Required: name.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/alert-policies/7c6d5e4f-1111-4222-9333-444455556666 \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "name": "Critical → on-call", "enabled": false, "cooldown_sec": 600 }'DELETE /alert-policies/:id
Deletes a policy. Role: owner/admin. Response: 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/alert-policies/7c6d5e4f-1111-4222-9333-444455556666 \
-H "Authorization: Bearer $SECUMON_TOKEN"On-call
GET /oncall-schedules
Lists schedules. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall-schedules \
-H "Authorization: Bearer $SECUMON_TOKEN"[ { "id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "name": "Web on-call", "timezone": "America/Toronto", "rotation_type": "weekly" } ]GET /oncall-schedules/:id
Detail of a schedule + current on-call. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall-schedules/5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "schedule": { "id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "name": "Web on-call" }, "current_oncall": { "name": "Alice", "email": "alice@example.com" } }POST /oncall-schedules
Creates a schedule. Role: owner/admin. Required: name. Defaults: timezone=America/Toronto, rotation_type=weekly.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/oncall-schedules \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "name": "Web on-call", "members": [ { "name": "Alice", "email": "alice@example.com" } ] }'{ "id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "name": "Web on-call", "timezone": "America/Toronto", "rotation_type": "weekly" }PUT /oncall-schedules/:id
Edits a schedule. Role: owner/admin. Response: 204.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/oncall-schedules/5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "name": "Web on-call", "timezone": "America/Toronto", "rotation_type": "weekly", "members": [ { "name": "Bob", "email": "bob@example.com" } ] }'DELETE /oncall-schedules/:id
Deletes a schedule. Role: owner/admin. Response: 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/oncall-schedules/5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff \
-H "Authorization: Bearer $SECUMON_TOKEN"GET /oncall/current
Current on-call across all schedules. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall/current \
-H "Authorization: Bearer $SECUMON_TOKEN"[ { "schedule_id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "schedule_name": "Web on-call", "on_call": { "name": "Alice", "email": "alice@example.com" } } ]Status pages
GET /status-pages
Lists status pages. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/status-pages \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "status_pages": [ { "id": "abcd1234-5678-4abc-9def-0011aabbccdd", "slug": "web-prod", "title": "Web services status", "is_public": true } ] }GET /status-pages/:id
Detail of a page. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /status-pages
Creates a page. Role: owner/admin. Required: slug, title. Defaults: is_public=true, show_history_days=90.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/status-pages \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "slug": "web-prod", "title": "Web services status", "is_public": true }'{ "id": "abcd1234-5678-4abc-9def-0011aabbccdd", "slug": "web-prod", "title": "Web services status", "is_public": true, "show_history_days": 90 }PUT /status-pages/:id
Edits a page (partial fields). Role: owner/admin.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "title": "Status — Web Services", "show_history_days": 60 }'DELETE /status-pages/:id
Deletes a page. Role: owner/admin. Response: 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
-H "Authorization: Bearer $SECUMON_TOKEN"The public pages (anonymous consultation) are served outside
/api/v2:GET /status/<slug>,GET /status/<slug>/api,GET /status/<slug>/badge/<component>,GET /status/<slug>/rss. See the Status pages page.
Maintenance windows
GET /maintenance-windows
Lists windows. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/maintenance-windows \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "maintenance_windows": [ { "id": "f0f1f2f3-1234-4abc-9def-aabbccddeeff", "title": "Update web-prod-01", "status": "scheduled" } ] }GET /maintenance-windows/:id
Detail of a window. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/maintenance-windows/f0f1f2f3-1234-4abc-9def-aabbccddeeff \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /maintenance-windows
Creates a window. Role: owner/admin. Required: title, start_time, end_time (RFC3339).
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/maintenance-windows \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "title": "Update web-prod-01", "start_time": "2026-06-24T02:00:00Z", "end_time": "2026-06-24T03:00:00Z", "suppress_alerts": true, "affected_hosts": ["8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f"] }'{ "id": "f0f1f2f3-1234-4abc-9def-aabbccddeeff", "title": "Update web-prod-01", "start_time": "2026-06-24T02:00:00Z", "end_time": "2026-06-24T03:00:00Z", "suppress_alerts": true, "notify_subscribers": true, "status": "scheduled" }PUT /maintenance-windows/:id
Edits a window (partial fields). Role: owner/admin.
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/maintenance-windows/f0f1f2f3-1234-4abc-9def-aabbccddeeff \
-H "Authorization: Bearer $SECUMON_TOKEN" -H "Content-Type: application/json" \
-d '{ "end_time": "2026-06-24T03:30:00Z" }'POST /maintenance-windows/:id/start
Starts a window (scheduled → active). Role: owner/admin.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/maintenance-windows/f0f1f2f3-1234-4abc-9def-aabbccddeeff/start \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "id": "f0f1f2f3-1234-4abc-9def-aabbccddeeff", "status": "active" }POST /maintenance-windows/:id/end
Ends a window (active → completed). Role: owner/admin.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/maintenance-windows/f0f1f2f3-1234-4abc-9def-aabbccddeeff/end \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "id": "f0f1f2f3-1234-4abc-9def-aabbccddeeff", "status": "completed" }POST /maintenance-windows/:id/cancel
Cancels a window (→ cancelled). Role: owner/admin. Response: 204.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/maintenance-windows/f0f1f2f3-1234-4abc-9def-aabbccddeeff/cancel \
-H "Authorization: Bearer $SECUMON_TOKEN"Dashboard and status
GET /status
Status overview (counters). Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/status \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "hosts": { "total": 12, "active": 11 }, "checks": { "total": 34, "enabled": 32, "failing": 1, "failing_pct": 3.1 }, "active_incidents": 2, "active_storms": 0, "workers": 2 }GET /events
Real-time feed (SSE) of the dashboard summary. Role: all.
curl -N https://api.secumon.secuaas.ovh/api/v2/events \
-H "Authorization: Bearer $SECUMON_TOKEN"data: {"hosts_total":12,"checks_enabled":32,"incidents_open":2,"recent_incidents":[]}
: pingGET /dashboard
Dashboard summary. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/dashboard \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "hosts_total": 12, "checks_enabled": 34, "incidents_open": 2, "recent_incidents": [] }GET /dashboards/app-security
Application security posture. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/dashboards/app-security \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "generated_at": "2026-06-23T12:00:00Z", "projects": [], "top_findings": [], "trend_30d": [], "totals_by_severity": {}, "totals_by_status": {}, "sub_categories": ["dependency_vulnerabilities", "container_image_hygiene", "runtime_compromise", "network_security_posture"] }Storms
GET /storms
Lists storms. Role: all. Params: active=true (optional).
curl -s "https://api.secumon.secuaas.ovh/api/v2/storms?active=true" \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "count": 1, "storms": [ { "id": "e1e2e3e4-1234-4abc-9def-aabbccddeeff", "started_at": "2026-06-23T11:58:00Z", "total_alerts": 14, "affected_hosts": 3, "affected_checks": 9, "root_cause_type": "network", "confidence": 0.88, "status": "active" } ] }Workers
GET /workers
Lists collection points. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/workers \
-H "Authorization: Bearer $SECUMON_TOKEN"[ { "id": "9a8b7c6d-1234-4abc-9def-aabbccddeeff", "name": "collecteur-bhs-1", "location": "OVH BHS", "status": "active", "checks_executed": 0, "last_heartbeat": "2026-06-23T12:00:30Z" } ]DELETE /workers/:id
Removes a collection point. Role: owner/admin. Response: 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/workers/9a8b7c6d-1234-4abc-9def-aabbccddeeff \
-H "Authorization: Bearer $SECUMON_TOKEN"Workspaces
GET /workspaces
Lists the workspaces attached to your session and the active workspace. Role: all.
curl -s https://api.secumon.secuaas.ovh/api/v2/workspaces \
-H "Authorization: Bearer $SECUMON_TOKEN"{ "workspaces": [ { "workspace_id": "81cdc29b-541f-4274-97d8-c743f303a205", "slug": "engineering", "name": "Engineering", "role": "admin" } ], "active_workspace_id": "81cdc29b-541f-4274-97d8-c743f303a205" }If your session has no workspaces, the response is
{"workspaces": [], "active_workspace_id": ""}.
Summary of the 62 endpoints
| # | Method | Path | Minimum role |
|---|---|---|---|
| 1 | GET | /hosts | all |
| 2 | GET | /hosts/:id | all |
| 3 | POST | /hosts | owner/admin |
| 4 | PUT | /hosts/:id | owner/admin |
| 5 | DELETE | /hosts/:id | owner/admin |
| 6 | GET | /hosts/:id/latest | all |
| 7 | GET | /hosts/:id/snmp-metrics | all |
| 8 | GET | /hosts/:id/uptime | all |
| 9 | GET | /hosts/:id/logs | all |
| 10 | POST | /hosts/ai-tag | owner/admin |
| 11 | POST | /hosts/:id/ai-tag | owner/admin |
| 12 | GET | /checks | all |
| 13 | GET | /checks/:id | all |
| 14 | POST | /checks | owner/admin |
| 15 | PUT | /checks/:id | owner/admin |
| 16 | DELETE | /checks/:id | owner/admin |
| 17 | GET | /checks/:id/last-result | all |
| 18 | POST | /checks/:id/run | owner/admin/operator |
| 19 | GET | /metrics/checks | all |
| 20 | GET | /snmp-devices | all |
| 21 | GET | /incidents | all |
| 22 | GET | /incidents/:id | all |
| 23 | POST | /incidents | owner/admin/operator |
| 24 | POST | /incidents/:id/ack | owner/admin/operator |
| 25 | PUT | /incidents/:id/acknowledge | owner/admin/operator |
| 26 | POST | /incidents/:id/resolve | owner/admin/operator |
| 27 | PUT | /incidents/:id/resolve | owner/admin/operator |
| 28 | POST | /incidents/:id/updates | owner/admin/operator |
| 29 | POST | /incidents/:id/ai-mode | owner/admin/operator |
| 30 | DELETE | /incidents/:id/ai-mode | owner/admin/operator |
| 31 | GET | /incidents/:id/ai-cost | all |
| 32 | GET | /alert-policies | all |
| 33 | GET | /alert-policies/:id | all |
| 34 | POST | /alert-policies | owner/admin |
| 35 | PUT | /alert-policies/:id | owner/admin |
| 36 | DELETE | /alert-policies/:id | owner/admin |
| 37 | GET | /oncall-schedules | all |
| 38 | GET | /oncall-schedules/:id | all |
| 39 | POST | /oncall-schedules | owner/admin |
| 40 | PUT | /oncall-schedules/:id | owner/admin |
| 41 | DELETE | /oncall-schedules/:id | owner/admin |
| 42 | GET | /oncall/current | all |
| 43 | GET | /status-pages | all |
| 44 | GET | /status-pages/:id | all |
| 45 | POST | /status-pages | owner/admin |
| 46 | PUT | /status-pages/:id | owner/admin |
| 47 | DELETE | /status-pages/:id | owner/admin |
| 48 | GET | /maintenance-windows | all |
| 49 | GET | /maintenance-windows/:id | all |
| 50 | POST | /maintenance-windows | owner/admin |
| 51 | PUT | /maintenance-windows/:id | owner/admin |
| 52 | POST | /maintenance-windows/:id/start | owner/admin |
| 53 | POST | /maintenance-windows/:id/end | owner/admin |
| 54 | POST | /maintenance-windows/:id/cancel | owner/admin |
| 55 | GET | /status | all |
| 56 | GET | /events | all |
| 57 | GET | /dashboard | all |
| 58 | GET | /dashboards/app-security | all |
| 59 | GET | /storms | all |
| 60 | GET | /workers | all |
| 61 | DELETE | /workers/:id | owner/admin |
| 62 | GET | /workspaces | all |