Uptimeify Docs

Paket-Konfiguration erstellen/aktualisieren

Erstellt eine neue Paket-Konfiguration (über :packageType) oder aktualisiert eine bestehende. packageType ist ein frei wählbarer Bezeichner der Organisation. Customer-Endpoints können später genau diesen Key verwenden.

PATCH /api/package-configs/:packageType

Hier werden u.a. Alerting-Defaults wie alertConsecutiveChecks sowie Feature-Flags wie enableEmailAlerts gepflegt.

Anfrage (Request Body)

Alle Felder sind optional.

Wenn du im UI einen lesbaren Namen anzeigen willst, kannst du zusätzlich displayName setzen und den technischen packageType stabil halten.

{
  "displayName": "Pro Care",
  "maxUrls": 100,
  "dataRetentionMonths": 12,
  "checkIntervalMinutes": 1,
  "checkLocations": 3,
  "notificationDelayMinutes": 0,
  "reminderDelayMinutes": 10,

  "alertConsecutiveChecks": 3,
  "alertLocationThreshold": "majority",
  "alertLocationThresholdCount": 2,
  "alertReminderInterval": 60,

  "enableEmailAlerts": true,
  "enableSmsAlerts": true,
  "enableWebhookAlerts": true,
  "enableIntegrationAlerts": true,
  "enablePostRequestEscalation": false,
  "enableMaintenanceWindows": true,
  "enablePdfReports": true,
  "monthlyReportsDefault": true,

  "allowSelfService": true,
  "maxSelfServiceUrls": 10,

  "notes": "Default für PRO-Kunden"
}

Monitor-Ownership-Standards

allowSelfService (Standard false) und maxSelfServiceUrls (Standard 0) sind die Paket-Standards für das Managed-vs.-Self-Service-Modell. Jeder Kunde des Pakets erbt sie, sofern der Kunde keinen eigenen non-null-Override trägt (siehe Kunden aktualisieren). maxSelfServiceUrls begrenzt die Gesamtzahl der Self-Service-Monitore eines Kunden über alle Monitor-Typen. Die enable*-Alarm-Flags fungieren zugleich als vererbte Kanal-Typ-Policy desselben Modells.

alertConsecutiveChecks

Eine ganze Zahl zwischen 1 und 10; Werte außerhalb dieses Bereichs werden mit 400 und data.code invalidRequestBody abgelehnt. Der Wert bestimmt, wie viele aufeinanderfolgende fehlgeschlagene Zyklen einen Vorfall eröffnen, und er begrenzt zugleich, wie viele aufeinanderfolgende erfolgreiche Zyklen nötig sind, damit er sich wieder schließt. Ein sehr großer Wert verzögert also nicht nur die Alarmierung, sondern auch die Auflösung: bei einem 5-Minuten-Takt hielte der Wert 999 einen Vorfall über 83 Stunden durchgehend grüner Prüfungen hinweg offen. Die Obergrenze entspricht der, die das Dashboard seit jeher durchsetzt.

monthlyReportsDefault

monthlyReportsDefault (boolean, Standard true) ist eine Vorlage, kein Live-Schalter: Sie legt beim Anlegen eines neuen Kunden dessen monthlyReportsEnabled fest. Ein bereits bestehender Kunde wird dadurch nie überschrieben, sein eigener Wert gilt immer, sobald er gesetzt ist. Um einen geänderten Default auch auf Kunden zu übertragen, die bereits auf diesem Paket sind, rufe anschließend Report-Default übertragen auf.

Beispiel (cURL)

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

curl -X PATCH "$BASE_URL/api/package-configs/pro" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "displayName":"Pro Care",
    "maxUrls":100,
    "dataRetentionMonths":12,
    "checkIntervalMinutes":1,
    "checkLocations":3,
    "notificationDelayMinutes":0,
    "reminderDelayMinutes":10,
    "alertConsecutiveChecks":3,
    "alertLocationThreshold":"majority",
    "alertLocationThresholdCount":2,
    "alertReminderInterval":60,
    "enableEmailAlerts":true,
    "enableSmsAlerts":true,
    "enableWebhookAlerts":true,
    "enableIntegrationAlerts":true,
    "enableMaintenanceWindows":true,
    "enablePdfReports":true,
    "monthlyReportsDefault":true,
    "notes":"Default für PRO-Kunden"
  }'

Antwort (Response)

Gibt die erstellte/aktualisierte Paket-Konfiguration zurück.

{
  "id": 10,
  "packageType": "pro",
  "displayName": "Pro Care",
  "maxUrls": 100,
  "dataRetentionMonths": 12,
  "checkIntervalMinutes": 1,
  "checkLocations": 3,
  "notificationDelayMinutes": 0,
  "reminderDelayMinutes": 10,
  "alertConsecutiveChecks": 3,
  "alertLocationThreshold": "majority",
  "alertLocationThresholdCount": 2,
  "alertReminderInterval": 60,
  "enableEmailAlerts": true,
  "enableSmsAlerts": true,
  "enableWebhookAlerts": true,
  "enableIntegrationAlerts": true,
  "enableMaintenanceWindows": true,
  "enablePdfReports": true,
  "monthlyReportsDefault": true,
  "notes": "Default für PRO-Kunden",
  "createdAt": "2026-02-26T12:00:00.000Z",
  "updatedAt": "2026-02-26T12:00:00.000Z"
}

Hinweise:

  • Die Organisation wird automatisch aus deiner authentifizierten Session bzw. deinem API-Token abgeleitet.
  • Die body-basierte Variante PATCH /api/package-configs wird ebenfalls unterstützt, wenn packageType im Request-Body mitgesendet wird.
  • Die Legacy-Route PATCH /api/organizations/:organizationPublicId/package-configs/:packageType bleibt aus Kompatibilitätsgründen weiterhin verfügbar.
  • Der plurale org-lose Alias PATCH /api/organizations/package-configs/:packageType wird ebenfalls unterstützt.
  • Global Admins brauchen für die org-lose Route einen aktiven Organisationskontext in der Session.

Häufige Fehler

  • 400 Package type is required wenn :packageType fehlt
  • 400 Organization ID is required in the authenticated session wenn aus Session/Token keine Organisation abgeleitet werden kann
  • 400 mit data.code invalidRequestBody, wenn alertConsecutiveChecks außerhalb von 1-10 liegt
  • 401 Unauthorized wenn du nicht angemeldet bist
  • 403 Forbidden wenn du keinen Zugriff auf die Organisation hast

Hinweis zur Berechtigung:

  • Schreibzugriff ist erforderlich (Org-Admin oder Global-Admin).

Auf dieser Seite