---
title: "BRIEF-SUPPORT-001 — mark a support message read / resolved (admin-gated)"
method: PATCH
path: "/api/v1/admin/support/{support_id}"
tags: ["admin"]
---

# BRIEF-SUPPORT-001 — mark a support message read / resolved (admin-gated)

`PATCH /api/v1/admin/support/{support_id}`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/admin/support/{support_id}`
- Auth: none declared

Update operator triage state (`is_read`, `status`) on one message.

This is OUR state — it never touches the mail on the server. `exclude_unset`
so an omitted field is untouched. Audited (target-id + field NAMES only).
Auth: anon→401, non-admin→403, admin→200; ADMIN_DASHBOARD off→404;
unknown id→404.

## Path parameters

- `support_id` string, uuid, required

## Request body

- AdminSupportMessagePatch: Body for PATCH /admin/support/{id} (BRIEF-SUPPORT-001). Both fields optional so a partial edit only touches what it names (``exclude_unset`` in the handler). ``status`` is a closed set — open or resolved — validated here so a bad value 422s at the boundary rather than writing an unknown state.
  - `is_read` boolean, nullable
  - `status` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
