Skip to main content
PATCH
Change a status page's settings

Authorizations

Authorization
string
header
required

An organization API key (obs_pub_…) sent as Authorization: Bearer <key>. Each key carries scopes; an endpoint lists the scope it needs. read:change_events is reserved: keys can carry it, but no endpoint needs it yet.

Path Parameters

id
string<uuid>
required

Page id.

Body

application/json
title
string

Page title. A new page defaults to its subdomain.

Required string length: 2 - 120
access_mode
enum<string>

Who can open the page. Only public can be set through the API (it clears any password, allow-list or SSO setting); the other modes carry credentials and are set in the console. Restating the page's current mode is a no-op.

Available options:
public,
password,
ip_allowlist,
jwt,
customer_scoped,
sso
layout
enum<string>

Page layout.

Available options:
minimal,
aurora,
blueprint
timezone
string

IANA time zone the page renders days and times in, e.g. Europe/London. Default UTC.

locale
enum<string>

Page language. Default en.

Available options:
en,
es,
fr,
de,
pt-BR,
it,
nl,
ja,
ar,
zh-CN
allow_subscriptions
boolean

Visitors can subscribe to updates.

show_auto_refresh
boolean

Show the auto-refresh control.

hide_branding
boolean

Hide the Powered by Observer footer link. Turning it on needs a paid plan.

Links in the page footer, in order. Replaces the whole list.

Maximum array length: 5
metric_group_order
(string | null)[] | null

Metric group names in display order (null is the ungrouped metrics). null restores the default order.

Maximum array length: 200
metric_group_summary
boolean

Show each metric group as one summary row.

seo_description
string | null

Search engine description. Empty or null uses the generated one.

Maximum string length: 300
seo_noindex
boolean

Ask search engines not to index the page.

theme
object

Apply a theme preset. Replaces the page's theme colours, fonts and spacing.

Response

ok

id
string<uuid>
required
title
string
required
subdomain
string
required
public_url
string<uri>
required

Where the page is served: the custom domain when it is active, else the subdomain URL.

access_mode
string
required

public, password, sso, ip_allowlist, jwt or customer_scoped.

layout
string
timezone
string
locale
string
allow_subscriptions
boolean
show_auto_refresh
boolean
hide_branding
boolean

The operator's choice; the footer link is hidden only on a plan that includes branding removal.

metric_group_order
(string | null)[] | null
metric_group_summary
boolean
seo_description
string | null
seo_noindex
boolean
custom_domain
object | null

The custom domain, when one is set up (in the console).

config_key
string | null

The page's key in config documents (null for one made in the console and never applied from config). Per-key DELETE takes this.

managed_by
enum<string>

config: owned by config apply (prune and per-key delete may remove it). console: made in the console; config apply adopts it when a document names it.

Available options:
config,
console
is_demo
boolean
updated_at
string<date-time>
suspended
boolean

true while the status page is suspended because the organization is over its plan's limit (after a 7-day grace). Nothing is deleted; it is read-only until the person chooses it as active in Billing or upgrades. Writes return 403 item_suspended_plan.

suspended_at
string<date-time> | null

When the suspension started.

metrics
object[]

The page's metrics in display order. public_label and show_uptime are console settings that config apply keeps.

changed
string[]

Settings that changed (empty when the request changed nothing).