---
search:
  tags:
    - Tools
    - POST
seo:
  description: >-
    Prepare a mutation with {input: {...}}. Preparation does not approve or
    execute publication. A successful preparation returns confirmationCapability
    and…
sidebar:
  label: Prepare a mutation
  badge: POST
title: Prepare a mutation
type: openapi-operation
---
Prepare a mutation with &#123;input: &#123;...&#125;&#125;. Preparation does not approve or execute publication. A successful preparation returns confirmationCapability and expiresAt; a tool failure can still use HTTP 200. JSON requests are limited to 65,536 bytes.

`POST /api/v1/tools/{tool}/prepare`

**Request body** (`application/json`, required)

- `input` (object, required)

Request body example:

```json
{
  "input": {
    "property1": "string",
    "property2": "string"
  }
}
```

**Responses**

- `200` — Preparation or tool failure.
- `400` — Invalid request. Query parameters are not accepted. Tool validation failures may use a tool error envelope.
- `401` — Missing, invalid or expired bearer credential.
- `403` — The credential lacks required permissions.
- `404` — The machine API or requested tool is unavailable.
- `413` — The request exceeds the byte limit.
- `429` — Rate limit exceeded. The error is retryable.
- `503` — The API or its upstream execution is unavailable.

Response example, 200:

```json
{
  "confirmationCapability": "stringstringstringstringstringst",
  "expiresAt": "2019-08-24T14:15:22Z",
  "inputDigest": "string",
  "status": "confirmation_required",
  "summary": "string",
  "toolName": "adAuditQuote"
}
```
