---
title: "Create a status page incident"
method: POST
path: "/status-pages/{statusPage}/incidents"
tags: ["Status page incidents"]
---

# Create a status page incident

`POST /status-pages/{statusPage}/incidents`

## Request

- Base URL: `https://api.spectate.net/v1`
- URL: `https://api.spectate.net/v1/status-pages/{statusPage}/incidents`
- Auth: HTTP bearer

Opens a public incident. With a `body` it starts with a first update published at
`published_at` (default now), and `affected_components` open impact periods from then on.
Confirmed subscribers are emailed unless `notify_subscribers` is `false`. `incident_id`
links the team's incident, so publishing from it posts here.

## Path parameters

- `statusPage` string, uuid, required

## Request body

- CreateStatusPageIncident: A new public incident on a status page.
  - `title` string, required: Title shown on the page
  - `status` 'investigating' | 'identified' | 'monitoring' | 'resolved', required: Where an incident stands. | | |---| | `investigating` <br/> Declared; the cause isn't known yet. | | `identified` <br/> Acknowledged: the cause is known and someone works on it. | | `monitoring` <br/> A fix is out; watching whether it holds. | | `resolved` <br/> Over. |
  - `body` string, nullable: The first update, in Markdown. Leave out to create the incident without one
  - `published_at` string, date-time, nullable: When it happened, now or in the past (default now)
  - `impact` 'none' | 'degraded_performance' | 'partial_outage' | 'major_outage': An impact on a status page, including `none`: how an incident or maintenance affects a component, or an incident's overall impact. | | |---| | `none` <br/> No impact (for a component: not affected). | | `degraded_performance` <br/> Slower or less reliable than usual. | | `partial_outage` <br/> Down for some visitors or some functions. | | `major_outage` <br/> Down. |
  - `incident_id` string, uuid, nullable: The team's incident this one is for; `null` for none. Publishing from that incident (`publishIncidentStatusPageUpdate`) then posts here
  - `affected_components` StatusPageAffectedComponentInput[]: The components it affects as of `published_at`, with their impact; components left out are no longer affected. Leave out to keep the impacts as they are; send `[]` for none. Components of the status page only
    - `component_id` string, uuid, required: A component of the status page
    - `impact` 'none' | 'degraded_performance' | 'partial_outage' | 'major_outage', required: An impact on a status page, including `none`: how an incident or maintenance affects a component, or an incident's overall impact. | | |---| | `none` <br/> No impact (for a component: not affected). | | `degraded_performance` <br/> Slower or less reliable than usual. | | `partial_outage` <br/> Down for some visitors or some functions. | | `major_outage` <br/> Down. |
  - `notify_subscribers` boolean: Email confirmed subscribers about the new incident (default `true`). `false` changes the page without emails

## Response `201`

The new status page incident.

- StatusPageIncident: A public incident on a status page: what visitors read, separate from the team's own incident (which can publish to it). Its impact on components is a timeline of periods.
  - `id` string, uuid, required: Status page incident ID
  - `title` string, required: Title shown on the page
  - `status` 'investigating' | 'identified' | 'monitoring' | 'resolved', required: Where an incident stands. | | |---| | `investigating` <br/> Declared; the cause isn't known yet. | | `identified` <br/> Acknowledged: the cause is known and someone works on it. | | `monitoring` <br/> A fix is out; watching whether it holds. | | `resolved` <br/> Over. |
  - `impact` 'none' | 'degraded_performance' | 'partial_outage' | 'major_outage', required: An impact on a status page, including `none`: how an incident or maintenance affects a component, or an incident's overall impact. | | |---| | `none` <br/> No impact (for a component: not affected). | | `degraded_performance` <br/> Slower or less reliable than usual. | | `partial_outage` <br/> Down for some visitors or some functions. | | `major_outage` <br/> Down. |
  - `incident_id` string, uuid, nullable, required: The team's incident that publishes to it; `null` for none
  - `automated` boolean, required: Opened by monitor automation and still managed by it, until someone posts an update or edits its timeline
  - `updates` StatusPageIncidentUpdate[], required: Updates, newest first
    - `id` string, uuid, required: Update ID
    - `status` 'investigating' | 'identified' | 'monitoring' | 'resolved', required: Where an incident stands. | | |---| | `investigating` <br/> Declared; the cause isn't known yet. | | `identified` <br/> Acknowledged: the cause is known and someone works on it. | | `monitoring` <br/> A fix is out; watching whether it holds. | | `resolved` <br/> Over. |
    - `body` string, required: The message, in Markdown
    - `published_at` string, date-time, required: When it happened; updates are ordered by it
    - `created_at` string, date-time, required: When it was written
  - `affected_components` StatusPageAffectedComponent[], required: Components it affects or affected
    - `component` StatusPageComponentReference, required: A component of the status page.
      - `id` string, uuid, required: Component ID
      - `name` string, required: Component name
    - `impact` 'none' | 'degraded_performance' | 'partial_outage' | 'major_outage', required: An impact on a status page, including `none`: how an incident or maintenance affects a component, or an incident's overall impact. | | |---| | `none` <br/> No impact (for a component: not affected). | | `degraded_performance` <br/> Slower or less reliable than usual. | | `partial_outage` <br/> Down for some visitors or some functions. | | `major_outage` <br/> Down. |
  - `impacts` StatusPageImpactPeriod[], required: The impact timeline, oldest first
    - `id` string, uuid, required: Period ID
    - `component` StatusPageComponentReference, required: A component of the status page.
      - `id` string, uuid, required: Component ID
      - `name` string, required: Component name
    - `impact` 'degraded_performance' | 'partial_outage' | 'major_outage', required: How badly an incident affects a component. A component's status is the worst impact it has at the moment. | | |---| | `degraded_performance` <br/> Slower or less reliable than usual. | | `partial_outage` <br/> Down for some visitors or some functions. | | `major_outage` <br/> Down. |
    - `started_at` string, date-time, required: When it started
    - `ended_at` string, date-time, nullable, required: When it ended; `null` while it goes on
    - `duration_seconds` integer, required: How long it lasted so far, in seconds
  - `resolved_at` string, date-time, nullable, required: When it was resolved; `null` while open
  - `created_at` string, date-time, required: When it was created
  - `writeup` StatusPageIncidentWriteup, required: A public write-up of a status page incident: what happened and what changes, for visitors. Published, it shows on the public incident page; otherwise it's a draft only the team sees.
    - `content` string, required: The write-up, in Markdown
    - `published` boolean, required: Whether visitors see it on the public incident page
    - `published_at` string, date-time, nullable, required: When it was first published; `null` while it's a draft. Editing a published write-up keeps this time

## Other responses

- `401`: `UNAUTHENTICATED`: no token was sent. `INVALID_TOKEN`: the token is unknown or revoked. `TOKEN_EXPIRED`: the token has expired.
- `403`: `FORBIDDEN`: the token lacks an ability this endpoint requires (listed in `details.required_abilities`). `TEAM_PENDING_DELETION`: the team is scheduled for deletion. `TEAM_SUSPENDED`: Spectate suspended the team.
- `404`: `RESOURCE_NOT_FOUND`: there is no such resource in this team.
- `422`: `VALIDATION_FAILED`: the request is invalid; `details.errors` lists the fields.
- `429`: `RATE_LIMITED`: too many requests for this token. Wait for the number of seconds in `Retry-After`.

---

[API](https://skmtc.dev/spectate/apis/spectate-api.md) - [All operations](https://skmtc.dev/spectate/apis/spectate-api/llms.txt) - [OpenAPI document](https://skmtc.dev/spectate/apis/spectate-api/revisions/9b1a233997de?raw)
