Skip to content

Change an incident.

PATCH
/v1/incidents/{incident_id}
curl --request PATCH \
--url https://api.siteqwality.com/v1/incidents/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "title": "example", "severity": "minor", "status": "investigating", "resolved_at": "2026-04-15T12:00:00Z", "public_title": "example", "service_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'
incident_id
required
string format: uuid
Idempotency-Key
string
<= 255 characters

Makes a retry safe: the same key and body within 24 hours returns the first response with Idempotent-Replayed: true. The same key with another body is refused with 422 idempotency_key_reused, and one still running with 409 idempotency_key_in_use.

Media type application/json

PATCH semantics: an absent field is left unchanged.

object
title
string | null
severity
One of:
string
Allowed values: minor major critical
status
One of:

Deprecated: post an update, or call resolve or reopen. resolved resolves (with a public update); other values set the public status.

string
Allowed values: investigating identified monitoring resolved
resolved_at

Deprecated and ignored: resolving stamps the time.

string | null format: date-time
public_title

The title status pages show; null clears it so they show title.

string | null
service_id

Move the incident to this service; null detaches it.

string | null format: uuid

The incident. Fields left out keep their values

Media type application/json
object
id
required
string format: uuid
status_page_id

Deprecated: the first page it was created on. status_page_ids lists every page.

string | null format: uuid
status_page_ids
required

Every status page the incident is published on.

Array<string>
title
required
string
public_title

The title status pages show; null shows title.

string | null
severity
required
string
Allowed values: minor major critical
status
required
string
Allowed values: investigating identified monitoring resolved
responder_status
required
string
Allowed values: triggered acknowledged resolved
service_id
string | null format: uuid
created_at
required
string format: date-time
resolved_at
string | null format: date-time
acknowledged_at
string | null format: date-time
first_paged_at

First recorded successful page; absent when no page_sent event exists. Detail endpoints only.

string | null format: date-time
mitigated_at

First transition to public monitoring status. Detail endpoints only.

string | null format: date-time
unassigned_after_exhaustion

True while nobody acknowledged it and its escalation policy ran out, so nobody owns it. Detail endpoints only.

boolean
acknowledged_by
string | null format: uuid
resolved_by

Who resolved it; null for automatic and API-key resolves.

string | null format: uuid
auto_created
required

True when the incident was opened automatically by a monitor state change; false for incidents created manually.

boolean
updates
required
Array<object>
object
id
required
string format: uuid
status
required

The public status when it was posted.

string
Allowed values: investigating identified monitoring resolved
message
required
string
created_at
required
string format: date-time
visibility
required

public updates show on status pages; internal ones only here.

string
Allowed values: public internal
author_user_id

Who posted it; null for the system, API keys and older updates.

string | null format: uuid
affected_http_job_ids
required

Deprecated: the http entries of monitors, for one release.

Array<string>
merged_into_id

The incident this one was merged into; it is then resolved.

string | null format: uuid
resolution_reason

merged for a merged incident, else null.

string | null
monitors
required

Every monitor of the incident. Empty on list endpoints.

Array<object>
object
monitor_id
required
string format: uuid
monitor_type
required
string
Allowed values: http cron browser tls dns dns_record page_speed alert_rule
name

Null when the monitor was deleted.

string | null
impact
One of:

What status pages show for it; null derives it from the incident’s severity.

string
Allowed values: degraded partial_outage major_outage
source
required

auto when a failure joined it, manual when someone added it.

string
Allowed values: auto manual
joined_at
required
string format: date-time
recovered_at
string | null format: date-time
participants
required

Who works it, the lead first. Empty on list endpoints.

Array<object>
object
user_id
required
string format: uuid
role
required
string
Allowed values: lead responder comms
added_by

Who added them; the acknowledger for an automatic lead.

string | null format: uuid
added_at
required
string format: date-time
paged_at

When they were paged on being added; null when they were not.

string | null format: date-time
merged_from
required

The incidents merged into this one, each with its own updates. Empty on list endpoints.

Array<object>

An incident merged into this one; its updates stay on it.

object
id
required
string format: uuid
title
required
string
created_at
required
string format: date-time
updates
required
Array<object>
object
id
required
string format: uuid
status
required

The public status when it was posted.

string
Allowed values: investigating identified monitoring resolved
message
required
string
created_at
required
string format: date-time
visibility
required

public updates show on status pages; internal ones only here.

string
Allowed values: public internal
author_user_id

Who posted it; null for the system, API keys and older updates.

string | null format: uuid
Example
{
"severity": "minor",
"status": "investigating",
"responder_status": "triggered",
"updates": [
{
"status": "investigating",
"visibility": "public"
}
],
"monitors": [
{
"monitor_type": "http",
"impact": "degraded",
"source": "auto"
}
],
"participants": [
{
"role": "lead"
}
],
"merged_from": [
{
"updates": [
{
"status": "investigating",
"visibility": "public"
}
]
}
]
}
Idempotent-Replayed
string

true when this is the stored first response

Invalid request body

Media type application/problem+json

An RFC 9457 problem, the body of every /v1 error.

object
type
required

https://docs.siteqwality.com/errors/ and the failure’s code, such as not_found.

string
title
required
string
status
required
integer format: int32
detail
string | null
instance

urn:uuid: and the request id.

string | null
errors

The invalid fields, when the request body was refused.

array | null

One validation failure; pointer is an RFC 6901 pointer into the request body.

object
pointer
required
string
detail
required
string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"errors": [
{
"pointer": "example",
"detail": "example"
}
]
}

Missing or invalid credentials

Media type application/problem+json

An RFC 9457 problem, the body of every /v1 error.

object
type
required

https://docs.siteqwality.com/errors/ and the failure’s code, such as not_found.

string
title
required
string
status
required
integer format: int32
detail
string | null
instance

urn:uuid: and the request id.

string | null
errors

The invalid fields, when the request body was refused.

array | null

One validation failure; pointer is an RFC 6901 pointer into the request body.

object
pointer
required
string
detail
required
string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"errors": [
{
"pointer": "example",
"detail": "example"
}
]
}

The key or member may not do this, or lacks the scope it needs

Media type application/problem+json

An RFC 9457 problem, the body of every /v1 error.

object
type
required

https://docs.siteqwality.com/errors/ and the failure’s code, such as not_found.

string
title
required
string
status
required
integer format: int32
detail
string | null
instance

urn:uuid: and the request id.

string | null
errors

The invalid fields, when the request body was refused.

array | null

One validation failure; pointer is an RFC 6901 pointer into the request body.

object
pointer
required
string
detail
required
string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"errors": [
{
"pointer": "example",
"detail": "example"
}
]
}

No such incident or service in this account

Media type application/problem+json

An RFC 9457 problem, the body of every /v1 error.

object
type
required

https://docs.siteqwality.com/errors/ and the failure’s code, such as not_found.

string
title
required
string
status
required
integer format: int32
detail
string | null
instance

urn:uuid: and the request id.

string | null
errors

The invalid fields, when the request body was refused.

array | null

One validation failure; pointer is an RFC 6901 pointer into the request body.

object
pointer
required
string
detail
required
string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"errors": [
{
"pointer": "example",
"detail": "example"
}
]
}

The status cannot change on a resolved incident, or a merged incident cannot move

Media type application/problem+json

An RFC 9457 problem, the body of every /v1 error.

object
type
required

https://docs.siteqwality.com/errors/ and the failure’s code, such as not_found.

string
title
required
string
status
required
integer format: int32
detail
string | null
instance

urn:uuid: and the request id.

string | null
errors

The invalid fields, when the request body was refused.

array | null

One validation failure; pointer is an RFC 6901 pointer into the request body.

object
pointer
required
string
detail
required
string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"errors": [
{
"pointer": "example",
"detail": "example"
}
]
}

Too many requests; wait for the time in Retry-After

Media type application/problem+json

An RFC 9457 problem, the body of every /v1 error.

object
type
required

https://docs.siteqwality.com/errors/ and the failure’s code, such as not_found.

string
title
required
string
status
required
integer format: int32
detail
string | null
instance

urn:uuid: and the request id.

string | null
errors

The invalid fields, when the request body was refused.

array | null

One validation failure; pointer is an RFC 6901 pointer into the request body.

object
pointer
required
string
detail
required
string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"errors": [
{
"pointer": "example",
"detail": "example"
}
]
}