API-Dokumentation

Alles, was im Dashboard geht, geht auch über die REST-API: Cronjobs anlegen, Monitore steuern, Vorfälle veröffentlichen. Die vollständige Beschreibung gibt es als OpenAPI-Datei.

Erste Schritte

  1. 01Mit POST /api/auth/login ein Access-Token holen (E-Mail und Passwort im JSON-Body).
  2. 02Das Token bei jeder Anfrage als Authorization: Bearer <token> mitschicken. Es ist kurzlebig und wird über POST /api/auth/refresh erneuert.
  3. 03Wer in mehreren Teams ist, wählt das aktive Team über den Header X-Team-Id. Ohne den Header gilt das persönliche Team.
curl -X POST https://uptimestack.dev/api/auth/login \
  -H 'content-type: application/json' \
  -d '{"email":"du@beispiel.de","password":"…"}'

curl https://uptimestack.dev/api/cronjobs \
  -H 'authorization: Bearer <token>'

Fehler antworten einheitlich mit { "error": { "code", "message", "details" } }. Feldbezogene Prüfungen stehen unter details.fields.

Plattform

Zustand der Plattform, öffentliche Einstellungen und die aktuell gültigen Pläne. Ohne Anmeldung abrufbar.

GET/api/healthZustand der PlattformPrüft die Datenbankverbindung. Antwortet mit 503, sobald eine Prüfung fehlschlägt — geeignet als Ziel für einen eigenen Monitor.
GET/api/health/liveLäuft der Prozess?Bewusst ohne Datenbankprüfung — Ziel des Container-Health-Checks.
GET/api/settings/publicÖffentliche Einstellungen
GET/api/plansAktive PlänePreise kommen live aus der Datenbank — dieselbe Quelle wie Checkout und Pricing-Seite.

Authentifizierung

Registrierung, Anmeldung und Sitzungen. Der Access-Token ist kurzlebig und wird über das Refresh-Cookie erneuert.

POST/api/auth/registerKonto anlegen
POST/api/auth/loginAnmelden
POST/api/auth/refreshAccess-Token erneuernNutzt das httpOnly-Refresh-Cookie, das bei jedem Aufruf rotiert wird.
POST/api/auth/logoutAbmelden
GET/api/auth/meTokenEigenes Profil und Teams
PATCH/api/auth/meTokenProfil ändern
POST/api/auth/change-passwordTokenPasswort ändernMeldet alle anderen Sitzungen ab.
GET/api/auth/sessionsTokenAktive Sitzungen
DELETE/api/auth/sessions/{id}TokenSitzung abmelden

Team

Stammdaten, Mitglieder, Einladungen, Änderungsprotokoll und Alert-Kanäle des aktiven Teams.

GET/api/teams/currentTokenAktives Team
PATCH/api/teams/currentTokenTeam umbenennen
GET/api/teams/current/membersTokenMitglieder auflisten
PATCH/api/teams/current/members/{userId}TokenRolle eines Mitglieds ändern
DELETE/api/teams/current/members/{userId}TokenMitglied entfernen
GET/api/teams/current/invitesTokenOffene Einladungen
POST/api/teams/current/invitesTokenMitglied einladenVerschickt eine E-Mail mit Einladungslink. Ist SMTP deaktiviert, steht der Link in der Antwort.
DELETE/api/teams/current/invites/{id}TokenEinladung zurückziehen
POST/api/teams/invites/{token}/acceptTokenEinladung annehmenNur mit der Adresse möglich, an die die Einladung gerichtet ist.
GET/api/teams/current/audit-logTokenÄnderungsprotokoll
GET/api/teams/current/alert-channelsTokenAlert-Kanäle auflisten
POST/api/teams/current/alert-channelsTokenAlert-Kanal anlegen
PATCH/api/teams/current/alert-channels/{id}TokenAlert-Kanal ändern
DELETE/api/teams/current/alert-channels/{id}TokenAlert-Kanal löschen

Cronjobs

Geplante HTTP-Aufrufe, deren Ausführungen und Protokolle.

GET/api/cronjobsTokenCronjobs auflisten
POST/api/cronjobsTokenCronjob anlegen
GET/api/cronjobs/schedule-previewTokenNächste Ausführungszeiten vorschauen
GET/api/cronjobs/{id}TokenCronjob lesen
PATCH/api/cronjobs/{id}TokenCronjob ändern
DELETE/api/cronjobs/{id}TokenCronjob löschen
POST/api/cronjobs/{id}/runTokenCronjob sofort ausführen
GET/api/cronjobs/{id}/runsTokenAusführungshistorie
GET/api/cronjobs/{id}/runs/{runId}TokenEinzelnen Lauf lesen

Status Pages

Öffentliche Statusseiten, Komponenten und Vorfälle.

GET/api/status-pagesTokenStatus-Pages auflisten
POST/api/status-pagesTokenStatus-Page anlegen
GET/api/status-pages/{id}TokenStatus-Page lesen
PATCH/api/status-pages/{id}TokenStatus-Page ändernEine eigene Domain (`customDomain`) setzt einen Plan mit diesem Recht voraus.
DELETE/api/status-pages/{id}TokenStatus-Page löschen
POST/api/status-pages/{id}/componentsTokenKomponente anlegen
PATCH/api/status-pages/{id}/components/{componentId}TokenKomponente ändern
DELETE/api/status-pages/{id}/components/{componentId}TokenKomponente löschen
POST/api/status-pages/{id}/incidentsTokenVorfall veröffentlichen
POST/api/status-pages/{id}/incidents/{incidentId}/updatesTokenUpdate zu einem Vorfall posten
DELETE/api/status-pages/{id}/incidents/{incidentId}TokenVorfall löschen

Monitoring

Uptime-Monitore, Prüfungen und Verlauf.

GET/api/monitorsTokenMonitore auflisten
POST/api/monitorsTokenMonitor anlegen
GET/api/monitors/{id}TokenMonitor lesen
PATCH/api/monitors/{id}TokenMonitor ändern
DELETE/api/monitors/{id}TokenMonitor löschen
POST/api/monitors/{id}/testTokenMonitor sofort prüfen
GET/api/monitors/{id}/checksTokenPrüfhistorie

Abrechnung

Aktuelles Abo, Checkout und Stripe Customer Portal.

GET/api/billing/overviewTokenAktuelle Abos und Pläne
POST/api/billing/checkoutTokenStripe-Checkout starten
POST/api/billing/portalTokenCustomer Portal öffnenRechnungen, Zahlungsmethoden und Kündigung verwaltet Stripe.
GET/api/referralsTokenEigener Einladungscode und geworbene Nutzer

Berichte

Wöchentliche Zusammenfassung.

GET/api/reports/weekly/previewTokenVorschau des Wochenberichts
POST/api/reports/weekly/testTokenTestbericht an die eigene Adresse

Öffentlich

Daten für Marketing-Seiten und öffentliche Status-Pages.

GET/api/public/siteDaten der Marketing-SeitenPläne, Uptime der Plattform und Changelog — dieselbe Quelle wie beim Server-Rendering.
GET/api/public/status/{slug}Öffentliche Status-Page
GET/api/public/team-invite/{token}Team-Einladung prüfen
POST/api/public/database-waitlistAuf die Warteliste für Datenbank-Hosting