---
title: "Delete a person"
method: DELETE
path: "/api/people/{person_id}"
tags: ["people"]
---

# Delete a person

`DELETE /api/people/{person_id}`

Deletes the person record; the faces that were attached to this person are not deleted — they become unassigned and will be re-clustered on the next clustering pass.

Use `update_face` with `person_id=null` to detach a specific face without deleting the whole person. Use `delete_face` to remove a face detection entirely.

If a concurrent change to the person's faces collides with the deletion, it returns 409 and nothing is deleted; retry the request unchanged.

## Path parameters

- `person_id` string, required — Person ID (with `person_` prefix) of the person to delete.

## Response `200`

Successful Response

- DeletionResponse — Acknowledgment body returned by destructive endpoints (delete / trash / restore / permanently delete / remove-from-album / empty-trash). Carries no fields — the HTTP 200 + empty JSON object is itself the success signal. Exists so MCP tools generated from these endpoints have a real ``outputSchema`` (rather than the null schema FastMCP emits for 204 responses), which ChatGPT's MCP submission tooling requires.

## Other responses

- `401` — Missing, invalid, or expired credentials.
- `403` — The credentials are valid but not authorized for this operation — for example an API key whose action or library scope excludes it, or a credential type this operation does not accept.
- `404` — Not found
- `409` — A concurrent change to the person's faces collided with the deletion
- `422` — Validation Error
- `429` — Rate limit exceeded. Retry after the interval in the `Retry-After` header.

---

[API](https://skmtc.net/gumnut-ai/apis/gumnut-api.md) · [All operations](https://skmtc.net/gumnut-ai/apis/gumnut-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gumnut-ai/gumnut-api/revisions/e71db45f5d4a/schema)
