---
title: "Update a check"
method: PATCH
path: "/playbooks/{id}/checks/{checkId}"
tags: ["Playbooks"]
---

# Update a check

`PATCH /playbooks/{id}/checks/{checkId}`

## Request

- Base URL: `https://app.gc.ai/api/external/v1`
- URL: `https://app.gc.ai/api/external/v1/playbooks/{id}/checks/{checkId}`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/gc-ai/apis/gc-ai-external-api/docs/playbooks/:id/checks/:checkId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update a check's title, description, importance, or positions. At least one field is required. When `positions` is supplied it replaces the check's positions entirely.

Requires a user-scoped key with write access to the playbook. Org-scoped keys cannot update checks.

## Path parameters

- `id` string, uuid, required: Playbook ID from `GET /playbooks`.
- `checkId` string, uuid, required: Check ID from `GET /playbooks/{id}/checks`.

## Request body

- UpdatePlaybookCheckRequest
  - `title` string: New title (non-empty).
  - `description` string, nullable: New description, or null to clear.
  - `importance` 'low' | 'medium' | 'high' | 'null', nullable: New priority, or null to clear.
  - `positions` PlaybookCheckPositionInput[]: Replacement set of positions (full desired state). Omit to leave positions unchanged.
    - `type` 'standard' | 'fallback', required: Use `standard` for the primary stance and `fallback` for an alternative the reviewer may accept.
    - `guidance` string, required: The review stance for this position: what to require, accept, or flag.

## Response `200`

Updated check

- PlaybookCheck
  - `id` string, uuid, required: Unique check identifier
  - `title` string, required: Check title
  - `description` string, nullable, required: Optional internal description, or null if unset
  - `importance` 'low' | 'medium' | 'high' | 'null', nullable, required: Priority of this check within the playbook, or null if unset
  - `positions` PlaybookCheckPosition[], required: The check's positions: one standard stance plus any fallbacks.
    - `type` 'standard' | 'fallback', required: The primary stance (`standard`) or an alternative fallback the reviewer may accept (`fallback`). Each check has exactly one standard position.
    - `guidance` string, nullable, required: The review stance for this position: what to require, accept, or flag. May be null for positions authored in the web app without guidance.
  - `created_at` string, nullable, required: ISO 8601 creation timestamp
  - `updated_at` string, nullable, required: ISO 8601 last-update timestamp

## Other responses

- `400`: Invalid request body
- `401`: Missing or malformed API key
- `403`: Updating checks requires a user-scoped key
- `404`: Playbook or check not found, or not writable
- `422`: Cannot replace positions on a check whose positions carry clause language or other settings the API can't yet round-trip; omit `positions` to update other fields
- `429`: Rate limit exceeded. See [Rate Limits](https://docs.gc.ai/api-reference/concepts/rate-limits) for the tiers, limits, and how to back off.
- `500`: Internal server error
- `503`: Service temporarily unavailable

---

[API](https://skmtc.dev/gc-ai/apis/gc-ai-external-api.md) - [All operations](https://skmtc.dev/gc-ai/apis/gc-ai-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gc-ai/apis/gc-ai-external-api/revisions/2bbdfddf7107?raw)
