Public APITools
Update a tool
Partial update — only included fields are changed. tool_key and
execution_type are immutable (create a new tool instead). To rotate
an auth secret, submit a full auth object with the new value; the
previous secret is overwritten in place.
AuthorizationBearer <token>
API key in the Authorization: Bearer <key> header.
Keys are created in the SMAO dashboard (Settings → API Keys).
In: header
Path Parameters
tool_idstring
Match
^[a-f0-9]{24}$display_name?string
Leading/trailing whitespace is trimmed.
Length
1 <= length <= 200description?string
Length
length <= 1000parameters?
webhook?
auth?||
Auth credentials sent on POST/PATCH. Shape varies by type.
Note: secret and password are write-only; responses use ToolAuthSummary.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://api.smao.ai/api/v1/tools/string" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"id": "string",
"tool_key": "get_opening_hours",
"display_name": "Get Opening Hours",
"description": "Returns the opening hours for the requested weekday.",
"parameters": {},
"execution_type": "webhook",
"source": "custom",
"webhook": {
"url": "http://example.com",
"method": "GET",
"headers": {},
"body_template": "string",
"timeout_ms": 500,
"retry_count": 5
},
"integration": null,
"auth": {
"type": "apiKey",
"header_name": "string",
"username": "string",
"has_secret": true
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}{
"error": {
"code": "validation_failed",
"message": "Validation failed"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing API key"
}
}{
"error": {
"code": "subscription_required",
"message": "This feature is not available in your current subscription. Please upgrade to a higher plan"
}
}{
"error": {
"code": "forbidden",
"message": "No permission"
}
}{
"error": {
"code": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred."
}
}