---
title: "Withdraw a commitment"
method: POST
path: "/commitments/{id}/withdraw"
tags: ["Training"]
---

# Withdraw a commitment

`POST /commitments/{id}/withdraw`

## Request

- Base URL: `https://bodylab.lol/api/v1`
- URL: `https://bodylab.lol/api/v1/commitments/{id}/withdraw`
- Auth: HTTP bearer

Soft, always. The row stays and stays readable; it simply stops being something the engine plans around, and the weekly review stops expecting it. Body Lab's only cancel: the engine's own plans are replaced rather than withdrawn. NOT_FOUND covers a commitment that isn't this athlete's, isn't a commitment, or has already been withdrawn.

## Path parameters

- `id` string, required: Opaque identifier.

## Headers

- `X-Client-Platform` string
- `X-Client-Version` string

## Response `204`

No content.

## Other responses

- `401`: Error: UNAUTHORIZED.
- `404`: Error: NOT_FOUND.

---

[API](https://skmtc.dev/bodylab/apis/body-lab-api.md) · [All operations](https://skmtc.dev/bodylab/apis/body-lab-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bodylab/apis/body-lab-api/revisions/544c201eaf88?raw)
