Update Tool
Update one or more fields on a tool. Only fields present in the body are changed; omitted fields keep their stored value. System tools cannot be updated.
Secrets and the ******** placeholder. Get Tool returns secret fields scrubbed to ********. If you do a read-modify-write and PATCH that exact value back, the request is rejected - re-encrypting the placeholder would silently corrupt the stored secret. To keep the existing secret, omit the field from the auth object on PATCH.
Sending delivery: null resets delivery to the default { app_message: true }.
Authorizations
Path Parameters
The unique identifier of the tool. For system tools this is the tool's name (e.g. end_call).
"tabc123def456"
Body
New function name. Same naming and uniqueness rules as on create.
"get_current_weather"
New description. Max 10000 characters (combined with parameters).
Replace the JSON Schema for the tool's arguments. Reserved tavus_* property names are rejected.
Replace the delivery config. null resets to the default { app_message: true }.
in_call, post_call llm, vision, audio generate_filler, static_filler, silent, passthrough generate_response, response_in_result, add_to_context, fire_and_forget Response
Tool updated
A standalone tool definition. Returned by every tool endpoint and embedded in the data array of the PAL-tool endpoints.
Unique identifier for the tool. System tools use their name as the tool_id (e.g. end_call).
"tabc123def456"
Internal user ID that owns the tool. null for built-in system tools.
3675
Function name the LLM uses to call the tool.
"get_weather"
Natural-language description of the tool.
"Get the current weather for a city"
JSON Schema describing the tool's arguments.
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name"
}
},
"required": ["city"]
}How the tool call is dispatched. Exactly one channel must be enabled:
app_message: truealone - the call is delivered to your frontend over the Daily data channel as aconversation.tool_callevent.apiset withapp_message: false- Tavus makes an HTTPS request toapi.url.
If delivery is omitted on create, the default is { "app_message": true }.
Whether this is a built-in system tool. System tools cannot be modified or deleted.
false
When the tool runs. post_call tools execute server-side after the conversation ends via delivery.api (HTTPS webhook).
in_call, post_call "in_call"
Live modality for in-call tools. Null for post-call tools.
llm, vision, audio "llm"
What the PAL does while the tool call is in flight. Always null for perception tools.
generate_filler, static_filler, silent, passthrough "generate_filler"
What the PAL does after the tool returns.
generate_response, response_in_result, add_to_context, fire_and_forget "generate_response"
Phrase the PAL speaks while the tool call is in flight. Set when on_call is static_filler.
"Sure, let me grab that for you."
ISO 8601 timestamp of when the tool was created.
"2026-05-15T10:30:00"
ISO 8601 timestamp of when the tool was last updated.
"2026-05-15T10:30:00"

