---
title: "Mark a feedback ticket resolved"
method: POST
path: "/api/agent/feedback/{ticket_id}/resolve"
tags: ["feedback"]
---

# Mark a feedback ticket resolved

`POST /api/agent/feedback/{ticket_id}/resolve`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/agent/feedback/{ticket_id}/resolve`
- Auth: one of:
  - API key in cookie `__session`
  - HTTP bearer

Clerk operator session OR an agt_ token carrying `admin:feedback_review`, live tier re-checked. The body is OPTIONAL - an operator may resolve without commentary on an obvious item. The resolution is tracked on the record itself; there is no separate audit log, because the feedback list already is one.

## Path parameters

- `ticket_id` string, required

## Request body

- FeedbackResolveRequest: Optional in full — an operator may resolve without commentary.
  - `note` string: At most 800 characters.

## Response `200`

The resolved record.

- FeedbackRecordResponse
  - `ok` boolean, required
  - `record` object, required: The ticket. Submitter-authored text is wrapped in a `<USER_SUBMITTED_TEXT>` envelope so a reading LLM never sees it unframed.

## Other responses

- `400`: Missing ticket_id, or a note over the length ceiling.
- `401`: No auth.
- `403`: Not an operator / scope not authorized.
- `404`: No such ticket.
- `409`: Already resolved.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
