---
title: "Complete or drop a single enrollment — the same write-through ProgramService.setStatus applies for the automatic client-enrollment-expiry sweep, so a manual fix here can never disagree with what the sweep would have done."
method: PATCH
path: "/api/admin/enrollments/{id}/status"
tags: ["Admin"]
---

# Complete or drop a single enrollment — the same write-through ProgramService.setStatus applies for the automatic client-enrollment-expiry sweep, so a manual fix here can never disagree with what the sweep would have done.

`PATCH /api/admin/enrollments/{id}/status`

## Request

- Base URL: `https://api.rewritelifestyle.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rewritelifestyle.ai/api/admin/enrollments/{id}/status`
- Auth: HTTP bearer

## Path parameters

- `id` number, required

## Request body

- UpdateEnrollmentStatusDto
  - `status` 'completed' | 'dropped', required
  - `endDate` string: Defaults to today if omitted and no end_date is already set.

## Response `200`

## Changes

- **2026-09-12** `0d5ef02a4fbe`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/admin/enrollments/:id/status/patch.md)

---

[API](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api.md) - [All operations](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/revisions/28695827f27a?raw)
