---
title: "Create Review Chat Turn"
method: POST
path: "/agent-loop/workspaces/{workspace_id}/review-chat/turns"
tags: ["agent-loop"]
---

# Create Review Chat Turn

`POST /agent-loop/workspaces/{workspace_id}/review-chat/turns`

Open or extend the caller's private review-chat thread on a snapshot.

Renderer-facing (workspace membership gates the call; the thread is the
caller's own). Writes a pending review_chat_turns row, then mints a handoff
JWT carrying caps=['review-chat-turn'] plus the snapshot_id claim that flips
agent-service into the read-only review sandbox. The claim — never a body
flag — is the source of truth for the turn kind. Returns the handoff code
the renderer forwards to agent-service.

## Path parameters

- `workspace_id` string, required

## Request body

- CreateReviewChatTurnRequest — Renderer body for opening/extending a private review-chat thread. `parent_turn_id` is null for the thread's first message and the prior turn's id thereafter. `id` lets the client supply the turn id (optimistic UI), mirroring CreateTurnRequest.
  - `snapshot_id` string, required
  - `parent_turn_id` string, nullable
  - `user_message` string, nullable
  - `id` string, nullable

## Response `200`

Successful Response

- CreateReviewChatTurnResponse
  - `turn_id` string, required
  - `handoff_code` string, required — Single-use code redeemable at /agent-loop/internal/agent-token/redeem for the review-chat agent-svc JWT (caps=['review-chat-turn'] + snapshot_id) bound to this turn. 60s TTL.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/tryscott/apis/one-shot-api.md) · [All operations](https://skmtc.dev/tryscott/apis/one-shot-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tryscott/one-shot-api/revisions/28bdface01df/schema)
