> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnexor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Workflow Tool

<span class="badge--patch">PATCH</span> <code class="endpoint-url">/workflows/:id/tools/:toolId</code>

Edit a custom tool's config. `name` is immutable — the agent's prompt references it, so delete and recreate the tool instead of renaming it.

## Path Parameters

| Parameter | Type          | Required | Description |
| --------- | ------------- | -------- | ----------- |
| `id`      | string (uuid) | **Yes**  | Agent ID    |
| `toolId`  | string (uuid) | **Yes**  | Tool ID     |

## Request Body

Provide at least one field. Same shape as [Create Workflow Tool](/docs/en/api/workflow-tools/create-workflow-tool), minus `name`.

| Field                   | Type              | Required | Description                                |
| ----------------------- | ----------------- | -------- | ------------------------------------------ |
| `description`           | string            | No       |                                            |
| `url`                   | string            | No       |                                            |
| `method`                | string            | No       | `GET`, `POST`, `PUT`, `PATCH`, or `DELETE` |
| `parameters`            | object            | No       |                                            |
| `headers`               | object            | No       |                                            |
| `query_parameters`      | object            | No       |                                            |
| `timeout_ms`            | integer           | No       |                                            |
| `available_in_statuses` | string\[] \| null | No       |                                            |
| `auto_run_on_entry`     | boolean           | No       |                                            |
| `call_once`             | boolean           | No       |                                            |
| `is_active`             | boolean           | No       |                                            |

## Responses

### `200` — Tool updated

```json theme={null}
{
  "success": true,
  "tool": {
    "id": "9a1b2c3d-0000-4000-8000-000000000001",
    "name": "check_availability",
    "description": "Checks open slots, including weekends",
    "method": "GET",
    "url": "https://api.acme.com/availability",
    "is_active": true,
    "available_in_statuses": null,
    "auto_run_on_entry": false,
    "call_once": false,
    "sort_order": 0
  }
}
```

### `400` — Validation error

```json theme={null}
{
  "error": "Invalid input",
  "message": "name is immutable (the agent references it); delete + recreate to rename"
}
```

Also returned as `"invalid method"` or `"Nothing to update"`.

### `401` — Authentication error

See [Authentication](/docs/en/api/authentication).

### `404` — Not found

```json theme={null}
{
  "error": "Not found",
  "message": "Tool not found"
}
```

Also returned if the agent itself doesn't exist (`"Workflow not found"`).

### `500` — Internal server error
