Reassign
Reassign an escalation to a different escalation path or set of users.
Use this when a page reached the wrong people. Reassigning creates a new escalation aimed at the targets you give, linked back to the original, and carries over the original’s title, description, priority, incident and alert so the page stays attached to the same alert and acknowledgements keep grouping under it.
You must provide either an escalation_path_id OR user_ids, but not both. Both name incident.io escalation paths and users, so an escalation cannot be reassigned to an external escalator such as PagerDuty or Opsgenie.
By default the original escalation is resolved, so the first targets stop being paged. Pass resolve_original=false to leave it running alongside the new one. Resolving the original additionally needs the “escalations.respond” permission, since it stops a page someone else may be responding to.
An escalation can only be reassigned once: calling this again for the same escalation is rejected. Retrying a request whose response you never saw is safe in the sense that matters — a reassignment that already happened is never repeated, so nobody is paged twice — but the retry is rejected rather than returning the escalation the first call created, so keep the ID from the original response.
To use this API, you will need an API key with the “Create and manage escalations” permission. The reassignment is attributed to the key; to attribute it to one of your users instead, set the X-Incident-User header, which needs the “api_keys.act_on_behalf_of_users” scope.
If your API key’s permissions are scoped to teams, the escalation you’re reassigning must be owned by one of those teams, and you can only reassign via an escalation path one of them owns. Reassigning directly to user_ids needs the permission at the account level, because an escalation aimed at a person has no owning team.
curl --request POST \
--url https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Database CPU has been above 90% for 5 minutes",
"escalation_path_id": "01H0J1EXE7AXZ2C93K61WBPYEH",
"resolve_original": true,
"title": "Production database experiencing high CPU",
"user_ids": [
"01H0J1EXE7AXZ2C93K61WBPYEH",
"01H0J1EXE7AXZ2C93K61WBPYEI"
]
}
'import requests
url = "https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign"
payload = {
"description": "Database CPU has been above 90% for 5 minutes",
"escalation_path_id": "01H0J1EXE7AXZ2C93K61WBPYEH",
"resolve_original": True,
"title": "Production database experiencing high CPU",
"user_ids": ["01H0J1EXE7AXZ2C93K61WBPYEH", "01H0J1EXE7AXZ2C93K61WBPYEI"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Database CPU has been above 90% for 5 minutes',
escalation_path_id: '01H0J1EXE7AXZ2C93K61WBPYEH',
resolve_original: true,
title: 'Production database experiencing high CPU',
user_ids: ['01H0J1EXE7AXZ2C93K61WBPYEH', '01H0J1EXE7AXZ2C93K61WBPYEI']
})
};
fetch('https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'Database CPU has been above 90% for 5 minutes',
'escalation_path_id' => '01H0J1EXE7AXZ2C93K61WBPYEH',
'resolve_original' => true,
'title' => 'Production database experiencing high CPU',
'user_ids' => [
'01H0J1EXE7AXZ2C93K61WBPYEH',
'01H0J1EXE7AXZ2C93K61WBPYEI'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign"
payload := strings.NewReader("{\n \"description\": \"Database CPU has been above 90% for 5 minutes\",\n \"escalation_path_id\": \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"resolve_original\": true,\n \"title\": \"Production database experiencing high CPU\",\n \"user_ids\": [\n \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"01H0J1EXE7AXZ2C93K61WBPYEI\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Database CPU has been above 90% for 5 minutes\",\n \"escalation_path_id\": \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"resolve_original\": true,\n \"title\": \"Production database experiencing high CPU\",\n \"user_ids\": [\n \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"01H0J1EXE7AXZ2C93K61WBPYEI\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Database CPU has been above 90% for 5 minutes\",\n \"escalation_path_id\": \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"resolve_original\": true,\n \"title\": \"Production database experiencing high CPU\",\n \"user_ids\": [\n \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"01H0J1EXE7AXZ2C93K61WBPYEI\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"escalation": {
"created_at": "2021-08-17T13:28:57.801578Z",
"creator": {
"alert": {
"id": "01GW2G3V0S59R238FAHPDS1R66",
"title": "*errors.withMessage: PG::Error failed to connect"
},
"user": {
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
},
"workflow": {
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "My little workflow"
}
},
"description": "Database CPU has been above 90% for 5 minutes",
"escalation_path_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"events": [
{
"channels": [
{
"microsoft_teams_channel_id": "abc123",
"microsoft_teams_team_id": "abc123",
"slack_channel_id": "abc123",
"slack_team_id": "abc123"
}
],
"event": "entered_grace_period",
"id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"occurred_at": "2021-08-17T13:28:57.801578Z",
"urgency": "high",
"users": [
{
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
}
]
}
],
"id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"priority": {
"name": "P1"
},
"related_alerts": [
{
"alert_group_ids": [
"01GW2G3V0S59R238FAHPDS1R66"
],
"alert_source_id": "01GW2G3V0S59R238FAHPDS1R66",
"created_at": "2021-08-17T13:28:57.801578Z",
"deduplication_key": "4293868629",
"description": "CPU on the payments service has exceeded 75 percent for 5 minutes",
"id": "01GW2G3V0S59R238FAHPDS1R66",
"resolved_at": "2021-08-17T14:28:57.801578Z",
"source_url": "https://www.my-alerting-platform.com/alerts/my-alert-123",
"status": "firing",
"title": "*errors.withMessage: PG::Error failed to connect",
"updated_at": "2021-08-17T13:28:57.801578Z"
}
],
"related_incidents": [
{
"external_id": 123,
"id": "01FDAG4SAP5TYPT98WGR2N7W91",
"name": "Our database is sad",
"reference": "INC-123",
"status_category": "triage",
"summary": "Our database is really really sad, and we don't know why yet.",
"visibility": "public"
}
],
"status": "pending",
"title": "Database CPU is high",
"updated_at": "2021-08-17T13:28:57.801578Z"
}
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}escalations.create scope.Authorizations
API key from your incident.io dashboard (Settings → API keys)
Path Parameters
The ID of the escalation to reassign
"01G0J1EXE7AXZ2C93K61WBPYEH"
Body
Additional details about the new escalation. Defaults to the original's description.
"Database CPU has been above 90% for 5 minutes"
ID of the escalation path to reassign to
"01H0J1EXE7AXZ2C93K61WBPYEH"
Whether to resolve the original escalation, stopping it paging its targets. Defaults to true.
true
The title of the new escalation. Defaults to the original's title.
"Production database experiencing high CPU"
IDs of users to reassign directly to
[
"01H0J1EXE7AXZ2C93K61WBPYEH",
"01H0J1EXE7AXZ2C93K61WBPYEI"
]
Response
Created response.
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "Database CPU has been above 90% for 5 minutes",
"escalation_path_id": "01H0J1EXE7AXZ2C93K61WBPYEH",
"resolve_original": true,
"title": "Production database experiencing high CPU",
"user_ids": [
"01H0J1EXE7AXZ2C93K61WBPYEH",
"01H0J1EXE7AXZ2C93K61WBPYEI"
]
}
'import requests
url = "https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign"
payload = {
"description": "Database CPU has been above 90% for 5 minutes",
"escalation_path_id": "01H0J1EXE7AXZ2C93K61WBPYEH",
"resolve_original": True,
"title": "Production database experiencing high CPU",
"user_ids": ["01H0J1EXE7AXZ2C93K61WBPYEH", "01H0J1EXE7AXZ2C93K61WBPYEI"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Database CPU has been above 90% for 5 minutes',
escalation_path_id: '01H0J1EXE7AXZ2C93K61WBPYEH',
resolve_original: true,
title: 'Production database experiencing high CPU',
user_ids: ['01H0J1EXE7AXZ2C93K61WBPYEH', '01H0J1EXE7AXZ2C93K61WBPYEI']
})
};
fetch('https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'Database CPU has been above 90% for 5 minutes',
'escalation_path_id' => '01H0J1EXE7AXZ2C93K61WBPYEH',
'resolve_original' => true,
'title' => 'Production database experiencing high CPU',
'user_ids' => [
'01H0J1EXE7AXZ2C93K61WBPYEH',
'01H0J1EXE7AXZ2C93K61WBPYEI'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign"
payload := strings.NewReader("{\n \"description\": \"Database CPU has been above 90% for 5 minutes\",\n \"escalation_path_id\": \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"resolve_original\": true,\n \"title\": \"Production database experiencing high CPU\",\n \"user_ids\": [\n \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"01H0J1EXE7AXZ2C93K61WBPYEI\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Database CPU has been above 90% for 5 minutes\",\n \"escalation_path_id\": \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"resolve_original\": true,\n \"title\": \"Production database experiencing high CPU\",\n \"user_ids\": [\n \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"01H0J1EXE7AXZ2C93K61WBPYEI\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.incident.io/v2/escalations/{escalation_id}/actions/reassign")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Database CPU has been above 90% for 5 minutes\",\n \"escalation_path_id\": \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"resolve_original\": true,\n \"title\": \"Production database experiencing high CPU\",\n \"user_ids\": [\n \"01H0J1EXE7AXZ2C93K61WBPYEH\",\n \"01H0J1EXE7AXZ2C93K61WBPYEI\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"escalation": {
"created_at": "2021-08-17T13:28:57.801578Z",
"creator": {
"alert": {
"id": "01GW2G3V0S59R238FAHPDS1R66",
"title": "*errors.withMessage: PG::Error failed to connect"
},
"user": {
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
},
"workflow": {
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "My little workflow"
}
},
"description": "Database CPU has been above 90% for 5 minutes",
"escalation_path_id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"events": [
{
"channels": [
{
"microsoft_teams_channel_id": "abc123",
"microsoft_teams_team_id": "abc123",
"slack_channel_id": "abc123",
"slack_team_id": "abc123"
}
],
"event": "entered_grace_period",
"id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"occurred_at": "2021-08-17T13:28:57.801578Z",
"urgency": "high",
"users": [
{
"email": "lisa@incident.io",
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"name": "Lisa Karlin Curtis",
"role": "owner",
"slack_user_id": "U02AYNF2XJM"
}
]
}
],
"id": "01G0J1EXE7AXZ2C93K61WBPYEH",
"priority": {
"name": "P1"
},
"related_alerts": [
{
"alert_group_ids": [
"01GW2G3V0S59R238FAHPDS1R66"
],
"alert_source_id": "01GW2G3V0S59R238FAHPDS1R66",
"created_at": "2021-08-17T13:28:57.801578Z",
"deduplication_key": "4293868629",
"description": "CPU on the payments service has exceeded 75 percent for 5 minutes",
"id": "01GW2G3V0S59R238FAHPDS1R66",
"resolved_at": "2021-08-17T14:28:57.801578Z",
"source_url": "https://www.my-alerting-platform.com/alerts/my-alert-123",
"status": "firing",
"title": "*errors.withMessage: PG::Error failed to connect",
"updated_at": "2021-08-17T13:28:57.801578Z"
}
],
"related_incidents": [
{
"external_id": 123,
"id": "01FDAG4SAP5TYPT98WGR2N7W91",
"name": "Our database is sad",
"reference": "INC-123",
"status_category": "triage",
"summary": "Our database is really really sad, and we don't know why yet.",
"visibility": "public"
}
],
"status": "pending",
"title": "Database CPU is high",
"updated_at": "2021-08-17T13:28:57.801578Z"
}
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}{
"debug": {
"message": "Something broke: and something else: and something else",
"stacktrace": [
"thing.go:123"
]
},
"errors": [
{
"code": "trial_expired",
"message": "Default incident call link must be a valid URL",
"metadata": {
"abc123": "abc123"
},
"source": {
"field": "default_call_url",
"pointer": "/settings/default_call_url"
}
}
],
"rate_limit": {
"limit": 100,
"name": "client_ip",
"remaining": 98,
"retry_after": "2020-01-01T00:00:00Z"
},
"request_id": "2T1p0e3j",
"status": 408,
"type": "invalid_request_error"
}