Complete or reopen an alert checklist item
curl --request PATCH \
--url https://demo.casebender.com/api/v1/alert-checklist-items/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"action": "complete",
"expectedRevision": 2,
"comment": "<string>"
}
'import requests
url = "https://demo.casebender.com/api/v1/alert-checklist-items/{id}"
payload = {
"action": "complete",
"expectedRevision": 2,
"comment": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({action: 'complete', expectedRevision: 2, comment: '<string>'})
};
fetch('https://demo.casebender.com/api/v1/alert-checklist-items/{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://demo.casebender.com/api/v1/alert-checklist-items/{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([
'action' => 'complete',
'expectedRevision' => 2,
'comment' => '<string>'
]),
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://demo.casebender.com/api/v1/alert-checklist-items/{id}"
payload := strings.NewReader("{\n \"action\": \"complete\",\n \"expectedRevision\": 2,\n \"comment\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://demo.casebender.com/api/v1/alert-checklist-items/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"action\": \"complete\",\n \"expectedRevision\": 2,\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo.casebender.com/api/v1/alert-checklist-items/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": \"complete\",\n \"expectedRevision\": 2,\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"checklistId": "<string>",
"source": "POLICY",
"sourcePolicyVersionId": "<string>",
"stableKey": "<string>",
"title": "<string>",
"order": 123,
"required": true,
"requiresComment": true,
"evidenceRequirement": "NONE",
"state": "PENDING",
"revision": 2,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"alertId": "<string>",
"groupName": "<string>",
"description": "<string>",
"dependsOnStableKey": "<string>",
"conditions": {},
"completedById": "<string>",
"completedBy": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"image": "<string>"
},
"completedAt": "2023-11-07T05:31:56Z",
"waivedById": "<string>",
"waivedBy": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"image": "<string>"
},
"waivedAt": "2023-11-07T05:31:56Z",
"waiverReason": "<string>"
}{
"error": "STALE_CHECKLIST_ITEM",
"message": "<string>",
"statusCode": 409,
"currentRevision": 2
}Alerts
Complete or Reopen Alert Checklist Item
Mutate a checklist item using its revision as an optimistic-concurrency precondition.
PATCH
/
alert-checklist-items
/
{id}
Complete or reopen an alert checklist item
curl --request PATCH \
--url https://demo.casebender.com/api/v1/alert-checklist-items/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"action": "complete",
"expectedRevision": 2,
"comment": "<string>"
}
'import requests
url = "https://demo.casebender.com/api/v1/alert-checklist-items/{id}"
payload = {
"action": "complete",
"expectedRevision": 2,
"comment": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({action: 'complete', expectedRevision: 2, comment: '<string>'})
};
fetch('https://demo.casebender.com/api/v1/alert-checklist-items/{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://demo.casebender.com/api/v1/alert-checklist-items/{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([
'action' => 'complete',
'expectedRevision' => 2,
'comment' => '<string>'
]),
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://demo.casebender.com/api/v1/alert-checklist-items/{id}"
payload := strings.NewReader("{\n \"action\": \"complete\",\n \"expectedRevision\": 2,\n \"comment\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://demo.casebender.com/api/v1/alert-checklist-items/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"action\": \"complete\",\n \"expectedRevision\": 2,\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://demo.casebender.com/api/v1/alert-checklist-items/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": \"complete\",\n \"expectedRevision\": 2,\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"checklistId": "<string>",
"source": "POLICY",
"sourcePolicyVersionId": "<string>",
"stableKey": "<string>",
"title": "<string>",
"order": 123,
"required": true,
"requiresComment": true,
"evidenceRequirement": "NONE",
"state": "PENDING",
"revision": 2,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"alertId": "<string>",
"groupName": "<string>",
"description": "<string>",
"dependsOnStableKey": "<string>",
"conditions": {},
"completedById": "<string>",
"completedBy": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"image": "<string>"
},
"completedAt": "2023-11-07T05:31:56Z",
"waivedById": "<string>",
"waivedBy": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"image": "<string>"
},
"waivedAt": "2023-11-07T05:31:56Z",
"waiverReason": "<string>"
}{
"error": "STALE_CHECKLIST_ITEM",
"message": "<string>",
"statusCode": 409,
"currentRevision": 2
}Requires the
alerts:write scope. Send the latest expectedRevision; stale revisions return 409 Conflict with the current revision.
Use an Idempotency-Key header for completion or reopen requests that may be retried. The same item, action, and key return the existing result without duplicating comments or audit events.
The complete action can include a comment and an evidence reference. Attachment evidence must belong to this checklist item. Automation evidence must reference a workflow execution for the parent alert.Authorizations
bearerAuthapiKey
API key authentication. Use format: Bearer cbr_live_your_key
Headers
Recommended for completion and reopen requests so retries do not duplicate side effects.
Required string length:
8 - 200Path Parameters
Minimum string length:
1Body
application/json
Response
Default Response
Available options:
POLICY, ALERT_SPECIFIC Available options:
NONE, COMMENT, ATTACHMENT, AUTOMATION, ANY Available options:
PENDING, IN_PROGRESS, COMPLETED, WAIVED Required range:
x >= 1Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I