---
title: "PATCH /api/initiatives/{id}/checkpoints/{checkpointId}"
method: PATCH
path: "/api/initiatives/{id}/checkpoints/{checkpointId}"
tags: ["initiatives"]
---

# PATCH /api/initiatives/{id}/checkpoints/{checkpointId}

`PATCH /api/initiatives/{id}/checkpoints/{checkpointId}`

## Request

- Base URL: `https://app.heykairon.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.heykairon.com/api/initiatives/{id}/checkpoints/{checkpointId}`
- Auth: API key in header `x-api-key`

## Path parameters

- `id` string, required
- `checkpointId` string, required

## Request body

- CheckpointUpdateDto
  - `body` string: What happened and the ONE thing to do next, in markdown. Say the numbers you read and how they compare to this org’s own baseline, and whether the last checkpoint’s recommendation was actually done. To put a teammate’s name on a next step, mention them: `[@Ana](#kairon-ana@co.com)` — a normal markdown link whose destination is `#kairon-` plus their user id, email, or name (spaces as `+`). Whichever you use is stored as their id, and a name nobody here matches, or one two teammates share, is refused rather than saved as prose. Read user ids and names off `seat_list`.
  - `health` 'on_track' | 'at_risk' | 'off_track': The verdict, frozen at publish: `on_track`, `at_risk` or `off_track`. Judge VOLUME before rates — a low number of sends is not a bad result, it is not a result yet.

## Response `200`

---

[API](https://skmtc.dev/heykairon/apis/kairon-api.md) · [All operations](https://skmtc.dev/heykairon/apis/kairon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/heykairon/apis/kairon-api/revisions/35de550d5938?raw)
