curl --request PATCH \
--url https://api.conduit.ai/v1/agents/{id}/tools \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool_name": "lookup-order-status",
"source": "custom",
"enabled": true
}
'import requests
url = "https://api.conduit.ai/v1/agents/{id}/tools"
payload = {
"tool_name": "lookup-order-status",
"source": "custom",
"enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({tool_name: 'lookup-order-status', source: 'custom', enabled: true})
};
fetch('https://api.conduit.ai/v1/agents/{id}/tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.conduit.ai/v1/agents/{id}/tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'tool_name' => 'lookup-order-status',
'source' => 'custom',
'enabled' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.conduit.ai/v1/agents/{id}/tools"
payload := strings.NewReader("{\n \"tool_name\": \"lookup-order-status\",\n \"source\": \"custom\",\n \"enabled\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.conduit.ai/v1/agents/{id}/tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool_name\": \"lookup-order-status\",\n \"source\": \"custom\",\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conduit.ai/v1/agents/{id}/tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tool_name\": \"lookup-order-status\",\n \"source\": \"custom\",\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "kg77c0dy0mgdpzmqz6tesry8w184002s",
"name": "lookup-order-status",
"source": "custom",
"description": "Look up the fulfillment status of an order by id.",
"enabled": true,
"domain": null,
"tags": [],
"language": "python"
}
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}Toggle Agent Tool
Enable or disable a single built-in or custom tool for a V2 chat agent. Identify the tool by the (tool_name, source) pair from List Agent Tools. Requires a token with write access.
curl --request PATCH \
--url https://api.conduit.ai/v1/agents/{id}/tools \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool_name": "lookup-order-status",
"source": "custom",
"enabled": true
}
'import requests
url = "https://api.conduit.ai/v1/agents/{id}/tools"
payload = {
"tool_name": "lookup-order-status",
"source": "custom",
"enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({tool_name: 'lookup-order-status', source: 'custom', enabled: true})
};
fetch('https://api.conduit.ai/v1/agents/{id}/tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.conduit.ai/v1/agents/{id}/tools",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'tool_name' => 'lookup-order-status',
'source' => 'custom',
'enabled' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.conduit.ai/v1/agents/{id}/tools"
payload := strings.NewReader("{\n \"tool_name\": \"lookup-order-status\",\n \"source\": \"custom\",\n \"enabled\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.conduit.ai/v1/agents/{id}/tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool_name\": \"lookup-order-status\",\n \"source\": \"custom\",\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conduit.ai/v1/agents/{id}/tools")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tool_name\": \"lookup-order-status\",\n \"source\": \"custom\",\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "kg77c0dy0mgdpzmqz6tesry8w184002s",
"name": "lookup-order-status",
"source": "custom",
"description": "Look up the fulfillment status of an order by id.",
"enabled": true,
"domain": null,
"tags": [],
"language": "python"
}
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}Authorizations
Conduit API token. Use Authorization: Bearer <token>. Read/write endpoints require a token with write access.
Path Parameters
V2 chat agent id.
"ag77c0dy0mgdpzmqz6tesry8w184002s"
Query Parameters
Optional workspace override. If omitted, Conduit resolves the agent's workspace automatically.
"j57demo8f8x7c9v0n2q4r6t8y1u3i5o"
Body
Enable or disable a single tool for a V2 chat agent. The (tool_name, source) pair identifies the tool.
Name of the tool to toggle, as returned by GET /v1/agents/{id}/tools.
1builtin for a platform tool from the tools catalog, custom for a workspace custom code tool.
builtin, custom Set true to enable the tool for this agent, false to disable.
Response
Updated tool access
The tool's resolved access state after the change.
Show child attributes
Show child attributes
Was this page helpful?