---
title: "Read one feedback ticket"
method: GET
path: "/api/agent/feedback/{ticket_id}"
tags: ["feedback"]
---

# Read one feedback ticket

`GET /api/agent/feedback/{ticket_id}`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/agent/feedback/{ticket_id}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Two ways in, tried in this order: an operator token carrying `admin:feedback_review` reads ANY ticket, otherwise `feedback:read` reads a ticket the caller SUBMITTED. Both re-check the live tier. Submitter text comes back wrapped in a `<USER_SUBMITTED_TEXT>` envelope so a reading LLM never sees it unframed.

## Path parameters

- `ticket_id` string, required

## Response `200`

The ticket.

- 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.
- `401`: No auth.
- `403`: The ticket exists but was submitted under another identity (or the scope is not authorized).
- `404`: No such ticket — expired, never existed, or not an fb_* id.

---

[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)
