Menu
API reference
Incidents
Incidents, their timeline, AI analysis and drafts, and AI suggestions.
- GET List incidents
- POST Open an incident
- GET Get the weekly digest
- GET Get an incident
- POST Resolve an incident
- POST Acknowledge an incident
- POST Reopen an incident
- POST Assign an incident
- POST Save a postmortem
- POST Post an incident update
- GET Get the AI root-cause analysis
- POST Rate the AI analysis
- POST Draft a status update with AI
- POST Draft a postmortem with AI
- POST Accept an AI suggestion
- POST Dismiss an AI suggestion
List incidents
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor_id | query | string | No | Filter by the affected monitor, matching either the denormalized primary hint or the full affected-component pivot. |
| lifecycle | query | string | No | |
| ai_owned | query | boolean | No | |
| q | query | string | No | Free-text search over the incident title. |
| per_page | query | integer, min 1, max 200 | No | Page size, clamped to 1 and the endpoint's maximum (200 on most lists). |
| cursor | query | string | No | The meta.next_cursor of the previous page. |
Response 200 application/json
dataarray of IncidentResource requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobjectThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or nullThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of objectmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResourceidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
linksobject requiredfirststring or null requiredlaststring or null requiredprevstring or null requirednextstring or null required
metaobject requiredpathstring or null requiredBase path for paginator generated URLs.
per_pageinteger, min 0 requiredNumber of items shown per page.
next_cursorstring or null requiredThe "cursor" that points to the next set of items.
prev_cursorstring or null requiredThe "cursor" that points to the previous set of items.
open_totalinteger requiredcritical_totalinteger requiredai_totalinteger requiredresolved_totalinteger required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/incidents" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/incidents', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/incidents",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Open an incident
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
monitor_idstring, uuid requiredseverityIncidentSeverity: string, one of "critical", "warn", "info" requiredSeverity tier assigned to an incident for routing and tone styling.
titlestring, max length 200 requiredmessagestring or null, max length 2000notifybooleanWhether to announce the open to the affected pages' confirmed subscribers.
impactIncidentImpact: string, one of "none", "minor", "major", "critical" or null
Response 200 application/json
No documented fields.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"monitor_id": "00000000-0000-4000-8000-000000000000",
"severity": "critical",
"title": "string"
}'
const payload = {
"monitor_id": "00000000-0000-4000-8000-000000000000",
"severity": "critical",
"title": "string"
};
const response = await fetch('https://api.uptizm.com/v1/incidents', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents');
$payload = <<<'JSON'
{
"monitor_id": "00000000-0000-4000-8000-000000000000",
"severity": "critical",
"title": "string"
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"monitor_id": "00000000-0000-4000-8000-000000000000",
"severity": "critical",
"title": "string"
}''',
)
print(response.json())
Try it
ms
Get the weekly digest
Response 200 application/json
dataobject requiredweek_startstring requiredweek_endstring requireduptime_percentnumber requiredincident_countinteger requiredconfidencestring, one of "high", "medium", "low" requiredsummarystring requiredhighlightsarray of any requiredstripped_citationsarray of any requiredgenerated_atstring required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 An error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/incidents/digest" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/incidents/digest', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/digest');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/incidents/digest",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Get an incident
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
Response 200 application/json
dataIncidentResource and object requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobject requiredThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or null requiredThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of object requiredmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/incidents/INCIDENT" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/incidents/INCIDENT",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Resolve an incident
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
messagestring or null, max length 2000
Response 200 application/json
dataIncidentResource and object requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobject requiredThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or null requiredThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of object requiredmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/resolve" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'
const payload = {};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/resolve', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/resolve');
$payload = <<<'JSON'
{}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/resolve",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Acknowledge an incident
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
messagestring or null, max length 2000
Response 200 application/json
dataIncidentResource and object requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobject requiredThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or null requiredThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of object requiredmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/acknowledge" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'
const payload = {};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/acknowledge', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/acknowledge');
$payload = <<<'JSON'
{}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/acknowledge",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Reopen an incident
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
messagestring or null, max length 2000
Response 200 application/json
dataIncidentResource and object requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobject requiredThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or null requiredThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of object requiredmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/reopen" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'
const payload = {};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/reopen', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/reopen');
$payload = <<<'JSON'
{}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/reopen",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Assign an incident
assignee_id is null. A non-member is a 422.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
assignee_idstring or null, one of "", null
Response 200 application/json
dataIncidentResource and object requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobject requiredThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or null requiredThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of object requiredmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/assign" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'
const payload = {};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/assign', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/assign');
$payload = <<<'JSON'
{}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/assign",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Save a postmortem
publish set it also appears on the public status page.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
bodystring, max length 20000 requiredpublishboolean
Response 200 application/json
dataIncidentResource and object requiredidstring requiredteam_idstring requiredtitlestring requiredtitle_keystring or null requiredThe translation key of the incident title, sent beside title.
title_paramsarray of any requiredlifecyclestring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredseveritystring, one of "critical", "warn", "info" requiredimpactstring, one of "none", "minor", "major", "critical" requiredsignal_sourcestring, one of "user_threshold", "ai_anomaly", "manual" requiredai_ownedboolean requiredprimary_monitor_idstring or null requiredtrigger_metric_keystring or null requiredstarted_atstring requiredresolved_atstring or null requiredpostmortem_bodystring or null requiredpostmortem_published_atstring or null requiredassigneeobject requiredThe responder the incident is assigned to, or null when it is unassigned.
idstring requirednamestring required
ai_investigationobject or null requiredThe AI investigation report for the incident, or null when there is none to show.
verdictstring or null requiredsummarystring or null requiredevidence_forstring or array of string, max items 0 requiredevidence_againststring or array of string, max items 0 requiredused_confirmationboolean requiredconfirmation_regionstring requiredmodelstring required
monitorsarray of object requiredmonitor_idstring requirednamestring requiredcomponent_status_at_startstring or null requiredcomponent_status_currentstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredRead from the monitor, not the pivot.
updatesarray of IncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
created_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/postmortem" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"body": "string"
}'
const payload = {
"body": "string"
};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/postmortem', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/postmortem');
$payload = <<<'JSON'
{
"body": "string"
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/postmortem",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"body": "string"
}''',
)
print(response.json())
Try it
ms
Post an incident update
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
messagestring, max length 2000 requiredis_publicbooleanstatusIncidentStatus: string, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" or null
Response 201 application/json
dataIncidentUpdateResource requiredidstring requiredincident_idstring requiredactorstring requiredauthorstring or null requiredstatusstring, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" requiredmessagestring requiredis_publicboolean requiredautonomousboolean requireddisplay_atstring requiredcreated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/updates" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"message": "string"
}'
const payload = {
"message": "string"
};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/updates', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/updates');
$payload = <<<'JSON'
{
"message": "string"
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/updates",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"message": "string"
}''',
)
print(response.json())
Try it
ms
Get the AI root-cause analysis
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| refresh | query | boolean | No |
Response 200 application/json
dataobject required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/incidents/INCIDENT/analysis" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/analysis', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/analysis');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/incidents/INCIDENT/analysis",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Rate the AI analysis
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
analysis_idstring requiredhelpfulboolean required
Response 200 application/json
dataobject required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/analysis/feedback" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"analysis_id": "string",
"helpful": true
}'
const payload = {
"analysis_id": "string",
"helpful": true
};
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/analysis/feedback', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/analysis/feedback');
$payload = <<<'JSON'
{
"analysis_id": "string",
"helpful": true
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/analysis/feedback",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"analysis_id": "string",
"helpful": true
}''',
)
print(response.json())
Try it
ms
Draft a status update with AI
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 200 application/json
dataobject requireddraftstring or null requireddegrade_reasonstring or null, one of "budget_exhausted", "output_untrusted", "service_unreachable", null requirednothing_to_sayboolean requiredA THIRD outcome, and not a degrade: nothing failed, there is simply nothing a customer could be told. The client must not fill its own template here, which is what it does for a null draft, because the template is the generic sentence this exists to stop.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/draft-update" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/draft-update', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/draft-update');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/draft-update",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.json())
Try it
ms
Draft a postmortem with AI
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| incident | path | string | Yes | The incident ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 200 application/json
dataobject requireddraftstring or null requireddegrade_reasonstring or null, one of "budget_exhausted", "output_untrusted", "service_unreachable", null requirednothing_to_sayboolean requiredA THIRD outcome, and not a degrade: nothing failed, there is simply nothing a customer could be told. The client must not fill its own template here, which is what it does for a null draft, because the template is the generic sentence this exists to stop.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/incidents/INCIDENT/draft-postmortem" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/incidents/INCIDENT/draft-postmortem', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/incidents/INCIDENT/draft-postmortem');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/incidents/INCIDENT/draft-postmortem",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.json())
Try it
ms
Accept an AI suggestion
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| suggestion | path | string | Yes | Primary key of the suggestion to accept. |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 200 application/json
dataobject requiredincident_idstring required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/accept" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/accept', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/accept');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/accept",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.json())
Try it
ms
Dismiss an AI suggestion
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| suggestion | path | string | Yes | Primary key of the suggestion to dismiss. |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 200 application/json
dataobject requiredstatusstring required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/dismiss" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/dismiss', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/dismiss');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/ai-suggestions/SUGGESTION/dismiss",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.json())
Try it
ms