<!-- Source: https://docs.vinsi.ai/api-docs/tool-update -->
# Update Tool

Update a tool. name and type are required. type must be one of Function, DTMF, Documents, TransferCall, EndCall, GoHighLevelAPI, VinsiSaasCrmAPI, AfterCallAction, EpicFhirAPI. If configuration is omitted the existing configuration is kept. configuration is returned as a parsed object.

```http
PUT https://dashboard.vinsi.ai/api/tools/{toolId}
```

## Authentication

Send your API key in the `x-api-key` header. Create keys in the VINSI dashboard under Settings → API Keys.

## Headers

| Name | Type | Required |
|---|---|---|
| Content-Type | string | yes (application/json) |
| x-api-key | string | yes |

## Path parameters

| Name | Example |
|---|---|
| toolId | cmexampletool000000000001 |

## Example request body

```json
{
  "name": "example-tool",
  "type": "TransferCall",
  "dtmfOnly": false,
  "description": "example tool description",
  "configuration": {
    "phoneNumber": "+18001234567",
    "transferMessage": "transfer message"
  }
}
```

## Example request

```bash
curl -X PUT 'https://dashboard.vinsi.ai/api/tools/cmexampletool000000000001' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"example-tool","type":"TransferCall","dtmfOnly":false,"description":"example tool description","configuration":{"phoneNumber":"+18001234567","transferMessage":"transfer message"}}'
```

## Example response

```json
{
  "id": "cmexampletool000000000001",
  "name": "example-tool",
  "description": "example tool description",
  "type": "TransferCall",
  "configuration": {
    "phoneNumber": "+18001234567",
    "transferMessage": "transfer message"
  },
  "createdAt": "2026-01-27T16:15:42.751Z",
  "updatedAt": "2026-01-27T16:15:42.751Z",
  "userId": "cmexampleuser0000000000001",
  "dtmfOnly": null
}
```

