Update disruption
curl --request PATCH \
--url https://app.larm.dev/api/v1/disruptions/{id} \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"impact": "<string>",
"status": "<string>",
"message": "<string>",
"status_page_id": "<string>",
"components": [
{}
]
}
'import requests
url = "https://app.larm.dev/api/v1/disruptions/{id}"
payload = {
"title": "<string>",
"impact": "<string>",
"status": "<string>",
"message": "<string>",
"status_page_id": "<string>",
"components": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
impact: '<string>',
status: '<string>',
message: '<string>',
status_page_id: '<string>',
components: [{}]
})
};
fetch('https://app.larm.dev/api/v1/disruptions/{id}', 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://app.larm.dev/api/v1/disruptions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'impact' => '<string>',
'status' => '<string>',
'message' => '<string>',
'status_page_id' => '<string>',
'components' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"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://app.larm.dev/api/v1/disruptions/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"impact\": \"<string>\",\n \"status\": \"<string>\",\n \"message\": \"<string>\",\n \"status_page_id\": \"<string>\",\n \"components\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.patch("https://app.larm.dev/api/v1/disruptions/{id}")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"impact\": \"<string>\",\n \"status\": \"<string>\",\n \"message\": \"<string>\",\n \"status_page_id\": \"<string>\",\n \"components\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.larm.dev/api/v1/disruptions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"impact\": \"<string>\",\n \"status\": \"<string>\",\n \"message\": \"<string>\",\n \"status_page_id\": \"<string>\",\n \"components\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "API outage",
"type": "disruption",
"status": "resolved",
"impact": "major",
"auto_created": false,
"started_at": "2026-03-28T12:00:00Z",
"resolved_at": "2026-03-28T13:00:00Z",
"updates": [
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"status": "resolved",
"body": "Issue fixed. All services operational.",
"posted_at": "2026-03-28T13:00:00Z",
"posted_by": "user@example.com"
}
],
"affected_components": [],
"inserted_at": "2026-03-28T12:00:00Z",
"updated_at": "2026-03-28T13:00:00Z"
}
}
Disruptions
Update disruption
Updates a disruption — change fields, add a timeline entry, publish to a status page, or resolve
PATCH
/
api
/
v1
/
disruptions
/
{id}
Update disruption
curl --request PATCH \
--url https://app.larm.dev/api/v1/disruptions/{id} \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"impact": "<string>",
"status": "<string>",
"message": "<string>",
"status_page_id": "<string>",
"components": [
{}
]
}
'import requests
url = "https://app.larm.dev/api/v1/disruptions/{id}"
payload = {
"title": "<string>",
"impact": "<string>",
"status": "<string>",
"message": "<string>",
"status_page_id": "<string>",
"components": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
impact: '<string>',
status: '<string>',
message: '<string>',
status_page_id: '<string>',
components: [{}]
})
};
fetch('https://app.larm.dev/api/v1/disruptions/{id}', 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://app.larm.dev/api/v1/disruptions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'impact' => '<string>',
'status' => '<string>',
'message' => '<string>',
'status_page_id' => '<string>',
'components' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"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://app.larm.dev/api/v1/disruptions/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"impact\": \"<string>\",\n \"status\": \"<string>\",\n \"message\": \"<string>\",\n \"status_page_id\": \"<string>\",\n \"components\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.patch("https://app.larm.dev/api/v1/disruptions/{id}")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"impact\": \"<string>\",\n \"status\": \"<string>\",\n \"message\": \"<string>\",\n \"status_page_id\": \"<string>\",\n \"components\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.larm.dev/api/v1/disruptions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"impact\": \"<string>\",\n \"status\": \"<string>\",\n \"message\": \"<string>\",\n \"status_page_id\": \"<string>\",\n \"components\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "API outage",
"type": "disruption",
"status": "resolved",
"impact": "major",
"auto_created": false,
"started_at": "2026-03-28T12:00:00Z",
"resolved_at": "2026-03-28T13:00:00Z",
"updates": [
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"status": "resolved",
"body": "Issue fixed. All services operational.",
"posted_at": "2026-03-28T13:00:00Z",
"posted_by": "user@example.com"
}
],
"affected_components": [],
"inserted_at": "2026-03-28T12:00:00Z",
"updated_at": "2026-03-28T13:00:00Z"
}
}
Requires
incidents:read_write permission.
All fields are optional. A single call can update the title, add a timeline message, publish to a status page, and resolve — all at once.
Disruption UUID
Update the disruption title
minor, major, or criticalAdvance the disruption status. Setting to
resolved or completed resolves the disruption.Disruption statuses: investigating, identified, monitoring, resolvedMaintenance statuses: scheduled, in_progress, completedAdds a timeline entry with this message. If
status is also provided, the entry reflects the new status.UUID of the status page to publish to. Must be used together with
components.Components to mark as affected. Each object has
id (component UUID) and status (major_outage, partial_outage, degraded_performance, under_maintenance, or operational).{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "API outage",
"type": "disruption",
"status": "resolved",
"impact": "major",
"auto_created": false,
"started_at": "2026-03-28T12:00:00Z",
"resolved_at": "2026-03-28T13:00:00Z",
"updates": [
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"status": "resolved",
"body": "Issue fixed. All services operational.",
"posted_at": "2026-03-28T13:00:00Z",
"posted_by": "user@example.com"
}
],
"affected_components": [],
"inserted_at": "2026-03-28T12:00:00Z",
"updated_at": "2026-03-28T13:00:00Z"
}
}
⌘I