# Update tool

> Update a tool.

`PATCH https://api.zavu.dev/v1/senders/{senderId}/agent/tools/{toolId}`

Update a tool.

## Parameters

- `senderId` (path, string, required)
- `toolId` (path, string, required)

## Body

- `name` (string)
- `description` (string)
- `parameters` (object)
  - `type` (string, required) One of: `object`.
  - `properties` (object, required)
    - `{key}` (object)
      - `type` (string)
      - `description` (string)
  - `required` (string[], required)
- `webhookUrl` (string<uri>)
- `webhookSecret` (string, nullable)
- `enabled` (boolean)

## Responses

### 200

Tool updated.

- `tool` (object, required)
  - `id` (string, required)
  - `agentId` (string, required)
  - `name` (string, required)
  - `description` (string, required): Description for the LLM to understand when to use this tool.
  - `parameters` (object, required)
    - `type` (string, required) One of: `object`.
    - `properties` (object, required)
      - `{key}` (object)
        - `type` (string)
        - `description` (string)
    - `required` (string[], required)
  - `webhookUrl` (string<uri>, required): HTTPS URL to call when the tool is executed.
  - `enabled` (boolean, required)
  - `createdAt` (string<date-time>, required)
  - `updatedAt` (string<date-time>, required)
  - `webhookSecret` (string): Signing secret for this tool's webhook. **Returned only when the tool is created**, never on a later read. Zavu generates one if you do not supply it, and signs every call to this tool with it: `X-Zavu-Signature: <hex>`, the HMAC-SHA256 of the request body. Verify it before trusting the call. Lost it? Rotate with `POST /v1/senders/{senderId}/agent/tools/{toolId}/webhook/secret`.

### 400

Invalid request.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 401

Unauthorized.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 404

Tool not found.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

## Example

```bash
curl -X PATCH "https://api.zavu.dev/v1/senders/sender_abc123/agent/tools/tool_abc123" \
  -H "Authorization: Bearer $ZAVUDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string"
}'
```

```typescript
import Zavudev from "@zavudev/sdk";

const zavu = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY });

const result = await zavu.senders.agent.tools.update("tool_abc123", {
  senderId: "sender_abc123",
  name: "string",
});

console.log(result);
```
