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-configswird ebenfalls unterstützt, wennpackageTypeim Request-Body mitgesendet wird. - Die Legacy-Route
PATCH /api/organizations/:organizationPublicId/package-configs/:packageTypebleibt aus Kompatibilitätsgründen weiterhin verfügbar. - Der plurale org-lose Alias
PATCH /api/organizations/package-configs/:packageTypewird 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 requiredwenn:packageTypefehlt400 Organization ID is required in the authenticated sessionwenn aus Session/Token keine Organisation abgeleitet werden kann400mitdata.codeinvalidRequestBody, wennalertConsecutiveChecksaußerhalb von 1-10 liegt401 Unauthorizedwenn du nicht angemeldet bist403 Forbiddenwenn du keinen Zugriff auf die Organisation hast
Hinweis zur Berechtigung:
- Schreibzugriff ist erforderlich (Org-Admin oder Global-Admin).
Organisation aktualisieren
Aktualisiert die Organisation aus deiner authentifizierten Session.
USt-IdNr. validieren
Validiert die für die Organisation gespeicherte Umsatzsteuer-Identifikationsnummer gegen das EU-Register VIES und speichert das Ergebnis. Nur eine gültige USt-IdNr. aus einem anderen EU-Mitgliedsstaat qualifiziert die Organisation für die Reverse-Charge-Abrechnung nach AGB § 10.2.