Skip to main content
PATCH
Update Tool

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

tool_id
string
required

Body

application/json
name
string | null
Required string length: 1 - 120
description
string | null
Maximum string length: 2000
arguments
AgentWebhookArgumentPayload · object[] | null

Older shape of parameters: each entry becomes a required string parameter. Mutually exclusive with parameters in one request. Reads return both, arguments being the string parameters of the schema.

parameters
Parameters · object | null

Call parameters as a JSON Schema object (draft 2020-12): type: object (filled in when omitted), properties, required. Standard meaning throughout: required means the key must be present, type: ["string", "null"] allows null, minLength: 1 makes a string non-empty, enum and pattern constrain the value, default fills a key the model left out. Mutually exclusive with arguments in one request. A tool created with parameters starts in parameter_mode: strict.

parameter_mode
enum<string> | null

Whether the agent runtime checks each call's arguments against parameters before running the tool. legacy (the default for tools created with arguments, and every tool from before this field existed): no check, the model's arguments run as sent. strict (the default for tools created with parameters): a call that does not satisfy the schema is refused and the model is told to ask the caller for the missing information, and the LLM provider's constrained decoding is turned on where the model supports it (OpenAI models and a custom OpenAI-compatible endpoint receive the tool with strict: true, Gemini on the platform's native channel runs validated function calling). Changing parameters never changes the mode, and the mode can be changed on its own.

Available options:
legacy,
strict
method
enum<string> | null
Available options:
GET,
POST,
PUT,
PATCH,
DELETE
url
string | null
Required string length: 1 - 4000
content_type
string | null
Maximum string length: 128
body_template
string | null

Request body sent for non-GET calls. {{argument}}, {{system.*}} and custom session variable placeholders are filled in at call time; a missing value becomes empty. When the body's content type is JSON (the default application/json, any +json type, or a Content-Type header saying so), a placeholder inside a JSON string, such as {"note": "{{note}}"}, is JSON-escaped, so quotes, backslashes and newlines in the value keep the body valid JSON. A placeholder outside a string, such as {"count": {{count}}}, is inserted as is. Other content types are filled in as is.

Maximum string length: 100000
headers
AgentWebhookHeaderPayload · object[] | null
timeout_seconds
integer | null
Required range: 1 <= x <= 300
error_handling
enum<string> | null
Available options:
passthrough,
hide
mock_responses
AgentWebhookMockResponsePayload · object[] | null
expects_response
boolean | null
execution_mode
enum<string> | null
Available options:
blocking,
fire_and_forget,
background

Response

Request fulfilled, document follows

tool_id
string
required
workspace_id
string
required
name
string
required
tool_type
enum<string>
required
Available options:
webhook,
client
method
enum<string>
required
Available options:
GET,
POST,
PUT,
PATCH,
DELETE
url
string
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
parameters
Parameters · object
required

Call parameters as a JSON Schema object (draft 2020-12): type: object (filled in when omitted), properties, required. Standard meaning throughout: required means the key must be present, type: ["string", "null"] allows null, minLength: 1 makes a string non-empty, enum and pattern constrain the value, default fills a key the model left out. Mutually exclusive with arguments in one request. A tool created with parameters starts in parameter_mode: strict.

content_type
string
required
timeout_seconds
integer
required
error_handling
enum<string>
required
Available options:
passthrough,
hide
description
string
default:""
used_by
integer
default:0

How many agents reference this tool in their draft configuration.

arguments
AgentWebhookArgumentPayload · object[]

Older shape of parameters: each entry becomes a required string parameter. Mutually exclusive with parameters in one request. Reads return both, arguments being the string parameters of the schema.

parameter_mode
enum<string>
default:legacy

Whether the agent runtime checks each call's arguments against parameters before running the tool. legacy (the default for tools created with arguments, and every tool from before this field existed): no check, the model's arguments run as sent. strict (the default for tools created with parameters): a call that does not satisfy the schema is refused and the model is told to ask the caller for the missing information, and the LLM provider's constrained decoding is turned on where the model supports it (OpenAI models and a custom OpenAI-compatible endpoint receive the tool with strict: true, Gemini on the platform's native channel runs validated function calling). Changing parameters never changes the mode, and the mode can be changed on its own.

Available options:
legacy,
strict
body_template
string
default:""
headers
PublicToolHeader · object[]
mock_responses
AgentWebhookMockResponsePayload · object[]
expects_response
boolean
default:true
execution_mode
enum<string>
default:blocking
Available options:
blocking,
fire_and_forget,
background