Create a status page
Creates a status page with a company name, public subdomain, branding, visibility and optional initial monitors or Scheduled jobs.
Body
The 5 fields most calls use come first; the rest are grouped below.
Appearance22 fields
Layout and brand surface. Omitted leaves the stored value unchanged (on create: none chosen), null resets it to the default design, an object is validated and stored: version must be 1, layout is required, ground defaults to paper, header_light and header_dark are #RRGGBB or empty.
Nested fields 5 fields
| Field | Type | Description |
|---|---|---|
ground optional | string one ofpaperwhitecool | Empty is stored as paper. |
header_dark optional | string | #RRGGBB or empty for the platform default. |
header_light optional | string | #RRGGBB or empty for the platform default. |
layout optional | string one ofessentialbrandoverview | |
version optional | integer | Must be 1. |
No effect since Plan 82; accepted and stored only.
Nested fields 4 fields
| Field | Type | Description |
|---|---|---|
apply_assets optional | boolean | Replaces the page's images (and logo_url) with the template's. |
apply_css optional | boolean | Fills custom_css from the template when the request sets none. |
expected_revision optional | integer | The template revision the caller looked at (at least 1); a different stored revision is a conflict. |
template_id optional | uuid |
No effect since Plan 82; accepted and stored only.
Not supported: a non-empty value is rejected.
Publication and notifications9 fields
A page starts as a draft unless this is true.
Access and history6 fields
Write-only; stored as a hash when password_protected is true. Responses carry password_protected only.
Not accepted on create: leave it empty and connect a domain with PUT /status-pages/{pageID}/custom-domain.
Language of the page's own communication; empty or omitted inherits from the client, then the company default.
Initial structure20 fields
The initial structure. Not combinable with selected_monitor_ids or selected_heartbeat_ids.
Nested fields 17 fields
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
auto_group_id optional | uuid · nullable | Required for monitor_group and job_group, rejected for the other sources. | |||||||||||||||||||||||||||||||||||||||
auto_source optional | string one ofnoneall_monitorsall_jobsmonitor_groupjob_group | none (stored resources), all_monitors, all_jobs, monitor_group or job_group. An automatic section cannot also hold resources. | |||||||||||||||||||||||||||||||||||||||
auto_widget_type optional | string | How the components of an automatic section render; history by default. | |||||||||||||||||||||||||||||||||||||||
name optional | string | ||||||||||||||||||||||||||||||||||||||||
resources optional | StructureResourceInput[] | ||||||||||||||||||||||||||||||||||||||||
Each item · 12 fields
| |||||||||||||||||||||||||||||||||||||||||
Puts these monitors into one section, "Current status by service". Not combinable with sections.
Puts these scheduled jobs into one section, "Current status by service". Not combinable with sections.
Returns
A successful request returns 201 with application/json.
Response fields 1 top-level fields
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data | StatusPage | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
StatusPage · 61 fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. |
| 402 | billing_action_unavailable | The Company's billing state does not allow this action. When: A metered or limited action while the billing state, such as paused or without credit, blocks it; details holds the action and billing_state. Fix: Top up the credit or change the plan, then retry. |
| 409 | design_template_conflict | The design template was changed after the caller read it. When: Updating or applying a design template that was changed after the caller read it. Fix: Reload the template and apply the change again. |
| 404 | design_template_not_found | The design template does not exist or is not visible to the caller. When: A design template id in the path or body that is unknown or not visible to the caller. Fix: List design templates and use an id from the list. |
| 402 | payment_required | The account does not have the credit or plan required for this action. |
| 403 | permission_denied | The credentials do not permit this action. |
| 503 | quota_gate_unavailable | The limit check itself failed, so the action was not carried out. When: The quota service could not decide while the request ran. Fix: Retry in a moment; nothing was changed. |
| 403 / 429 | quota_limit_reached | A usage or inventory limit of the Company was reached. When: Counters and concurrency limits answer 429 with Retry-After, inventory and capacity limits answer 403; details holds purpose, limit and window. Fix: On 429 wait Retry-After seconds; on 403 free something up, request a higher limit where details.raise_request is true, or buy an extension. quota_limit_reached (window total): the Company already holds the most of these it may have. error.details carries purpose and limit; remove one or ask support for a higher limit. |
Every call can also return unauthorized (401), rate_limit_exceeded (429) or internal_error (500 / 502). See Responses and errors.