curl --request PUT \
--url https://api.anam.ai/v1/tools/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "open_scheduler"
}
'import requests
url = "https://api.anam.ai/v1/tools/{id}"
payload = { "name": "open_scheduler" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'open_scheduler'})
};
fetch('https://api.anam.ai/v1/tools/{id}', 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.anam.ai/v1/tools/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'open_scheduler'
]),
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.anam.ai/v1/tools/{id}"
payload := strings.NewReader("{\n \"name\": \"open_scheduler\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.anam.ai/v1/tools/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"open_scheduler\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anam.ai/v1/tools/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"open_scheduler\"\n}"
response = http.request(request)
puts response.read_body{
"id": "00000000-0000-0000-0000-000000000000",
"name": "open_calendar",
"description": "Open the calendar UI in the client app.",
"type": "CLIENT",
"config": {
"parameters": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Date to jump to, in YYYY-MM-DD format."
}
}
}
},
"createdAt": "2026-04-20T10:00:00.000Z",
"updatedAt": null,
"usageCount": 0
}update tool
Update an existing tool
curl --request PUT \
--url https://api.anam.ai/v1/tools/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "open_scheduler"
}
'import requests
url = "https://api.anam.ai/v1/tools/{id}"
payload = { "name": "open_scheduler" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'open_scheduler'})
};
fetch('https://api.anam.ai/v1/tools/{id}', 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.anam.ai/v1/tools/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'open_scheduler'
]),
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.anam.ai/v1/tools/{id}"
payload := strings.NewReader("{\n \"name\": \"open_scheduler\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.anam.ai/v1/tools/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"open_scheduler\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anam.ai/v1/tools/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"open_scheduler\"\n}"
response = http.request(request)
puts response.read_body{
"id": "00000000-0000-0000-0000-000000000000",
"name": "open_calendar",
"description": "Open the calendar UI in the client app.",
"type": "CLIENT",
"config": {
"parameters": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Date to jump to, in YYYY-MM-DD format."
}
}
}
},
"createdAt": "2026-04-20T10:00:00.000Z",
"updatedAt": null,
"usageCount": 0
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Tool ID
Body
Fields to update on the tool. Only the fields you include are changed; omit a field to leave it unchanged. System tools cannot be modified.
Updated name for the tool
1 - 64"search_products"
Updated description of what the tool does
1 - 1024"Search the product catalog"
Updated tool type
CLIENT, SERVER_RAG, SERVER_WEBHOOK, SYSTEM When true, interruptions are disabled while this tool is executing. Defaults to false.
false
Updated type-specific configuration
- ClientToolConfig
- ServerRagToolConfig
- ServerWebhookToolConfig
- SystemToolConfig
Show child attributes
Show child attributes
Response
Successfully updated tool
Unique identifier for the tool
"00000000-0000-0000-0000-000000000000"
Name of the tool
"search_knowledge_base"
Description of what the tool does
"Search the knowledge base for product information"
Type of tool
CLIENT, SERVER_RAG, SERVER_WEBHOOK, SYSTEM Type-specific configuration
When true, interruptions are disabled while this tool is executing
When the tool was created
When the tool was last updated
Number of personas using this tool
Was this page helpful?

