---
title: "Save Google review labels and complete intended Hive workflow state. First read_review; pass the existing assignee, channel and status to preserve them. All workflow fields are explicit so labels cannot silently remove an assignment. Nothing is published to Google."
method: POST
path: "/api/v1/tools/label_review"
---

# Save Google review labels and complete intended Hive workflow state. First read_review; pass the existing assignee, channel and status to preserve them. All workflow fields are explicit so labels cannot silently remove an assignment. Nothing is published to Google.

`POST /api/v1/tools/label_review`

## Request

- Base URL: `https://hivepublish.com`
- URL: `https://hivepublish.com/api/v1/tools/label_review`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `reviewName` string, required: The Google review name.
  - `labelIds` string[], required: The full label list for this review, as read_review_labels returns them.
  - `status` 'open' | 'in_progress' | 'resolved', required: The intended workflow status.
  - `assigneeId` string, nullable, required: The existing member id, or null to unassign.
  - `channelId` string, nullable, required: The existing accessible Hive channel, or null to clear it.

## Response `200`

Tool result

- ToolResult
  - `data` unknown, required
  - `meta` object, required
    - `tool` string
    - `workspaceId` string, uuid

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid credential
- `403`: Missing workspace scope, role permission, or plan entitlement
- `409`: Idempotency conflict, replay, or request still in progress
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/hivepublish/apis/hive-developer-api.md) · [All operations](https://skmtc.dev/hivepublish/apis/hive-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hivepublish/apis/hive-developer-api/revisions/b440c763583e?raw)
