---
title: "List my feedback submissions"
method: GET
path: "/feedback/mine"
tags: ["Feedback"]
---

# List my feedback submissions

`GET /feedback/mine`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/feedback/mine`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Mnemom-Api-Key`
  - API key in cookie `mnemom_session`

Lists the CALLING reporter's own feedback submissions (newest first), each with its current status, latest triage decision + scores, dedup-cluster membership, linked fleet work item, and resolution/acknowledgement state. Scoped to the authenticated principal server-side (`reporter_user_id`) — there is no way to list another reporter's submissions through this endpoint. Paginated: `cursor` is an opaque offset token, not a timestamp.

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

Paginated list of the caller's own feedback submissions.

- object
  - `items` object[], required
    - `id` string, uuid, required
    - `category` 'compliment' | 'problem' | 'suggestion', required: Reporter-selected intent, as submitted.
    - `status` 'received' | 'triage_pending' | 'triaged' | 'needs_review' | 'manual' | 'routed' | 'in_progress' | 'resolved' | 'wont_fix' | 'duplicate', required: Lifecycle status of the submission.
    - `title` string, required: Reporter-provided title (post-redaction).
    - `body` string, required: Reporter-provided body (post-redaction).
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `triage_decision` 'auto_fix' | 'needs_review' | 'manual' | 'compliment_digest' | 'suggestion_backlog' | 'null', nullable: Most recent triage-brain decision, if any triage pass has run.
    - `triage_confidence` number, nullable: 0..1 explainable confidence score from the most recent triage pass.
    - `triage_risk` number, nullable: 0..1 explainable risk score from the most recent triage pass.
    - `cluster_id` string, uuid, nullable: Dedup cluster this submission was attached to, if any (see status=duplicate).
    - `cluster_member_count` integer, nullable: 'N reporters affected' count for cluster_id, when present.
    - `work_item_repo` string, nullable: Repo the fleet work item was opened against, if one was created.
    - `work_item_url` string, uri, nullable: URL of the Linear issue opened for this submission, if any.
    - `work_item_linear_status` 'open' | 'in_progress' | 'done' | 'released' | 'canceled' | 'null', nullable: Current status of the linked Linear issue, if any.
    - `work_item_dispatched_at` string, date-time, nullable: When the fleet work item was created, if any.
    - `resolved_at` string, date-time, nullable: When this submission was resolved, if it has been.
    - `resolution_source` 'linear_webhook' | 'manual' | 'null', nullable: How the resolution was recorded, if resolved.
    - `acknowledged_at` string, date-time, nullable: When the reporter acknowledged the resolution banner, if they have.
  - `next_cursor` string, nullable, required: Opaque offset token; pass as `cursor` on the next request. `null` when there are no further pages.
  - `has_more` boolean, required: Whether additional pages exist.

## Other responses

- `401`: Authentication required
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
