Aller au contenu

Statut, maintenances & intégration site web

Tout ce qui s’affiche sur votre dashboard OKStatus et vos pages de statut peut aussi être interrogé directement avec une clé API — statut global, uptime par monitor, incidents ouverts et fenêtres de maintenance planifiées. De quoi construire votre propre widget de statut, bannière ou dashboard interne au-dessus d’OKStatus.

URL de base : https://api.okstatus.eu/api/v1 — chaque requête nécessite un en-tête Authorization: Bearer oks_live_..., voir Authentification.

GET /api/v1/status
{
"data": {
"status": "operational",
"monitors": 12,
"active_incidents": 0
}
}

status vaut operational, degraded (au moins un incident ouvert) ou major_outage (incident critique, ou un monitor down).

GET /api/v1/status/summary
{
"data": [{ "monitor_id": "", "name": "API Gateway", "status": "active", "uptime_24h": 99.98 }]
}
GET /api/v1/maintenances
{
"maintenances": [
{
"id": "",
"title": "DB upgrade",
"message": "Maintenance base de données planifiée",
"status": "scheduled",
"scheduledStart": "2026-09-02T01:00:00.000Z",
"scheduledEnd": "2026-09-02T03:00:00.000Z",
"monitorIds": [""]
}
]
}

status vaut scheduled, in_progress, completed ou cancelled. Les maintenances se créent, se modifient et se suppriment aussi par API (POST /maintenances, PATCH /maintenances/:id, DELETE /maintenances/:id) — voir la référence interactive pour les schémas complets.

GET /api/v1/incidents

Incidents ouverts et passés, avec leur timeline de mises à jour sur GET /api/v1/incidents/:id. Détails complets sur la page API Incidents.

La clé API doit rester secrète : n’appelez jamais l’API directement depuis du code navigateur public — passez par votre propre backend et n’exposez que le nécessaire :

// côté serveur (Node) — ex. une route /api/status de votre propre site
const res = await fetch("https://api.okstatus.eu/api/v1/status", {
headers: { Authorization: `Bearer ${process.env.OKSTATUS_API_KEY}` },
});
const { data } = await res.json();
// → { status: "operational", monitors: 12, active_incidents: 0 }
// côté client — afficher une bannière depuis votre propre route proxy
const { data } = await (await fetch("/api/status")).json();
if (data.status !== "operational") {
showBanner(
data.status === "major_outage"
? "Nous rencontrons une panne — voir notre page de statut."
: "Certains services sont dégradés — voir notre page de statut."
);
}

Pour afficher les maintenances à venir sur votre site, faites de même avec /api/v1/maintenances en filtrant sur status === "scheduled" et scheduledStart dans le futur.

L’API publique est plafonnée à 1000 requêtes par heure et par organisation — le même budget que tous les autres endpoints /api/v1, voir Authentification. Mettez les réponses en cache de votre côté (30–60 s suffisent largement pour un widget de statut).