---
title: "Update a case"
method: PATCH
path: "/v1/cases/{id}"
tags: ["Cases"]
---

# Update a case

`PATCH /v1/cases/{id}`

Update case properties.

---

#### See also  
Learn more about [Cases](./cases-guide)  
Learn more about [Templates](./templates-guide)

## Path parameters

- `id` string, required

## Request body

- CaseUpdate
  - `name` string — Update the name of the case (at most 180 characters).
  - `status` 'draft' | 'open' — Update the status of the case to `draft` or `open`. To set the status to `approved`, `rejected` or `closed`, use the [Create a case review](./case-review-create-one) endpoint.
  - `external_id` string — Update the external id of the case. Must be unique if set. Set to `null` to clear it.
  - `template_key` string, nullable — Update the template of the case using template key. Set to `null` to detach template.
  - `template_id` string, uuid, nullable — Prefer using `template_key` instead. Update the template of the case. Set to `null` to detach template. Cannot be set at the same time as `template_key`.
  - `assignee_id` string, uuid, nullable — Update the user assignee of the case. Set to `null` to un-assign.
  - `custom_properties` object — Optional partial custom properties object in a format of `key` (string) / `value` (string | boolean | string[] | number | null) to update the case. Archived custom properties are not accepted.
  - `metadata` object, nullable — Update all the metadata in a format of `key` (string) / `value` (string) of the case. Set to `null` to remove all metadata.

## Response `200`

**ℹ️ Click to see full payload**

- Case
  - `id` string, uuid, required
  - `name` string, required
  - `status` 'draft' | 'open' | 'approved' | 'rejected' | 'closed', required
  - `review` CaseReview, required
    - `id` string, uuid, required
    - `status` 'approved' | 'rejected' | 'closed', required
    - `comment` string, nullable, required
    - `reviewer_type` 'user' | 'system' | 'api', required
    - `user` NestedUser, required
      - `id` string, uuid, required
      - `first_name` string, required
      - `last_name` string, required
      - `email` string, email, required
    - `reviewed_at` string, date-time, required — Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
    - `next_review_at` string, date, nullable, required — Next review date. `null` if no review schedule after this one. Date in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)(`yyyy-MM-dd` eg `2023-01-31`)
  - `external_id` string, nullable, required
  - `assignee_id` string, nullable, required
  - `space_slug` string, nullable, required
  - `template` TemplateLight, required
    - `id` string, uuid, required
    - `name` string, required
    - `key` string, required
  - `template_id` string, uuid, nullable, required — Prefer using `template.key` instead.
  - `contact_has_actions` boolean, required
  - `reviewer_has_actions` boolean, required
  - `flags` string[], required — `all_checks_approved` `for_review` `for_first_collect` `for_recollection` `first_collect_completed`
  - `tags` string[], required
  - `risk` Risk, required
    - `id` string, required
    - `mode` 'automatic' | 'manual', required
    - `level` 'not_defined' | 'low' | 'medium' | 'high' | 'critical' | 'prohibited', required
    - `comment` string, nullable, required
    - `score` number, nullable, required
    - `components` object, nullable, required — Object in a format of `key` (string) / `value` (number)
    - `flags` object, nullable, required — Object in a format of `key` (string) / `value` (boolean)
    - `created_at` string, date-time, required — Creation date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
    - `updated_at` string, date-time, required — Latest update date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
  - `custom_properties` object, required — Custom properties object in a format of `key` (string) / `value` (string | boolean | string[] | number | null) to read the case. Archived custom properties are omitted.
  - `metadata` object, nullable, required — Object in a format of `key` (string) / `value` (string)
  - `last_activity_at` string, date-time, required — Latest activity date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
  - `last_contact_action_at` string, date-time, nullable, required — Latest contact action date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
  - `created_at` string, date-time, required — Creation date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)
  - `updated_at` string, date-time, required — Latest update date Date time in format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) (`yyyy-MM-ddTHH:mm:ss.S+X` eg `2023-01-31T13:30:00.000Z`)

## Other responses

- `400` — The request is either malformed or contain invalid parameters. - Make sure the body payload matches the expected schema
- `404` — No case can be found.

---

[API](https://skmtc.dev/dotfile/apis/api-specifications.md) · [All operations](https://skmtc.dev/dotfile/apis/api-specifications/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dotfile/api-specifications/revisions/36393567057b/schema)
