Voiceflow bearer token
Update tool
curl --request PATCH \
--url https://realtime-api.voiceflow.com/v1/stable/tool/<toolID> \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"description": "<string>",
"captureInputVariables": {},
"type": "api",
"asyncExecution": true,
"inputVariables": {},
"captureResponse": {}
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/tool/<toolID>?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'PATCH',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"description": "<string>",
"captureInputVariables": {},
"type": "api",
"asyncExecution": true,
"inputVariables": {},
"captureResponse": {}
}),
});
const data = await response.json();import requests
response = requests.patch(
'https://realtime-api.voiceflow.com/v1/stable/tool/<toolID>?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"description": "<string>",
"captureInputVariables": {},
"type": "api",
"asyncExecution": True,
"inputVariables": {},
"captureResponse": {}
},
)
data = response.json()vf tool update --tool-id <toolID> --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"message": "<string>"
}Changes an existing tool in place. The response carries only a confirmation message, so refetch the tool to read its new values.
PATCH
/v1/stable/tool/{toolID}
Update tool
curl --request PATCH \
--url https://realtime-api.voiceflow.com/v1/stable/tool/<toolID> \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"description": "<string>",
"captureInputVariables": {},
"type": "api",
"asyncExecution": true,
"inputVariables": {},
"captureResponse": {}
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/tool/<toolID>?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'PATCH',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"description": "<string>",
"captureInputVariables": {},
"type": "api",
"asyncExecution": true,
"inputVariables": {},
"captureResponse": {}
}),
});
const data = await response.json();import requests
response = requests.patch(
'https://realtime-api.voiceflow.com/v1/stable/tool/<toolID>?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"description": "<string>",
"captureInputVariables": {},
"type": "api",
"asyncExecution": True,
"inputVariables": {},
"captureResponse": {}
},
)
data = response.json()vf tool update --tool-id <toolID> --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"message": "<string>"
}Authorizations
Query Parameters
Body
Show child attributes
Option 1
Show child attributes
Option 2
Show child attributes
Option 3
Show child attributes
Option 4
Show child attributes
Response
200 - application/jsonConfirms the attachment's wiring was updated, meaning its description, input mappings, or capture settings rather than the API tool, function, or MCP tool it points at. The body is a message only, so refetch the tool to read its current state.
Was this page helpful?
Thanks for your feedback.