---
title: "Change a Hive operation found by list_workspace_operations. Your AI asks before this runs; with Hive approvals on, Hive asks again inside Hive. Uses the connected person and workspace and also needs the operation’s own write scope. Requires an OAuth connection."
method: POST
path: "/api/v1/tools/write_workspace_operation"
---

# Change a Hive operation found by list_workspace_operations. Your AI asks before this runs; with Hive approvals on, Hive asks again inside Hive. Uses the connected person and workspace and also needs the operation’s own write scope. Requires an OAuth connection.

`POST /api/v1/tools/write_workspace_operation`

## Request

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

This reaches real people, so the person is asked before it runs. Their own AI client asks them. When the connection was made with Hive approvals switched on, the first call returns a single-use Hive approval link instead of acting, and the exact request is repeated with approvalToken and an Idempotency-Key once they approve it inside Hive.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `operation` string, required: An exact operation id returned by list_workspace_operations.
  - `path` object: The named record ids required by this operation.
  - `query` object: Only the query fields listed for this operation.
  - `body` object: Only the editable fields listed for this operation. Hive checks the same rules as its screen.
  - `file` object: Attached file for operations advertising a remote file or image upload. Supply either this file or the operation’s image URL, never both.
    - `download_url` string, required
    - `file_id` string, required
    - `mime_type` string
    - `file_name` string
  - `approvalToken` string: Single-use token returned by Hive after the owner approves this exact action.

## Response `200`

Tool result or approval challenge

- union
  - ToolResult
    - `data` unknown, required
    - `meta` object, required
      - `tool` string
      - `workspaceId` string, uuid
  - ApprovalChallengeResponse
    - `data` ApprovalChallenge, required
      - `confirmationRequired` unknown, required
      - `challengeId` string, uuid, required
      - `approvalToken` string, required: Secret, single-use token. Retry only after the human approves approvalUrl.
      - `approvalUrl` string, uri, required
      - `expiresAt` string, date-time, required
      - `warning` string
    - `meta` object, required

## 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)
