API ReferenceTools
Update a tool
PUT /api/v1/tools/{tool_uuid} — partial update of a tool's metadata or definition.
PUT /api/v1/tools/{tool_uuid}Update fields on an existing tool. All body fields are optional — only those you include are changed.
Replacing `definition` swaps the whole thing
If you send definition, the entire object replaces the old one — there's no partial nested merge for tool configs. To change one HTTP url, send the full definition.config.* you want to keep.
Request body
| Field | Type | Notes |
|---|---|---|
name | string (≤ 255) | Display name. The LLM sees it as a function name: lowercased, with every run of other characters turned into _ ("Book Slot" → book_slot). A name with no English letters or digits, or longer than 64 characters, gets a short unique suffix ("स्टोर खोजें" → tool_41ac1a6b). |
description | string | Tool description shown to the LLM. |
icon | string (≤ 50) | Lucide icon name. |
icon_color | string (≤ 7) | Hex color. |
definition | discriminated object | Full tool definition. Same shape as on create. |
status | enum | active, archived, draft. |
Response
200 OK with the updated tool. Same shape as GET /tools/{tool_uuid}.
Examples
curl -X PUT https://dashboard.zoxa.ai/api/v1/tools/abc12345-6789-0123-4567-89abcdef0123 \
-H "X-API-Key: zsk_..." \
-H "Content-Type: application/json" \
-d '{ "description": "Updated description.", "status": "active" }'await fetch(`https://dashboard.zoxa.ai/api/v1/tools/${toolUuid}`, {
method: "PUT",
headers: { "X-API-Key": "zsk_...", "Content-Type": "application/json" },
body: JSON.stringify({ description: "Updated description.", status: "active" }),
});import httpx
httpx.put(
f"https://dashboard.zoxa.ai/api/v1/tools/{tool_uuid}",
headers={"X-API-Key": "zsk_..."},
json={"description": "Updated description.", "status": "active"},
)Errors
| Status | detail | When |
|---|---|---|
400 | "No organization selected for the user" | Auth missing org. |
400 | "Invalid status '...'. Must be one of: ..." | Unknown status. |
404 | "Tool not found" | UUID not in your org. |
422 | array | Validation failure on definition discriminator/sub-config. |