---
title: "Feedback Replace"
method: POST
path: "/feedback/replace"
tags: ["Feedback"]
---

# Feedback Replace

`POST /feedback/replace`

## Request

- Base URL: `https://trace.wandb.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://trace.wandb.ai/feedback/replace`
- Auth: none declared

## Request body

- FeedbackReplaceReq
  - `id` string, nullable: If provided by the client, this ID will be used for the feedback row instead of a server-generated one.
  - `project_id` string, required
  - `weave_ref` string, required
  - `creator` string, nullable
  - `feedback_type` string, required
  - `payload` object, required
  - `annotation_ref` string, nullable
  - `runnable_ref` string, nullable
  - `call_ref` string, nullable
  - `trigger_ref` string, nullable
  - `queue_id` string, nullable: The annotation queue ID this feedback was created from. References annotation_queues.id. NULL when feedback is created outside of queues.
  - `scorer_tags` string[]: Tags applied to the ref by a scorer
  - `scorer_tag_reasons` object: reason text per tag, keyed by tag name
  - `scorer_tag_confidences` object: confidence (0-1) per tag, keyed by tag name
  - `scorer_ratings` object: numeric ratings (0-1) keyed by rating name
  - `scorer_rating_reasons` object: reason text per rating, keyed by rating name
  - `scorer_rating_confidences` object: confidence (0-1) per rating, keyed by rating name
  - `span_agent_name` string: Display name of the scored agent (from spans.agent_name)
  - `span_agent_version` string: Version of the scored agent (from spans.agent_version)
  - `span_status_code` string: Status of the scored turn (from spans.status_code)
  - `span_conversation_id` string: Conversation the feedback belongs to (from spans.conversation_id)
  - `span_trace_id` string: Turn the feedback belongs to (from spans.trace_id)
  - `scorer_trace_id` string: Trace of the scorer (judge) invocation that produced this feedback (spans.trace_id of the judge call). Distinct from span_trace_id, which is the scored turn. Lets signals price the invocation off the judge span without joining the calls model.
  - `wb_user_id` string, nullable: Do not set directly. Server will automatically populate this field.
  - `feedback_id` string, required

## Response `200`

Successful Response

- FeedbackReplaceRes
  - `id` string, required
  - `created_at` string, date-time, required
  - `wb_user_id` string, required
  - `payload` object, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-16** `dd89fadfe4e4`: 16 info
  - the endpoint scheme security `HTTPBasic` was removed from the API
  - added the new optional request property `queue_id`
  - added the new optional request property `scorer_rating_confidences`
  - added the new optional request property `scorer_rating_reasons`
  - …12 more

[Operation history](https://skmtc.dev/wandb/apis/weights-biases-weave-stainless-api/changes/feedback/replace/post.md)

---

[API](https://skmtc.dev/wandb/apis/weights-biases-weave-stainless-api.md) - [All operations](https://skmtc.dev/wandb/apis/weights-biases-weave-stainless-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wandb/apis/weights-biases-weave-stainless-api/revisions/f7643c49bf2e?raw)
