---
title: "Create Trace Feedback"
method: POST
path: "/api/v1/traces/feedback"
tags: ["traces"]
---

# Create Trace Feedback

`POST /api/v1/traces/feedback`

Record human feedback and optional ground truth for an MLflow trace.

## Request body

- TraceFeedbackRequest — Feedback payload for annotating an MLflow trace.
  - `trace_id` string, nullable — Resolved MLflow trace identifier when the client already knows it.
  - `client_request_id` string, nullable — Client request identifier used to resolve the trace when trace_id is absent.
  - `is_correct` boolean, required — Whether the model output was considered correct.
  - `comment` string, nullable — Optional free-form reviewer comment explaining the feedback.
  - `expected_response` string, nullable — Optional ground-truth response or correction to log alongside the feedback.

## Response `200`

Successful Response

- TraceFeedbackResponse — Result payload after MLflow feedback has been recorded.
  - `ok` boolean — Whether the feedback request completed successfully.
  - `trace_id` string, required — Resolved MLflow trace identifier that received the feedback.
  - `client_request_id` string, nullable — Resolved client request identifier associated with the trace, when available.
  - `feedback_logged` boolean — Whether binary/correctness feedback was successfully logged.
  - `expectation_logged` boolean — Whether an expected-response correction was successfully logged.

## Other responses

- `400` — The feedback request did not include a valid trace identifier.
- `401` — Authentication is required or the provided token is invalid.
- `403` — The authenticated user is not allowed to annotate this trace.
- `404` — No MLflow trace matched the provided identifier.
- `422` — Validation Error
- `503` — MLflow feedback services are unavailable or misconfigured.

## Changes

- **2026-05-23** `6178f925cdec` — 1 breaking, 3 info
  - the `detail` response's property type changed from `array` to no type for status `422`
  - added `subschema #1, subschema #2` to the `detail` response property `anyOf` list for the response status `422`
  - added the required property `code` to the response with the `422` status
  - added the required property `message` to the response with the `422` status
- **2026-03-31** `a88715bea2c5` — 1 info
  - the endpoint scheme security `HTTPBearer` was added to the API
- **2026-03-25** `bc0d4fcb5906` — 5 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
  - added the non-success response with the status `404`
  - …1 more
- **2026-03-19** `78507b29ed8f` — 3 breaking, 7 info
  - the `detail` response's property type changed from no type to `array` for status `422`
  - removed the required property `code` from the response with the `422` status
  - removed the required property `message` from the response with the `422` status
  - the endpoint scheme security `HTTPBearer` was removed from the API
  - …6 more

[Change history](https://skmtc.dev/qredence/apis/fleet-rlm/changes/api/v1/traces/feedback/post.md)

---

[API](https://skmtc.dev/qredence/apis/fleet-rlm.md) · [All operations](https://skmtc.dev/qredence/apis/fleet-rlm/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qredence/fleet-rlm/revisions/e25aaded81b9/schema)
