curl --request PATCH \
--url https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug} \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"slug": "create_lead",
"description": "When to use, preconditions, what it returns",
"endpoint": "https://api.example.com/leads",
"method": "POST",
"enableBasicAuth": true,
"basicAuthUsername": "username",
"basicAuthPassword": "password",
"headers": "{\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer token\"}",
"bodyTemplate": "{\"name\": \"{{name}}\", \"email\": \"{{email}}\"}",
"allowAdditionalProperties": false,
"parameters": [
{
"key": "email",
"type": "string",
"description": "Email of the lead",
"required": false
}
],
"icon": "http://localhost:3001"
}
'import requests
url = "https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}"
payload = {
"slug": "create_lead",
"description": "When to use, preconditions, what it returns",
"endpoint": "https://api.example.com/leads",
"method": "POST",
"enableBasicAuth": True,
"basicAuthUsername": "username",
"basicAuthPassword": "password",
"headers": "{\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer token\"}",
"bodyTemplate": "{\"name\": \"{{name}}\", \"email\": \"{{email}}\"}",
"allowAdditionalProperties": False,
"parameters": [
{
"key": "email",
"type": "string",
"description": "Email of the lead",
"required": False
}
],
"icon": "http://localhost:3001"
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
slug: 'create_lead',
description: 'When to use, preconditions, what it returns',
endpoint: 'https://api.example.com/leads',
method: 'POST',
enableBasicAuth: true,
basicAuthUsername: 'username',
basicAuthPassword: 'password',
headers: '{"Content-Type": "application/json", "Authorization": "Bearer token"}',
bodyTemplate: '{"name": "{{name}}", "email": "{{email}}"}',
allowAdditionalProperties: false,
parameters: [
{
key: 'email',
type: 'string',
description: 'Email of the lead',
required: false
}
],
icon: 'http://localhost:3001'
})
};
fetch('https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}', 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://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}",
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([
'slug' => 'create_lead',
'description' => 'When to use, preconditions, what it returns',
'endpoint' => 'https://api.example.com/leads',
'method' => 'POST',
'enableBasicAuth' => true,
'basicAuthUsername' => 'username',
'basicAuthPassword' => 'password',
'headers' => '{"Content-Type": "application/json", "Authorization": "Bearer token"}',
'bodyTemplate' => '{"name": "{{name}}", "email": "{{email}}"}',
'allowAdditionalProperties' => false,
'parameters' => [
[
'key' => 'email',
'type' => 'string',
'description' => 'Email of the lead',
'required' => false
]
],
'icon' => 'http://localhost:3001'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$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://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}"
payload := strings.NewReader("{\n \"slug\": \"create_lead\",\n \"description\": \"When to use, preconditions, what it returns\",\n \"endpoint\": \"https://api.example.com/leads\",\n \"method\": \"POST\",\n \"enableBasicAuth\": true,\n \"basicAuthUsername\": \"username\",\n \"basicAuthPassword\": \"password\",\n \"headers\": \"{\\\"Content-Type\\\": \\\"application/json\\\", \\\"Authorization\\\": \\\"Bearer token\\\"}\",\n \"bodyTemplate\": \"{\\\"name\\\": \\\"{{name}}\\\", \\\"email\\\": \\\"{{email}}\\\"}\",\n \"allowAdditionalProperties\": false,\n \"parameters\": [\n {\n \"key\": \"email\",\n \"type\": \"string\",\n \"description\": \"Email of the lead\",\n \"required\": false\n }\n ],\n \"icon\": \"http://localhost:3001\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("apikey", "<api-key>")
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://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"create_lead\",\n \"description\": \"When to use, preconditions, what it returns\",\n \"endpoint\": \"https://api.example.com/leads\",\n \"method\": \"POST\",\n \"enableBasicAuth\": true,\n \"basicAuthUsername\": \"username\",\n \"basicAuthPassword\": \"password\",\n \"headers\": \"{\\\"Content-Type\\\": \\\"application/json\\\", \\\"Authorization\\\": \\\"Bearer token\\\"}\",\n \"bodyTemplate\": \"{\\\"name\\\": \\\"{{name}}\\\", \\\"email\\\": \\\"{{email}}\\\"}\",\n \"allowAdditionalProperties\": false,\n \"parameters\": [\n {\n \"key\": \"email\",\n \"type\": \"string\",\n \"description\": \"Email of the lead\",\n \"required\": false\n }\n ],\n \"icon\": \"http://localhost:3001\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"slug\": \"create_lead\",\n \"description\": \"When to use, preconditions, what it returns\",\n \"endpoint\": \"https://api.example.com/leads\",\n \"method\": \"POST\",\n \"enableBasicAuth\": true,\n \"basicAuthUsername\": \"username\",\n \"basicAuthPassword\": \"password\",\n \"headers\": \"{\\\"Content-Type\\\": \\\"application/json\\\", \\\"Authorization\\\": \\\"Bearer token\\\"}\",\n \"bodyTemplate\": \"{\\\"name\\\": \\\"{{name}}\\\", \\\"email\\\": \\\"{{email}}\\\"}\",\n \"allowAdditionalProperties\": false,\n \"parameters\": [\n {\n \"key\": \"email\",\n \"type\": \"string\",\n \"description\": \"Email of the lead\",\n \"required\": false\n }\n ],\n \"icon\": \"http://localhost:3001\"\n}"
response = http.request(request)
puts response.read_body{
"_id": "myapp_my-api-tool",
"appId": "my-app-id",
"slug": "my-api-tool",
"name": "My API Tool",
"description": "Calls an external API",
"icon": "https://example.com/icon.png",
"endpoint": "https://api.example.com/search",
"method": "GET",
"enableBasicAuth": false,
"headers": "{\"Content-Type\":\"application/json\"}",
"bodyTemplate": "{\"query\":\"{{query}}\"}",
"allowAdditionalProperties": false,
"parameters": [
{
"key": "query",
"type": "string",
"description": "The search query",
"required": true
}
],
"tool": {
"name": "my-api-tool",
"description": "Calls an external API",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
"createdAt": 1700000000000,
"updatedAt": 1700000000000
}Update API Tool
Updates an existing API tool by its slug. Use this endpoint to modify an API tool’s parameters, description, or endpoint configuration.
curl --request PATCH \
--url https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug} \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"slug": "create_lead",
"description": "When to use, preconditions, what it returns",
"endpoint": "https://api.example.com/leads",
"method": "POST",
"enableBasicAuth": true,
"basicAuthUsername": "username",
"basicAuthPassword": "password",
"headers": "{\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer token\"}",
"bodyTemplate": "{\"name\": \"{{name}}\", \"email\": \"{{email}}\"}",
"allowAdditionalProperties": false,
"parameters": [
{
"key": "email",
"type": "string",
"description": "Email of the lead",
"required": false
}
],
"icon": "http://localhost:3001"
}
'import requests
url = "https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}"
payload = {
"slug": "create_lead",
"description": "When to use, preconditions, what it returns",
"endpoint": "https://api.example.com/leads",
"method": "POST",
"enableBasicAuth": True,
"basicAuthUsername": "username",
"basicAuthPassword": "password",
"headers": "{\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer token\"}",
"bodyTemplate": "{\"name\": \"{{name}}\", \"email\": \"{{email}}\"}",
"allowAdditionalProperties": False,
"parameters": [
{
"key": "email",
"type": "string",
"description": "Email of the lead",
"required": False
}
],
"icon": "http://localhost:3001"
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
slug: 'create_lead',
description: 'When to use, preconditions, what it returns',
endpoint: 'https://api.example.com/leads',
method: 'POST',
enableBasicAuth: true,
basicAuthUsername: 'username',
basicAuthPassword: 'password',
headers: '{"Content-Type": "application/json", "Authorization": "Bearer token"}',
bodyTemplate: '{"name": "{{name}}", "email": "{{email}}"}',
allowAdditionalProperties: false,
parameters: [
{
key: 'email',
type: 'string',
description: 'Email of the lead',
required: false
}
],
icon: 'http://localhost:3001'
})
};
fetch('https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}', 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://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}",
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([
'slug' => 'create_lead',
'description' => 'When to use, preconditions, what it returns',
'endpoint' => 'https://api.example.com/leads',
'method' => 'POST',
'enableBasicAuth' => true,
'basicAuthUsername' => 'username',
'basicAuthPassword' => 'password',
'headers' => '{"Content-Type": "application/json", "Authorization": "Bearer token"}',
'bodyTemplate' => '{"name": "{{name}}", "email": "{{email}}"}',
'allowAdditionalProperties' => false,
'parameters' => [
[
'key' => 'email',
'type' => 'string',
'description' => 'Email of the lead',
'required' => false
]
],
'icon' => 'http://localhost:3001'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$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://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}"
payload := strings.NewReader("{\n \"slug\": \"create_lead\",\n \"description\": \"When to use, preconditions, what it returns\",\n \"endpoint\": \"https://api.example.com/leads\",\n \"method\": \"POST\",\n \"enableBasicAuth\": true,\n \"basicAuthUsername\": \"username\",\n \"basicAuthPassword\": \"password\",\n \"headers\": \"{\\\"Content-Type\\\": \\\"application/json\\\", \\\"Authorization\\\": \\\"Bearer token\\\"}\",\n \"bodyTemplate\": \"{\\\"name\\\": \\\"{{name}}\\\", \\\"email\\\": \\\"{{email}}\\\"}\",\n \"allowAdditionalProperties\": false,\n \"parameters\": [\n {\n \"key\": \"email\",\n \"type\": \"string\",\n \"description\": \"Email of the lead\",\n \"required\": false\n }\n ],\n \"icon\": \"http://localhost:3001\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("apikey", "<api-key>")
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://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slug\": \"create_lead\",\n \"description\": \"When to use, preconditions, what it returns\",\n \"endpoint\": \"https://api.example.com/leads\",\n \"method\": \"POST\",\n \"enableBasicAuth\": true,\n \"basicAuthUsername\": \"username\",\n \"basicAuthPassword\": \"password\",\n \"headers\": \"{\\\"Content-Type\\\": \\\"application/json\\\", \\\"Authorization\\\": \\\"Bearer token\\\"}\",\n \"bodyTemplate\": \"{\\\"name\\\": \\\"{{name}}\\\", \\\"email\\\": \\\"{{email}}\\\"}\",\n \"allowAdditionalProperties\": false,\n \"parameters\": [\n {\n \"key\": \"email\",\n \"type\": \"string\",\n \"description\": \"Email of the lead\",\n \"required\": false\n }\n ],\n \"icon\": \"http://localhost:3001\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{appId}.api-{region}.cometchat.io/v3/ai-agents/agent-builder/api-tools/{slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"slug\": \"create_lead\",\n \"description\": \"When to use, preconditions, what it returns\",\n \"endpoint\": \"https://api.example.com/leads\",\n \"method\": \"POST\",\n \"enableBasicAuth\": true,\n \"basicAuthUsername\": \"username\",\n \"basicAuthPassword\": \"password\",\n \"headers\": \"{\\\"Content-Type\\\": \\\"application/json\\\", \\\"Authorization\\\": \\\"Bearer token\\\"}\",\n \"bodyTemplate\": \"{\\\"name\\\": \\\"{{name}}\\\", \\\"email\\\": \\\"{{email}}\\\"}\",\n \"allowAdditionalProperties\": false,\n \"parameters\": [\n {\n \"key\": \"email\",\n \"type\": \"string\",\n \"description\": \"Email of the lead\",\n \"required\": false\n }\n ],\n \"icon\": \"http://localhost:3001\"\n}"
response = http.request(request)
puts response.read_body{
"_id": "myapp_my-api-tool",
"appId": "my-app-id",
"slug": "my-api-tool",
"name": "My API Tool",
"description": "Calls an external API",
"icon": "https://example.com/icon.png",
"endpoint": "https://api.example.com/search",
"method": "GET",
"enableBasicAuth": false,
"headers": "{\"Content-Type\":\"application/json\"}",
"bodyTemplate": "{\"query\":\"{{query}}\"}",
"allowAdditionalProperties": false,
"parameters": [
{
"key": "query",
"type": "string",
"description": "The search query",
"required": true
}
],
"tool": {
"name": "my-api-tool",
"description": "Calls an external API",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
"createdAt": 1700000000000,
"updatedAt": 1700000000000
}Authorizations
API Key (i.e. Rest API Key from the Dashboard).
Path Parameters
Body
Slug for the API tool (unique)
"create_lead"
Description of the API tool
"When to use, preconditions, what it returns"
API endpoint URL
"https://api.example.com/leads"
HTTP method
GET, POST, PUT, PATCH, DELETE "POST"
Whether to enable basic authentication
true
Basic auth username (required if enableBasicAuth is true)
"username"
Basic auth password (required if enableBasicAuth is true)
"password"
HTTP headers as a JSON string (e.g., '{"Content-Type": "application/json", "Authorization": "Bearer token"}')
"{\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer token\"}"
Body template for the API request
"{\"name\": \"{{name}}\", \"email\": \"{{email}}\"}"
Whether to allow additional properties
false
Array of parameters for the API tool
Show child attributes
Show child attributes
Icon for the API Tool
"http://localhost:3001"
Response
API tool updated successfully
"myapp_my-api-tool"
"my-app-id"
"my-api-tool"
"My API Tool"
"Calls an external API"
"https://example.com/icon.png"
"https://api.example.com/search"
"GET"
false
"{\"Content-Type\":\"application/json\"}"
"{\"query\":\"{{query}}\"}"
false
Show child attributes
Show child attributes
Show child attributes
Show child attributes
1700000000000
1700000000000
Was this page helpful?