Zum Hauptinhalt springen
Veydex
Status
Entwickler-Dokumentation

API & Integrationen

Bindet den Veydex-Systemstatus in eure eigene Anwendung ein – per fertigem JavaScript-Widget oder direkt über die öffentliche REST-API. Alle Endpunkte sind schreibgeschützt (bis auf die Anmeldung zu Benachrichtigungen) und erfordern keinen API-Key.

Basis-URL
status.veydex.com
Öffentliche Endpunkte
8
Antwortformat
JSON
Auth erforderlich
Nein

Widget einbinden

Ein einzelnes <script>-Tag genügt. Das Widget lädt eigenständig, zeigt den aktuellen Systemstatus als Badge und aktualisiert sich automatisch im gewählten Intervall – ganz ohne eigenen Server-Code.

Standard

Schwebendes Badge (rechts unten)

Am Ende des <body> eurer Seite einfügen:

<script
  src="https://status.veydex.com/widget.js"
  data-veydex-status
  data-position="bottom-right"
  data-theme="auto"
  data-refresh="60"
></script>
Alternative

Inline in ein Element rendern

Mit data-target lässt sich das Widget in ein beliebiges Element eurer Seite einbetten:

<div id="status-container"></div>

<script
  src="https://status.veydex.com/widget.js"
  data-veydex-status
  data-position="inline"
  data-target="#status-container"
  data-theme="dark"
></script>
Live-Demo: Das schwebende Badge unten rechts auf dieser Seite ist genau dieses Widget im Auto-Theme-Modus – ein Klick öffnet die Detailansicht mit Services und aktiven Vorfällen.

Verfügbare Optionen (data-Attribute)

AttributWerteStandardBeschreibung
data-positiontop-right, top-left, bottom-right, bottom-left, inlinebottom-rightPosition des schwebenden Badges
data-themelight, dark, autolightFarbschema des Widgets (auto = Systemeinstellung des Besuchers)
data-refreshZahl (Sekunden)60Aktualisierungsintervall für den Status-Abruf
data-targetCSS-SelektorZielelement für die Inline-Einbettung
data-apiURLHerkunft des SkriptsAbweichende API-Basis-URL, falls Widget und API nicht auf derselben Domain laufen

Das data-veydex-status-Attribut ist ein technischer Marker, an dem das Skript sein eigenes <script>-Tag erkennt. Bestehende Einbindungen mit dem älteren data-kisspos-status funktionieren unverändert weiter.

REST-API

Für eine vollständig eigene Darstellung könnt ihr die Status-Daten direkt abfragen. Alle Endpunkte sind GET-Requests ohne Authentifizierung, mit Ausnahme der Benachrichtigungs-Anmeldung weiter unten.

CORS-Hinweis: Server-zu-Server-Aufrufe (curl, Backend-Code) sind von CORS nicht betroffen. Für direkte Browser-Fetches von einer fremden Domain ist /api/widget-status bewusst mit offenem CORS (Access-Control-Allow-Origin: *) versehen. Die übrigen Endpunkte respektieren die serverseitige Origin-Allowlist – lasst eure Domain bei Bedarf vom Betreiber der Statusseite freischalten.
GET /api/status Cache: 10s

Vollständiger Systemstatus: alle Services inkl. Uptime, aktive Vorfälle (mit Update-Verlauf) und anstehende Wartungen. Das Widget-Skript nutzt diesen Endpunkt.

Beispiel anzeigen
Request
curl https://status.veydex.com/api/status
Antwort (gekürzt)
{
  "overall": "operational",
  "page": null,
  "services": [
    {
      "id": "svc-api",
      "name": "API",
      "description": "Kern-API für Transaktionen",
      "group_name": "Kernservices",
      "status": "operational",
      "sort_order": 0,
      "uptime": 99.98,
      "uptime90": 99.95
    }
  ],
  "incidents": [],
  "maintenances": []
}
GET /api/incidents Cache: 15s?limit, ?offset

Vorfallshistorie der letzten 90 Tage, inkl. Update-Verlauf je Vorfall. limit (1–100, Standard 30) und offset (Standard 0) steuern die Paginierung.

Beispiel anzeigen
Request
curl "https://status.veydex.com/api/incidents?limit=5&offset=0"
Antwort (gekürzt)
[
  {
    "id": "3f1c9b2a-71e4-4a3f-9a3d-2b6f1c9d3b71",
    "title": "Erhöhte Antwortzeiten bei der API",
    "status": "resolved",
    "impact": "minor",
    "started_at": "2026-03-04 10:00:00",
    "resolved_at": "2026-03-04 11:20:00",
    "service_ids": ["svc-api"],
    "updates": [
      { "message": "Wir untersuchen erhöhte Latenzen.", "status": "investigating", "created_at": "2026-03-04 10:00:00" },
      { "message": "Problem behoben.", "status": "resolved", "created_at": "2026-03-04 11:20:00" }
    ]
  }
]
GET /api/uptime Cache: 60s?days

Tägliche Uptime-Datenpunkte je Service für die letzten days Tage (Standard 90, maximal 365) – die Rohdaten hinter den Uptime-Balken der Statusseite.

Beispiel anzeigen
Request
curl "https://status.veydex.com/api/uptime?days=7"
Antwort (gekürzt)
[
  { "service_id": "svc-api", "date": "2026-07-16", "status": "operational", "downtime_minutes": 0 },
  { "service_id": "svc-api", "date": "2026-07-15", "status": "degraded",    "downtime_minutes": 12 }
]
GET /api/health Cache: aus

Minimaler Liveness-Check für Uptime-Monitore, Docker-HEALTHCHECK oder Kubernetes-Probes.

Beispiel anzeigen
Request
curl https://status.veydex.com/api/health
Antwort
{ "ok": true }
GET /api/server-status

Ergebnisse des optionalen Health-Monitors (synthetische HTTP-Checks gegen konfigurierte Endpunkte), ohne die überwachten URLs preiszugeben.

Beispiel anzeigen
Request
curl https://status.veydex.com/api/server-status
Antwort (Health-Monitor aktiv)
{
  "health_monitor_active": true,
  "endpoints": [
    { "service_name": "API", "status": "operational", "latency_ms": 132, "checked_at": "2026-07-17T10:41:02.000Z" }
  ]
}
GET /api/functional-checks

Öffentliches Subset der Funktions-Checks (z. B. „Anmeldung“, „Checkout“) – URLs, Methoden und Erwartungswerte bleiben admin-intern und werden nie ausgeliefert.

Beispiel anzeigen
Request
curl https://status.veydex.com/api/functional-checks
Antwort
{
  "checks": [
    { "id": "chk-login", "name": "Anmeldung", "description": "Login-Flow", "status": "operational", "latency_ms": 340, "checked_at": "2026-07-17T10:40:00.000Z" }
  ]
}
GET /api/widget-status Cache: 30sCORS: offen

Kompakte Statusübersicht mit offenem CORS – gedacht für eigene Dashboards, die direkt aus dem Browser einer fremden Domain abrufen, ohne dass eure Domain serverseitig freigeschaltet werden muss.

Beispiel anzeigen
Request
curl https://status.veydex.com/api/widget-status
Antwort
{
  "overall": "operational",
  "services": [
    { "id": "svc-api", "name": "API", "status": "operational" }
  ],
  "incidents": []
}

Beispiel: Fetch in JavaScript

// Eigenes Dashboard, gehostet auf einer fremden Domain
fetch('https://status.veydex.com/api/widget-status')
  .then(r => r.json())
  .then(({ overall, services, incidents }) => {
    if (overall !== 'operational') {
      showStatusBanner(overall, incidents);
    }
  });

Status-Werte Referenz

WertBedeutung
operationalAlles normal
degradedEingeschränkte Leistung
partial_outageTeilausfall
major_outageGroßstörung
maintenanceGeplante Wartung

Zusätzlich existiert eine authentifizierte Admin-API (/api/admin/**) zur Verwaltung von Services, Vorfällen, Wartungen und Team – sie ist nicht Teil dieser öffentlichen Integrationsschnittstelle und erfordert eine Anmeldung im Admin-Bereich.

Benachrichtigungen abonnieren

Statt die API selbst abzufragen, können sich Nutzer:innen auch direkt per E-Mail über Vorfälle und geplante Wartungen informieren lassen – wahlweise für alle oder nur ausgewählte Services.

POST /api/subscribe Rate-Limit: 10/Min./IP

Meldet eine E-Mail-Adresse an (Double-Opt-in). Optional auf einzelne Service-IDs beschränkbar. Bei erneuter Anmeldung mit bestätigter Adresse wird nur die Service-Auswahl aktualisiert.

Beispiel anzeigen
Request
curl -X POST https://status.veydex.com/api/subscribe \
  -H "Content-Type: application/json" \
  -d '{"email":"ops@ihre-firma.de","service_ids":["svc-api"]}'
Antwort (Erfolg)
{ "message": "Bitte bestätigen Sie Ihre E-Mail-Adresse." }
Antwort (ungültige E-Mail, HTTP 400)
{ "error": "Ungültige E-Mail-Adresse" }
Webhooks: Ausgehende Benachrichtigungen an Slack, Discord oder eigene Webhook-URLs werden zentral im Admin-Bereich der Statusseite eingerichtet – das ist keine selbstständig nutzbare öffentliche API. Für automatisierte Integrationen empfiehlt sich stattdessen regelmäßiges Abfragen von /api/status bzw. /api/incidents, oder die E-Mail-Anmeldung oben.

Zurück zur Statusseite

Aktuelle Vorfälle, Wartungsfenster und die 90-Tage-Uptime-Historie im Überblick.

Zur Statusseite →