Zum Inhalt springen

API für Entwickler

Alles, was diese Seite zeigt, gibt es auch als JSON: den aktuellen Status einer Seite, ihre Verfügbarkeit, bestätigte Ausfälle und eine Prüfung auf Abruf von allen unseren Standorten.

Zugang

Anfragen brauchen einen Schlüssel, der als Bearer-Token mitgeschickt wird. Schlüssel vergibt der Betreiber von DownVerdict. Für jeden Schlüssel gilt eine Grenze an Anfragen pro Minute; eine Prüfung auf Abruf zählt als fünf.

curl -H "Authorization: Bearer YOUR_KEY" \
  https://downverdict.com/api/v1/status/github.com

Fehler kommen als JSON mit dem Feld error: 401 ohne gültigen Schlüssel, 429, wenn die Grenze erreicht ist (mit Retry-After-Header), 404 für eine Seite, die nicht beobachtet wird.

Endpunkte

GET/api/v1/status/{domain}

Gespeicherter Status einer beobachteten Seite. Schnell, und startet keine neue Prüfung.

{
  "domain": "github.com",
  "name": "GitHub",
  "status": "up",              // up | down | unconfirmed | unavailable
  "blocked": false,            // reachable, but refused the automated check
  "partial": false,            // reachable from some locations only
  "response_ms": 84,
  "checked_at": "2026-10-09T08:12:41.000Z",
  "uptime_percent": { "day": 100, "week": 99.97, "month": 99.91 },
  "last_outage": { "started_at": "...", "ended_at": "..." },
  "url": "https://downverdict.com/github.com"
}

POST/api/v1/check

Prüft eine Domain jetzt von jedem Standort aus und liefert, was jeder davon gesehen hat. Funktioniert auch für Seiten, die wir noch nicht beobachten. Ein Ergebnis aus der letzten Minute wird wiederverwendet.

curl -X POST -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}' https://downverdict.com/api/v1/check
{
  "domain": "example.com",
  "status": "up",
  "locations_answered": 3,
  "locations_total": 3,
  "response_ms": 61,
  "cached": false,
  "locations": [
    { "location": "Berlin 1, Germany", "status": "up", "http_code": 200, "response_ms": 58, "error": null }
  ]
}

Eine Seite gilt erst als down, wenn mindestens zwei Standorte sie nicht erreichen. Bei nur einer Antwort lautet der Status unconfirmed.

GET/api/v1/outages

Bestätigte Ausfälle, die neuesten zuerst. Optionale Query-Parameter: domain, ongoing=1, limit (bis zu 200).

{
  "outages": [
    { "domain": "example.com", "name": "Example", "started_at": "...", "ended_at": null, "duration_seconds": 540 }
  ]
}

Ohne Schlüssel

Das Status-Badge braucht keinen Schlüssel und lässt sich überall einbetten: https://downverdict.com/api/badge/github.com. Auf jeder Seite einer Website steht der Einbettungscode zum Kopieren bereit.