---
title: "Send typed human feedback against one immutable Interaction revision."
method: POST
path: "/api/v1/interactions/{interactionId}/feedback"
tags: ["Interactions"]
---

# Send typed human feedback against one immutable Interaction revision.

`POST /api/v1/interactions/{interactionId}/feedback`

## Request

- Base URL: `https://commentary.dev`
- URL: `https://commentary.dev/api/v1/interactions/{interactionId}/feedback`
- Auth: API key in cookie `commentary_session`

Feedback never mutates proposal content and moves the request to waiting_for_agent.

## Path parameters

- `interactionId` string, required

## Headers

- `If-Match` string, required
- `Idempotency-Key` string, required

## Request body

- object
  - `type` 'comment' | 'rejection_reason' | 'request_revision' | 'structured_correction', required
  - `body` string, required
  - `revisionId` string, required
  - `corrections` object[]
    - `field` 'title' | 'subtitle' | 'summary' | 'body' | 'target' | 'actions', required
    - `operation` 'replace' | 'remove', required
    - `value` unknown

## Response `200`

Successful response.

- object

## Other responses

- `201`: Successful response.
- `400`: The request was invalid.
- `401`: Authentication is required.
- `403`: The token or session does not have permission for this resource.
- `404`: The resource was not found.
- `409`: The addressed revision is stale.
- `412`: If-Match is stale or malformed.
- `428`: If-Match is required.
- `429`: The request was rate limited.

---

[API](https://skmtc.dev/commentary/apis/commentary-public-api.md) · [All operations](https://skmtc.dev/commentary/apis/commentary-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/commentary/apis/commentary-public-api/revisions/7aaafc198c52?raw)
