Uptimeify Docs

Kunden erstellen

Erstellt einen neuen Kunden und weist über packageType ein organisationsdefiniertes Paket zu.

POST /api/customers

Authentifizierung

Dieser Endpoint erfordert Authentifizierung.

BASE_URL="https://uptimeify.io"
TOKEN="wsm_<dein-api-token>"

Anfrage (Request Body)

{
  "name": "Kundenname",
  "email": "kunde@deinkunde.com",
  "packageType": "business", // konfigurierter packageType oder Display-Name aus der Paket-Konfiguration der Organisation
  "organizationId": 1, // optional (nur für Global Admins erforderlich)
  "status": "active", // optional, Standard: active
  "monthlyReportsEnabled": true, // optional, Standard ist monthlyReportsDefault des Pakets
  "customFields": { ... } // optional
}

Hinweise:

  • packageType kann den konfigurierten Paket-Key oder den Display-Namen des Pakets enthalten. Bekannte Alias-Schreibweisen wie aquisition_test werden automatisch normalisiert.
  • monthlyReportsEnabled ist optional. Ohne Angabe übernimmt der neue Kunde den Wert monthlyReportsDefault des zugewiesenen Pakets (siehe Paket-Konfiguration erstellen/aktualisieren); existiert für dieses Paket keine Konfiguration in der Organisation, gilt true. Ein ausdrücklich gesendeter Wert gewinnt immer, allein das Kundenfeld entscheidet, ob ein Bericht versendet wird.
  • Wenn kein konfiguriertes Paket dazu passt, wird der Request mit 400 Bad Request abgelehnt.
  • Für normale Benutzer wird organizationId aus der Session/dem Token abgeleitet und darf nicht überschrieben werden.
  • Für Global Admins muss organizationId explizit angegeben werden.

Ownership- & Berechtigungs-Overrides (optional)

Diese Felder steuern die Managed-vs.-Self-Service-Berechtigungen des Kunden und die Kanal-Typ-Policy. Sie sind org-write-gated: Nur Organisations-Admins (oder Global-Admins) können sie setzen. Werte eines Nicht-Admin-Aufrufers werden ignoriert, es gelten die Schema-Standards.

null (oder das Weglassen des Felds) bedeutet von der Paket-Konfiguration des Kunden erben.

FeldTypStandardBeschreibung
allowSelfServiceboolean|nullnull (erben)Ob der Kunde self_service-Monitore anlegen und verwalten darf
maxSelfServiceUrlsnumber|nullnull (erben)Obergrenze für die Gesamtzahl der self_service-Monitore des Kunden über alle Monitor-Typen
canEditManagedbooleanfalseAusnahme: erlaubt diesem Kunden, managed-Monitore zu bearbeiten (Klassen-Wechsel bleiben org-only). Vergaben werden ins Audit-Log geschrieben.
enableEmailAlertsboolean|nullnull (erben)Kanal-Typ-Policy-Override: E-Mail-Alarme
enableSmsAlertsboolean|nullnull (erben)Kanal-Typ-Policy-Override: SMS-Alarme
enableWebhookAlertsboolean|nullnull (erben)Kanal-Typ-Policy-Override: Webhooks
enableIntegrationAlertsboolean|nullnull (erben)Kanal-Typ-Policy-Override: Integrationen
enablePostRequestEscalationboolean|nullnull (erben)Kanal-Typ-Policy-Override: POST-Request-Eskalation

Der Legacy-notificationChannels-JSONB-Override ist deprecated: Die Kanal-Typ-Policy liegt in den enable*-Feldern oben.

Response

{
  "success": true,
  "customer": {
    "id": 64,
    "publicId": "6d74c32b-a97c-49b9-be3e-2b5e24bed826",
    "organizationId": 2,
    "name": "Example Customer",
    "email": "example@deinkunde.com",
    "notificationPhoneNumber": null,
    "notificationEmail": null,
    "packageId": 7,
    "packageType": "essential",
    "status": "active",
    "allowedCheckCountryCodes": null,
    "cancellationDate": null,
    "cancelledAt": null,
    "customFields": {
      "region": "EU",
      "planOwner": "Operations"
    },
    "monthlyReportsEnabled": true,
    "notificationChannels": null,
    "notificationTargets": null,
    "notificationRules": null,
    "smsUsageCurrentMonth": 0,
    "createdAt": "2026-04-04T12:27:13.415Z",
    "updatedAt": "2026-04-04T12:27:13.415Z"
  }
}

Auf dieser Seite