Docs

Type a word or a question. Esc closes the search.

Sign in Start free

Create a status page update

Creates an incident, maintenance window or report with a title, status, timing, affected resources and optional notifications.

POST https://app.upfour.io/v1/status-pages/{pageID}/updates
POST https://app.upfour.io/v1/status-pages/{pageID}/updates

A real request. Sending it changes data in your up4 account.

Authorization
AuthorizationA pls_ key. It stays in this browser tab. Needs status_page.write.
Path
Body
update_type incident (the default), maintenance or report. Ignored by POST /status-pages/{pageID}/reports, which always creates a report. The service does not validate it; any other value behaves like incident.
visibility public (the default) or draft for a thread still being prepared.
Affected services1
monitor_mode pause_checks pauses the affected monitors for the window and needs starts_at and ends_at. Only for maintenance.
Timing6
recurrence Needs starts_at and ends_at. Only for maintenance.
Automation4
auto_start
auto_end
notify_subscribers

2 more fields are only available in JSON.

Headers

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key when the field is empty.

Request
Responsenot sent yet
Fill in a key and press Send request (⌘↵).
The answer appears here.
scope status_page.write stable Idempotency-Key supported returns 201

Parameters

FieldTypeDescription
pageID required uuid path parameter

Body

The 5 fields most calls use come first; the rest are grouped below.

application/json required 18 fields

titlestringrequired
In the app: Title
messagestring
statusstring

Valid values depend on update_type: investigating, identified, monitoring or resolved for incidents; scheduled, in_progress, completed or cancelled for maintenance; published for reports. Defaults to the first of those.

investigatingidentifiedmonitoringresolvedscheduledin_progresscompletedcancelledpublished
update_typestring

incident (the default), maintenance or report. Ignored by POST /status-pages/{pageID}/reports, which always creates a report. The service does not validate it; any other value behaves like incident.

incidentmaintenancereport
visibilitystring

public (the default) or draft for a thread still being prepared.

publicdraft
Affected services3 fields
affected_monitor_idsuuid[]

Monitors the update affects; read only when affected_resource_ids is empty.

affected_resource_idsuuid[]

Components (not monitors) the update affects. Wins over affected_monitor_ids when both are given.

In the app: Affected components
monitor_modestring · nullable

pause_checks pauses the affected monitors for the window and needs starts_at and ends_at. Only for maintenance.

nonepause_checks
In the app: During the window
Timing6 fields
starts_atstring (date-time) · nullable
In the app: Start date
ends_atstring (date-time) · nullable
In the app: End date
timezonestring · nullable

IANA time zone of the planned window. Only for maintenance.

recurrencestring · nullable

Needs starts_at and ends_at. Only for maintenance.

noneweeklymonthly
In the app: Repeat
recurrence_untilstring (date) · nullable

Last day of the series (YYYY-MM-DD); empty means no end.

reminder_minutesinteger · nullable

5 to 20160 minutes before the window starts; 0 switches the reminder off. Needs starts_at. Only for maintenance.

Automation4 fields
auto_startboolean
auto_endboolean
notify_subscribersboolean
In the app: Notify subscribers
published_atstring (date-time) · nullable

Backdates the display time of an incident or report; not in the future. Ignored for maintenance.

Returns

A successful request returns 201 with application/json.

Response fields 1 top-level fields
FieldTypeDescription
data StatusPageUpdate
StatusPageUpdate · 38 fields
FieldTypeDescription
affected_monitor_ids uuid[] · nullable Monitors behind the affected components.
affected_resource_ids uuid[] · nullable
auto_end boolean
auto_start boolean
created_at string (date-time)
ends_at string (date-time) · nullable
entries StatusPageUpdateEntry[] · nullable
Each item · 9 fields
FieldTypeDescription
created_at string (date-time)
id uuid
message string
notify_subscribers boolean
published_at string (date-time)
source string one ofmanualautomatic
status string one ofinvestigatingidentifiedmonitoringresolvedscheduledin_progresscompletedcancelledpublished
update_id uuid
updated_at string (date-time)
id uuid
message string Mirrors the latest entry.
monitor_mode string one ofnonepause_checks
notify_subscribers boolean
published_at string (date-time)
recurrence string one ofnoneweeklymonthly
recurrence_until string (date) · nullable Last day of a recurring series (YYYY-MM-DD); null for no end.
reminder_minutes integer · nullable
source string one ofmanualautomatic
starts_at string (date-time) · nullable
status string one ofinvestigatingidentifiedmonitoringresolvedscheduledin_progresscompletedcancelledpublished Mirrors the latest entry.
status_page_id uuid
timezone string IANA time zone of a planned maintenance window; empty for other types.
title string
update_type string one ofincidentmaintenancereport
updated_at string (date-time)
visibility string one ofpublicdraft
closed_unmeasured boolean Resolved, but the incident ended because monitoring resumed after a billing pause: nobody measured the recovery.
incident_group_id uuid
incident_id uuid
reminder_sent_at string (date-time)
series_id uuid

Errors

Only the errors this operation can return. Every error uses the same envelope.

Status Code Meaning
400 bad_request The request is malformed or fails validation.
404 not_found The requested resource does not exist or is outside the caller's scope.
403 permission_denied The credentials do not permit this action.
409 documented response idempotency_key_conflict: the Idempotency-Key was already used with a different request body; idempotency_replay_unavailable: the stored response can no longer be replayed for this credential or resource, refresh the state instead of retrying with a new key.

Every call can also return unauthorized (401), rate_limit_exceeded (429) or internal_error (500 / 502). See Responses and errors.