REST-API Dokumentation: Monitore per API steuern

REST-API v1 für Konten: Monitore anlegen und auswerten, Prüfungen und Störungen abrufen, Berichte laden – mit Bearer-Token, curl-Beispielen, Limits und Fehlerformat.

Kurz erklärt

Die REST-API v1 von UPTIMESHIELD liefert JSON unter https://www.uptimeshield.de/api/v1/ und verlangt einen Bearer-Token (Authorization: Bearer uc_…). Sie ist den Tarifen Pro und Max vorbehalten, erlaubt 400 Anfragen pro Stunde (davon 40 Schreibzugriffe) und meldet Fehler als {"error":{"status":…,"message":"…"}}.

Authentifizierung

Erzeugen Sie im Dashboard einen API-Token. Er beginnt mit uc_ und ist nur beim Erzeugen sichtbar; gespeichert wird nur ein Hash. Senden Sie ihn bei jeder Anfrage im Header Authorization: Bearer uc_…. Behandeln Sie ihn wie ein Passwort und nutzen Sie ihn nicht in Browser-Code.

curl -s https://www.uptimeshield.de/api/v1/summary \
  -H "Authorization: Bearer uc_IHR_TOKEN"

Antwort (Beispielwerte):

{
  "monitors": 7,
  "by_status": { "up": 5, "down": 1, "paused": 1 },
  "limit": 25
}

Endpunkte

Methode und PfadBeschreibung
GET /api/v1/Name, Version, Tarif und Liste der Ressourcen
GET /api/v1/summaryAnzahl Monitore nach Status und Tariflimit
GET /api/v1/monitorsAlle Monitore mit Status, Uptime und Antwortzeiten
POST /api/v1/monitorsMonitor anlegen (Antwort 201)
GET /api/v1/monitors/{id}Einen Monitor abrufen
PATCH /api/v1/monitors/{id}Monitor ändern
DELETE /api/v1/monitors/{id}Monitor samt Messdaten löschen (Antwort 204)
POST /api/v1/monitors/{id}/pauseMonitor pausieren
POST /api/v1/monitors/{id}/resumeMonitor fortsetzen
POST /api/v1/monitors/{id}/checkSofortprüfung auslösen
GET /api/v1/monitors/{id}/checks?limit=Letzte Prüfungen
GET /api/v1/monitors/{id}/incidents?limit=Störungen mit Beginn, Ende und Dauer
GET /api/v1/monitors/{id}/uptimeUptime für 24h, 7d, 30d, 90d, 365d und Monatsübersicht
GET /api/v1/channelsBenachrichtigungskanäle (nur lesend)
GET /api/v1/status-pagesStatusseiten
GET /api/v1/reports?range=&group_id=Bericht als JSON; range: 7d, 30d, 90d, this_month, prev_month

Monitore anlegen, lesen und ändern

Zum Anlegen genügen type (http, keyword, api, ssl, dns, tcp, heartbeat), name, url (Ziel) und interval (Minuten). Der Monitor wird sofort einmal geprüft. Die Antwort enthält unter anderem id, status, interval_minutes, uptime (24h, 7d, 30d, 90d), response_time_24h_ms, certificate_days_left und bei Heartbeat-Monitoren die ping_url.

curl -s -X POST https://www.uptimeshield.de/api/v1/monitors \
  -H "Authorization: Bearer uc_IHR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"http","name":"Startseite","url":"https://www.example.com/","interval":5}'
curl -s https://www.uptimeshield.de/api/v1/monitors \
  -H "Authorization: Bearer uc_IHR_TOKEN"
curl -s -X PATCH https://www.uptimeshield.de/api/v1/monitors/42 \
  -H "Authorization: Bearer uc_IHR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Startseite (Produktion)","interval":10}'

Pausieren, fortsetzen, sofort prüfen

curl -s -X POST https://www.uptimeshield.de/api/v1/monitors/42/pause \
  -H "Authorization: Bearer uc_IHR_TOKEN"

curl -s -X POST https://www.uptimeshield.de/api/v1/monitors/42/resume \
  -H "Authorization: Bearer uc_IHR_TOKEN"

curl -s -X POST https://www.uptimeshield.de/api/v1/monitors/42/check \
  -H "Authorization: Bearer uc_IHR_TOKEN"

Prüfungen, Störungen und Uptime

checks liefert pro Prüfung Zeit, Ergebnis (ok), http_code, Antwortzeit (response_ms, ttfb_ms) und Fehlermeldung. limit ist bei Prüfungen auf 500 und bei Störungen auf 200 begrenzt (Standard 50).

curl -s "https://www.uptimeshield.de/api/v1/monitors/42/checks?limit=20" \
  -H "Authorization: Bearer uc_IHR_TOKEN"

curl -s "https://www.uptimeshield.de/api/v1/monitors/42/incidents?limit=10" \
  -H "Authorization: Bearer uc_IHR_TOKEN"

curl -s https://www.uptimeshield.de/api/v1/monitors/42/uptime \
  -H "Authorization: Bearer uc_IHR_TOKEN"

Berichte

Berichte stehen Tarifen mit Berichtsfunktion zur Verfügung (Pro und Max). Mit group_id begrenzen Sie den Bericht auf eine Kundengruppe.

curl -s "https://www.uptimeshield.de/api/v1/reports?range=prev_month" \
  -H "Authorization: Bearer uc_IHR_TOKEN"

Fehlerformat und Statuscodes

{
  "error": {
    "status": 404,
    "message": "Monitor nicht gefunden."
  }
}
  • 401: Token fehlt, ist ungültig oder widerrufen (oder der Tarif enthält keinen API-Zugriff).
  • 403: Funktion im Tarif nicht enthalten, etwa Berichte.
  • 404: Monitor oder Ressource nicht gefunden.
  • 422: Ungültige Eingabe, etwa nicht erlaubtes Ziel oder Tariflimit erreicht.
  • 429: Rate Limit erreicht; warten Sie die Zeit aus Retry-After ab.

Heartbeat-Ping (ohne Authentifizierung)

Heartbeat-Monitore melden sich über /ping/{token}/. Die URL enthält den Token und braucht keinen Authorization-Header; erlaubt sind GET, POST und HEAD. Mehr dazu: Cronjobs mit Heartbeat überwachen.

# Am Ende eines Cronjobs
curl -fsS -m 10 --retry 3 https://www.uptimeshield.de/ping/IHR_PING_TOKEN/ > /dev/null

Weitere Umgebungen:

# Node.js (18+)
await fetch('https://www.uptimeshield.de/ping/IHR_PING_TOKEN/', { method: 'POST', signal: AbortSignal.timeout(10000) });

# Python
import urllib.request
urllib.request.urlopen('https://www.uptimeshield.de/ping/IHR_PING_TOKEN/', timeout=10)

# GitHub Actions (Schritt am Ende des Jobs)
- name: Heartbeat
  if: success()
  run: curl -fsS -m 10 --retry 3 https://www.uptimeshield.de/ping/IHR_PING_TOKEN/

# WordPress (functions.php)
wp_remote_get('https://www.uptimeshield.de/ping/IHR_PING_TOKEN/', ['timeout' => 10]);

Im Dashboard zeigt jeder Heartbeat-Monitor diese Beispiele mit eingesetzter Ping-URL, jeweils mit Kopier-Schaltfläche.

Hinweis: Die API unterliegt denselben Schutzregeln wie das Dashboard (SSRF-Schutz, erlaubte Ports, Tariflimits). Ziele, die dort abgelehnt werden, lehnt auch die API ab. Die Beispiele verwenden Platzhalter für Token und Domains. Allgemeine Fragen beantwortet die Hilfe.

Häufige Fragen

Wer kann die REST-API nutzen?

Die API steht den Tarifen Pro und Max zur Verfügung, nicht Gästen und dem kostenlosen Solo-Konto. Den Token erzeugen Sie im Dashboard; er ist nur beim Erzeugen sichtbar und wird gehasht gespeichert. Geht er verloren, erzeugen Sie einen neuen und widerrufen den alten.

Welche Limits gelten?

400 Anfragen pro Stunde, davon höchstens 40 Schreibzugriffe (POST, PATCH, DELETE). Bei Überschreitung antwortet die API mit Status 429 und dem Header Retry-After.

Wie sieht das Fehlerformat aus?

Fehler werden als JSON mit passendem HTTP-Status geliefert: {"error":{"status":404,"message":"…"}}. Häufige Status: 401 (Token fehlt oder ungültig), 403 (Funktion im Tarif nicht enthalten), 404, 422 (ungültige Eingabe) und 429 (Limit erreicht).

Braucht der Heartbeat-Ping einen Token im Header?

Nein. Die Ping-URL /ping/{token}/ enthält ihren Token selbst und wird ohne Authentifizierung per GET, POST oder HEAD aufgerufen. Sie gehört nicht zur Bearer-geschützten API.

Kann ich Benachrichtigungskanäle per API anlegen?

Nein, Kanäle lassen sich über die API nur lesen. Anlegen und Ändern erfolgt im Dashboard, weil dort Ziele verschlüsselt erfasst und Bestätigungen durchgeführt werden.

API-Token erzeugen

Mit Pro oder Max erzeugen Sie im Dashboard Ihren API-Token.