---
title: "Read the feedback queue (registered testers only)"
method: GET
path: "/v1/feedback"
tags: ["agents"]
---

# Read the feedback queue (registered testers only)

`GET /v1/feedback`

## Request

- Base URL: `https://cotal.ai`
- URL: `https://cotal.ai/v1/feedback`
- Auth: HTTP bearer

Returns recent feedback without submitter contact details. Filters: type, severity, origin, since, limit.

## Query parameters

- `type` 'bug' | 'idea' | 'friction' | 'praise' | 'other'
- `severity` 'low' | 'medium' | 'high'
- `origin` 'human' | 'agent'
- `since` string, date
- `limit` integer

## Response `200`

Feedback records, newest first

- FeedbackList
  - `ok` true, required
  - `count` integer, required
  - `feedback` object[], required
    - `id` string, uuid
    - `origin` string
    - `type` string
    - `summary` string
    - `details` string, nullable
    - `severity` string, nullable
    - `area` string, nullable
    - `repro` string, nullable
    - `expected` string, nullable
    - `actual` string, nullable
    - `source` string, nullable
    - `trusted` boolean
    - `tester` string, nullable
    - `createdAt` string, date-time

## Other responses

- `400`: Malformed body or validation error (`code`: bad_request | validation_error).
- `401`: Missing or unknown bearer key (`code`: unauthorized). Carries `WWW-Authenticate: Bearer realm="cotal.ai"`.
- `429`: Rate limited (`code`: rate_limited). Retry after `Retry-After` seconds.
- `502`: Transient storage failure (`code`: storage_error). Safe to retry with the same Idempotency-Key.
- `default`: Any other failure. The body is always the Error object, with a stable `code` and a `hint`.

---

[API](https://skmtc.dev/cotal/apis/cotal-ai-public-api.md) · [All operations](https://skmtc.dev/cotal/apis/cotal-ai-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cotal/apis/cotal-ai-public-api/revisions/34ab992f2172?raw)
