---
title: "Record a reviewer's triage decision and judge verdict"
method: PUT
path: "/v1/admin/reply-quality/{score_id}/review"
tags: ["admin"]
---

# Record a reviewer's triage decision and judge verdict

`PUT /v1/admin/reply-quality/{score_id}/review`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/admin/reply-quality/{score_id}/review`
- Auth: HTTP bearer

Save the human read of one scored reply: where it belongs in the queue, whether the judge was right about it, what went wrong, and an optional note. Saving again replaces the previous review. Admin users only.

## Path parameters

- `score_id` string, uuid, required

## Request body

- ReplyReviewRequest: A reviewer's decision about one scored reply. ``extra="forbid"`` so a misspelled field is a 422 rather than a silently dropped decision. A reviewer who thinks they recorded a verdict and did not is the worst outcome here.
  - `status_code` string: Where this card goes in the queue: open, acknowledged, escalated or dismissed.
  - `verdict_code` string: Was the judge right about this reply: agree, too_strict, too_lenient, or unset when the reviewer is only triaging and has no opinion on the score.
  - `failure_code` string: What actually went wrong, from the closed cause list. Empty means unlabelled.
  - `note` string: Optional reviewer note.

## Response `200`

Successful Response

- ModelsReplyReviewReplyScoreReviewFullValidator: The review as it rides along on an admin scorecard row.
  - `id` string, uuid, required
  - `reply_score_id` string, uuid, required
  - `tenant_id` string, uuid, required
  - `status_code` string, required
  - `verdict_code` string, required
  - `failure_code` string, required
  - `note` string, required
  - `reviewed_by` string, uuid, nullable
  - `reviewed_by_type` string, required
  - `reviewed_at` string, date-time, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401`: Unauthorized
- `403`: Permission denied (PERMISSION_DENIED) or email not verified (EMAIL_NOT_VERIFIED)
- `404`: Not found
- `409`: Conflict: admin write rejected on a state invariant. Inspect ``errors[0].type`` for the specific case (for example: ``self_action_forbidden``, ``already_disabled``, ``not_disabled``, ``last_internal_admin``, ``value_error``)
- `422`: Validation error

---

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