Skip to content

Update status page settings

PATCH
/status-pages/{id}
curl --request PATCH \
--url https://api.perstat.io/status-pages/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "access_mode": "example", "collapsed_groups": [ "example" ], "description": "example", "enabled": true, "header_nav": [ { "href": "example", "label": "example" } ], "headline": "example", "hide_datargo_brand": true, "name": "example", "password_protected": true, "public_viewable": true, "slug": "example" }'

Updates the settings of a status page: name, slug, headline, description, publication state, access mode, header navigation, and branding options. Private access modes and hiding the platform branding are plan-gated (402). Slug collisions return 409, and slug changes are rate-limited to three per week (429). Requires project management rights.

id
required
string
Media typeapplication/json
object
access_mode

Zugriffsmodus (neuer, expliziter Weg): “draft” | “public” | “shared_password” | “viewer_login”. Wenn gesetzt, hat er Vorrang vor den Legacy-Flags public_viewable/password_protected und ist die EINE Quelle der Wahrheit für genau ein Gate.

string | null
collapsed_groups

Gruppen-Namen, die standardmäßig eingeklappt dargestellt werden; fehlt das Feld, bleibt die bisherige Liste erhalten.

Array<string> | null
description
string | null
enabled
required
boolean
header_nav

Header-Navigation; fehlt sie, bleibt die bisherige erhalten.

Array<object> | null

Ein Navigationselement der Header-Bar.

object
href
required
string
label
required
string
headline
string | null
hide_datargo_brand

Perstat-Branding der Seite ausblenden (Seite + Abo-Mails). Fehlt das Feld, bleibt der bisherige Wert. Tarif-Feature: ohne monitor.white_label lehnt der Server das EINSCHALTEN mit 402 ab (Ausschalten geht immer).

boolean | null
name
required
string
password_protected

Seite als privat (passwortgeschützt = Viewer-Login) schalten. Legacy-Fallback, wenn access_mode fehlt. Tarif-Feature: ohne monitor.private_status_pages lehnt der Server das Einschalten mit 403 ab.

boolean
public_viewable
required
boolean
slug

Optionaler neuer Subdomain-Slug. Wird serverseitig normalisiert (slugify); fehlt er oder ist leer, bleibt der bisherige Slug erhalten.

string | null
Examplegenerated
{
"access_mode": "example",
"collapsed_groups": [
"example"
],
"description": "example",
"enabled": true,
"header_nav": [
{
"href": "example",
"label": "example"
}
],
"headline": "example",
"hide_datargo_brand": true,
"name": "example",
"password_protected": true,
"public_viewable": true,
"slug": "example"
}
Media typeapplication/json
object
collapsed_groups
required

Gruppen-Namen, die auf der publizierten Seite standardmäßig eingeklappt sind.

Array<string>
description
string | null
enabled
required
boolean
header_nav
required

Header-Navigation (Label + URL).

Array<object>

Ein Navigationselement der Header-Bar.

object
href
required
string
label
required
string
headline
string | null
hide_datargo_brand
required

Per-Seite-Schalter „Perstat-Branding ausblenden“. Wirksam nur zusammen mit der Tarif-Cap monitor.white_label (siehe white_label_available im Detail-DTO); ohne Cap bleibt der gespeicherte Wert wirkungslos.

boolean
id
required
string
name
required
string
organization_id
required
string
password_protected
required

Privat: publizierte Seite hinter Viewer-Login (orthogonal zu public_viewable).

boolean
public_viewable
required
boolean
shared_password_protected
required

Gemeinsames Kennwort: EIN geteiltes Passwort schaltet die ganze Seite frei (orthogonal zu public_viewable, mutually-exclusive zu password_protected).

boolean
shared_password_set
required

Ob ein geteiltes Kennwort GESETZT ist (Hash vorhanden). Niemals das Klartext — nur dieser bool, damit der Editor „gesetzt/leer“ anzeigen kann.

boolean
slug
required
string
Examplegenerated
{
"collapsed_groups": [
"example"
],
"description": "example",
"enabled": true,
"header_nav": [
{
"href": "example",
"label": "example"
}
],
"headline": "example",
"hide_datargo_brand": true,
"id": "example",
"name": "example",
"organization_id": "example",
"password_protected": true,
"public_viewable": true,
"shared_password_protected": true,
"shared_password_set": true,
"slug": "example"
}

Privat braucht perstat.private_status_pages, Branding-Ausblenden perstat.white_label (Tarif)

Slug bereits vergeben

Zu viele Slug-Wechsel (max. 3/Woche)