Référence API
Référence complète de l'API SecuMon v2 : authentification, rôles et les 62 points d'accès regroupés par module, avec exemples.
Vue d'ensemble
L'API SecuMon v2 est une API REST JSON. Toutes les ressources sont isolées à votre organisation : vous ne voyez et ne manipulez que vos propres données.
URL de base
| Environnement | URL de base |
|---|---|
| Production | https://api.secumon.secuaas.ovh/api/v2 |
| Développement | https://api.secumon.secuaas.dev/api/v2 |
Authentification
Chaque requête doit porter votre jeton Bearer de session, obtenu en vous connectant au portail :
Authorization: Bearer <votre-jeton>curl -s https://api.secumon.secuaas.ovh/api/v2/status \
-H "Authorization: Bearer $SECUMON_TOKEN"Une requête sans jeton valide est rejetée. Connectez-vous au portail, récupérez
votre jeton, et placez-le dans l'en-tête Authorization : c'est tout ce dont
vous avez besoin.
Rôles requis
Le rôle minimal dépend de l'action :
- Lecture (lister, détail, graphes, coûts) : tous les rôles
(
owner,admin,operator,viewer). - Écriture (créer, modifier, supprimer) sur hôtes, vérifications, politiques,
pages de statut, fenêtres de maintenance, gardes, workers, étiquetage IA :
owner/admin. - Actions sur incidents (créer, acquitter, résoudre, mises à jour, mode IA) :
owner/admin/operator. - Lancer une vérification à la demande :
owner/admin/operator.
Conventions
- Les corps de requête et de réponse sont en JSON (
Content-Type: application/json). - Les dates sont au format RFC3339 (
2026-06-23T12:00:00Z). - Les identifiants sont des UUID.
- Codes de retour usuels :
200OK,201ressource créée,204succès sans corps,400requête invalide,403rôle insuffisant,404introuvable,503dépendance indisponible. - Les exemples utilisent l'hôte fictif
web-prod-01(10.0.0.12).
Hôtes
GET /hosts
Liste les hôtes. Rôle : tous. Params : active=true (optionnel).
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
Détail d'un hôte. Rôle : tous.
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
Crée un hôte. Rôle : owner/admin. Requis : 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
Modifie un hôte (champs partiels). Rôle : 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
Supprime un hôte. Rôle : owner/admin. Réponse : 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
Dernier résultat de chaque vérification de l'hôte. Rôle : tous.
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
Séries SNMP de l'hôte. Rôle : tous. Params : from, to (RFC3339, défaut : 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
Uptime ping. Rôle : tous. Params : window=24h|7d|30d (défaut 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
Logs corrélés de l'hôte. Rôle : tous. Params : from, to (max 24 h), limit (1–5000, défaut 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
Étiquette IA de tous les hôtes (séquentiel, max 200). Rôle : owner/admin. Corps optionnel : { "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
Étiquette IA d'un hôte. Rôle : 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" } }Vérifications
GET /checks
Liste les vérifications. Rôle : tous. Params : host_id (optionnel).
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
Détail d'une vérification. Rôle : tous.
curl -s https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /checks
Crée une vérification. Rôle : owner/admin. Requis : 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
Modifie une vérification (champs partiels). Rôle : 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
Supprime une vérification. Rôle : owner/admin. Réponse : 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
Dernier résultat brut. Rôle : tous.
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
Force une exécution immédiate. Rôle : owner/admin/operator. Réponse : 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
Résultats agrégés d'une vérification. Rôle : tous. Params : check_id (requis), 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
Inventaire des équipements SNMP (dérivé des vérifications snmp). Rôle : tous.
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
Liste les incidents ouverts. Rôle : tous.
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 ne répond plus au ping", "severity": "critical", "status": "investigating" } ] }GET /incidents/:id
Détail d'un incident. Rôle : tous.
curl -s https://api.secumon.secuaas.ovh/api/v2/incidents/9d8c7b6a-1234-4abc-9def-001122334455 \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /incidents
Crée un incident manuellement. Rôle : owner/admin/operator. Requis : 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": "Dégradation web-prod-01", "severity": "major" }'{ "id": "9d8c7b6a-1234-4abc-9def-001122334455", "title": "Dégradation web-prod-01", "severity": "major", "status": "investigating", "tags": { "source": "manual" } }POST /incidents/:id/ack
Acquitte un incident (raccourci). Rôle : 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
Acquitte un incident. Rôle : 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
Résout un incident (raccourci). Rôle : 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
Résout un incident. Rôle : 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
Ajoute une mise à jour à la timeline. Rôle : owner/admin/operator. Requis : note. Optionnel : 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 appliquée.", "status": "acknowledged" }'{ "ok": true, "event": { "time": "2026-06-23T12:05:00Z", "action": "update", "note": "Mitigation appliquée.", "status": "acknowledged" } }POST /incidents/:id/ai-mode
Active le mode d'analyse IA (incident critical uniquement). Rôle : owner/admin/operator. Requis : provider, justification. Optionnel : budget_usd (défaut 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": "Panne critique, analyse rapide.", "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
Désactive le mode d'analyse IA. Rôle : 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
Coût du mode d'analyse IA. Rôle : tous.
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" }Politiques d'alerte
GET /alert-policies
Liste les politiques. Rôle : tous.
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": "Critiques → astreinte", "enabled": true, "cooldown_sec": 300 } ] }GET /alert-policies/:id
Détail d'une politique. Rôle : tous.
curl -s https://api.secumon.secuaas.ovh/api/v2/alert-policies/7c6d5e4f-1111-4222-9333-444455556666 \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /alert-policies
Crée une politique. Rôle : owner/admin. Requis : 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": "Critiques → astreinte", "conditions": { "severity": ["critical"] }, "channels": { "email": ["astreinte@example.com"] }, "cooldown_sec": 300 }'{ "id": "7c6d5e4f-1111-4222-9333-444455556666", "name": "Critiques → astreinte", "enabled": true, "cooldown_sec": 300 }PUT /alert-policies/:id
Modifie une politique. Rôle : owner/admin. Requis : 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": "Critiques → astreinte", "enabled": false, "cooldown_sec": 600 }'DELETE /alert-policies/:id
Supprime une politique. Rôle : owner/admin. Réponse : 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/alert-policies/7c6d5e4f-1111-4222-9333-444455556666 \
-H "Authorization: Bearer $SECUMON_TOKEN"Gardes (on-call)
GET /oncall-schedules
Liste les plannings. Rôle : tous.
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall-schedules \
-H "Authorization: Bearer $SECUMON_TOKEN"[ { "id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "name": "Astreinte web", "timezone": "America/Toronto", "rotation_type": "weekly" } ]GET /oncall-schedules/:id
Détail d'un planning + garde courante. Rôle : tous.
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": "Astreinte web" }, "current_oncall": { "name": "Alice", "email": "alice@example.com" } }POST /oncall-schedules
Crée un planning. Rôle : owner/admin. Requis : name. Défauts : 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": "Astreinte web", "members": [ { "name": "Alice", "email": "alice@example.com" } ] }'{ "id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "name": "Astreinte web", "timezone": "America/Toronto", "rotation_type": "weekly" }PUT /oncall-schedules/:id
Modifie un planning. Rôle : owner/admin. Réponse : 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": "Astreinte web", "timezone": "America/Toronto", "rotation_type": "weekly", "members": [ { "name": "Bob", "email": "bob@example.com" } ] }'DELETE /oncall-schedules/:id
Supprime un planning. Rôle : owner/admin. Réponse : 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
Garde courante de tous les plannings. Rôle : tous.
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": "Astreinte web", "on_call": { "name": "Alice", "email": "alice@example.com" } } ]Pages de statut
GET /status-pages
Liste les pages de statut. Rôle : tous.
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": "Statut des services web", "is_public": true } ] }GET /status-pages/:id
Détail d'une page. Rôle : tous.
curl -s https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /status-pages
Crée une page. Rôle : owner/admin. Requis : slug, title. Défauts : 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": "Statut des services web", "is_public": true }'{ "id": "abcd1234-5678-4abc-9def-0011aabbccdd", "slug": "web-prod", "title": "Statut des services web", "is_public": true, "show_history_days": 90 }PUT /status-pages/:id
Modifie une page (champs partiels). Rôle : 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": "Statut — Services Web", "show_history_days": 60 }'DELETE /status-pages/:id
Supprime une page. Rôle : owner/admin. Réponse : 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
-H "Authorization: Bearer $SECUMON_TOKEN"Les pages publiques (consultation anonyme) sont servies hors
/api/v2:GET /status/<slug>,GET /status/<slug>/api,GET /status/<slug>/badge/<composant>,GET /status/<slug>/rss. Voir la page Pages de statut.
Fenêtres de maintenance
GET /maintenance-windows
Liste les fenêtres. Rôle : tous.
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": "Mise à jour web-prod-01", "status": "scheduled" } ] }GET /maintenance-windows/:id
Détail d'une fenêtre. Rôle : tous.
curl -s https://api.secumon.secuaas.ovh/api/v2/maintenance-windows/f0f1f2f3-1234-4abc-9def-aabbccddeeff \
-H "Authorization: Bearer $SECUMON_TOKEN"POST /maintenance-windows
Crée une fenêtre. Rôle : owner/admin. Requis : 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": "Mise à jour 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": "Mise à jour 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
Modifie une fenêtre (champs partiels). Rôle : 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
Démarre une fenêtre (scheduled → active). Rôle : 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
Termine une fenêtre (active → completed). Rôle : 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
Annule une fenêtre (→ cancelled). Rôle : owner/admin. Réponse : 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"Tableau de bord et statut
GET /status
Aperçu de statut (compteurs). Rôle : tous.
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
Flux temps réel (SSE) du résumé du tableau de bord. Rôle : tous.
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
Résumé du tableau de bord. Rôle : tous.
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
Posture de sécurité applicative. Rôle : tous.
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"] }Tempêtes
GET /storms
Liste les tempêtes. Rôle : tous. Params : active=true (optionnel).
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
Liste les points de collecte. Rôle : tous.
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
Retire un point de collecte. Rôle : owner/admin. Réponse : 204.
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/workers/9a8b7c6d-1234-4abc-9def-aabbccddeeff \
-H "Authorization: Bearer $SECUMON_TOKEN"Espaces de travail
GET /workspaces
Liste les espaces de travail rattachés à votre session et l'espace actif. Rôle : tous.
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" }Si votre session ne comporte pas d'espaces de travail, la réponse est
{"workspaces": [], "active_workspace_id": ""}.
Récapitulatif des 62 points d'accès
| # | Méthode | Chemin | Rôle minimal |
|---|---|---|---|
| 1 | GET | /hosts | tous |
| 2 | GET | /hosts/:id | tous |
| 3 | POST | /hosts | owner/admin |
| 4 | PUT | /hosts/:id | owner/admin |
| 5 | DELETE | /hosts/:id | owner/admin |
| 6 | GET | /hosts/:id/latest | tous |
| 7 | GET | /hosts/:id/snmp-metrics | tous |
| 8 | GET | /hosts/:id/uptime | tous |
| 9 | GET | /hosts/:id/logs | tous |
| 10 | POST | /hosts/ai-tag | owner/admin |
| 11 | POST | /hosts/:id/ai-tag | owner/admin |
| 12 | GET | /checks | tous |
| 13 | GET | /checks/:id | tous |
| 14 | POST | /checks | owner/admin |
| 15 | PUT | /checks/:id | owner/admin |
| 16 | DELETE | /checks/:id | owner/admin |
| 17 | GET | /checks/:id/last-result | tous |
| 18 | POST | /checks/:id/run | owner/admin/operator |
| 19 | GET | /metrics/checks | tous |
| 20 | GET | /snmp-devices | tous |
| 21 | GET | /incidents | tous |
| 22 | GET | /incidents/:id | tous |
| 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 | tous |
| 32 | GET | /alert-policies | tous |
| 33 | GET | /alert-policies/:id | tous |
| 34 | POST | /alert-policies | owner/admin |
| 35 | PUT | /alert-policies/:id | owner/admin |
| 36 | DELETE | /alert-policies/:id | owner/admin |
| 37 | GET | /oncall-schedules | tous |
| 38 | GET | /oncall-schedules/:id | tous |
| 39 | POST | /oncall-schedules | owner/admin |
| 40 | PUT | /oncall-schedules/:id | owner/admin |
| 41 | DELETE | /oncall-schedules/:id | owner/admin |
| 42 | GET | /oncall/current | tous |
| 43 | GET | /status-pages | tous |
| 44 | GET | /status-pages/:id | tous |
| 45 | POST | /status-pages | owner/admin |
| 46 | PUT | /status-pages/:id | owner/admin |
| 47 | DELETE | /status-pages/:id | owner/admin |
| 48 | GET | /maintenance-windows | tous |
| 49 | GET | /maintenance-windows/:id | tous |
| 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 | tous |
| 56 | GET | /events | tous |
| 57 | GET | /dashboard | tous |
| 58 | GET | /dashboards/app-security | tous |
| 59 | GET | /storms | tous |
| 60 | GET | /workers | tous |
| 61 | DELETE | /workers/:id | owner/admin |
| 62 | GET | /workspaces | tous |