Zum Inhalt springen

Status, Wartungen & Einbettung in die Website

Alles, was Ihr OKStatus-Dashboard und Ihre Statusseiten zeigen, lässt sich auch direkt mit einem API-Schlüssel abfragen — Gesamtstatus, Verfügbarkeit je Monitor, offene Vorfälle und geplante Wartungsfenster. Damit bauen Sie mühelos ein eigenes Status-Widget, ein Banner oder ein internes Dashboard auf OKStatus auf.

Basis-URL: https://api.okstatus.eu/api/v1 — jede Anfrage braucht einen Header Authorization: Bearer oks_live_..., siehe Authentifizierung.

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

status ist operational, degraded (mindestens ein offener Vorfall) oder major_outage (ein kritischer Vorfall oder irgendein ausgefallener Monitor).

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": "Geplante Datenbankwartung",
"status": "scheduled",
"scheduledStart": "2026-09-02T01:00:00.000Z",
"scheduledEnd": "2026-09-02T03:00:00.000Z",
"monitorIds": ["…"]
}
]
}

status ist scheduled, in_progress, completed oder cancelled. Wartungen lassen sich auch per API anlegen, ändern und löschen (POST /maintenances, PATCH /maintenances/:id, DELETE /maintenances/:id) — die vollständigen Schemata stehen in der interaktiven Referenz.

GET /api/v1/incidents

Offene und vergangene Vorfälle, mit ihrer Aktualisierungs-Zeitleiste unter GET /api/v1/incidents/:id. Alle Einzelheiten auf der Seite zur Vorfall-API.

Der API-Schlüssel muss geheim bleiben: Rufen Sie die API deshalb nie direkt aus öffentlichem Browser-Code auf — leiten Sie sie über Ihr eigenes Backend weiter und geben Sie nur preis, was Sie brauchen:

// serverseitig (Node) — z. B. eine eigene Route /api/status Ihrer Website
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 }
// clientseitig — ein Banner aus Ihrer eigenen Proxy-Route rendern
const { data } = await (await fetch("/api/status")).json();
if (data.status !== "operational") {
showBanner(
data.status === "major_outage"
? "Wir haben derzeit eine Störung — siehe unsere Statusseite."
: "Einige Dienste sind beeinträchtigt — siehe unsere Statusseite."
);
}

Um bevorstehende Wartungen auf Ihrer Website zu zeigen, gehen Sie mit /api/v1/maintenances genauso vor und filtern auf status === "scheduled" sowie ein scheduledStart in der Zukunft.

Die öffentliche API ist auf 1000 Anfragen pro Stunde je Organisation gedeckelt — dasselbe Budget wie für jeden anderen /api/v1-Endpunkt, siehe Authentifizierung. Puffern Sie die Antworten auf Ihrer Seite (30–60 s genügen für ein Status-Widget vollauf).