Update Expert (PUT)
curl --request PUT \
--url https://api.b-bot.space/api/v2/v1/experts/{expert_id} \
--header 'Content-Type: application/json' \
--header 'bbot-api-key: <api-key>' \
--header 'bbot_api_key: <bbot_api_key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"profession": "<string>",
"system_message": "<string>",
"function_description": "<string>",
"function_name": "<string>",
"apps": "<array>",
"profile_picture": 123,
"abilities": "<array>",
"templates": "<array>",
"experts": [
123
],
"expert_llm_models": "<array>",
"task_assistant_id": "<string>"
}
'import requests
url = "https://api.b-bot.space/api/v2/v1/experts/{expert_id}"
payload = {
"name": "<string>",
"description": "<string>",
"profession": "<string>",
"system_message": "<string>",
"function_description": "<string>",
"function_name": "<string>",
"apps": "<array>",
"profile_picture": 123,
"abilities": "<array>",
"templates": "<array>",
"experts": [123],
"expert_llm_models": "<array>",
"task_assistant_id": "<string>"
}
headers = {
"bbot_api_key": "<bbot_api_key>",
"bbot-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
bbot_api_key: '<bbot_api_key>',
'bbot-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
description: '<string>',
profession: '<string>',
system_message: '<string>',
function_description: '<string>',
function_name: '<string>',
apps: '<array>',
profile_picture: 123,
abilities: '<array>',
templates: '<array>',
experts: [123],
expert_llm_models: '<array>',
task_assistant_id: '<string>'
})
};
fetch('https://api.b-bot.space/api/v2/v1/experts/{expert_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.b-bot.space/api/v2/v1/experts/{expert_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' => '<string>',
'description' => '<string>',
'profession' => '<string>',
'system_message' => '<string>',
'function_description' => '<string>',
'function_name' => '<string>',
'apps' => '<array>',
'profile_picture' => 123,
'abilities' => '<array>',
'templates' => '<array>',
'experts' => [
123
],
'expert_llm_models' => '<array>',
'task_assistant_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"bbot-api-key: <api-key>",
"bbot_api_key: <bbot_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://api.b-bot.space/api/v2/v1/experts/{expert_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"profession\": \"<string>\",\n \"system_message\": \"<string>\",\n \"function_description\": \"<string>\",\n \"function_name\": \"<string>\",\n \"apps\": \"<array>\",\n \"profile_picture\": 123,\n \"abilities\": \"<array>\",\n \"templates\": \"<array>\",\n \"experts\": [\n 123\n ],\n \"expert_llm_models\": \"<array>\",\n \"task_assistant_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("bbot_api_key", "<bbot_api_key>")
req.Header.Add("bbot-api-key", "<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.put("https://api.b-bot.space/api/v2/v1/experts/{expert_id}")
.header("bbot_api_key", "<bbot_api_key>")
.header("bbot-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"profession\": \"<string>\",\n \"system_message\": \"<string>\",\n \"function_description\": \"<string>\",\n \"function_name\": \"<string>\",\n \"apps\": \"<array>\",\n \"profile_picture\": 123,\n \"abilities\": \"<array>\",\n \"templates\": \"<array>\",\n \"experts\": [\n 123\n ],\n \"expert_llm_models\": \"<array>\",\n \"task_assistant_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.b-bot.space/api/v2/v1/experts/{expert_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["bbot_api_key"] = '<bbot_api_key>'
request["bbot-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"profession\": \"<string>\",\n \"system_message\": \"<string>\",\n \"function_description\": \"<string>\",\n \"function_name\": \"<string>\",\n \"apps\": \"<array>\",\n \"profile_picture\": 123,\n \"abilities\": \"<array>\",\n \"templates\": \"<array>\",\n \"experts\": [\n 123\n ],\n \"expert_llm_models\": \"<array>\",\n \"task_assistant_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"attributes": {}
}"<string>""<string>""<string>""<string>"Experts (Agencies & Partners Only)
Update Expert (PUT)
Update an existing expert’s configuration using PUT. Only available for Agencies and Middleware Partners.
PUT
/
v1
/
experts
/
{expert_id}
Update Expert (PUT)
curl --request PUT \
--url https://api.b-bot.space/api/v2/v1/experts/{expert_id} \
--header 'Content-Type: application/json' \
--header 'bbot-api-key: <api-key>' \
--header 'bbot_api_key: <bbot_api_key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"profession": "<string>",
"system_message": "<string>",
"function_description": "<string>",
"function_name": "<string>",
"apps": "<array>",
"profile_picture": 123,
"abilities": "<array>",
"templates": "<array>",
"experts": [
123
],
"expert_llm_models": "<array>",
"task_assistant_id": "<string>"
}
'import requests
url = "https://api.b-bot.space/api/v2/v1/experts/{expert_id}"
payload = {
"name": "<string>",
"description": "<string>",
"profession": "<string>",
"system_message": "<string>",
"function_description": "<string>",
"function_name": "<string>",
"apps": "<array>",
"profile_picture": 123,
"abilities": "<array>",
"templates": "<array>",
"experts": [123],
"expert_llm_models": "<array>",
"task_assistant_id": "<string>"
}
headers = {
"bbot_api_key": "<bbot_api_key>",
"bbot-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
bbot_api_key: '<bbot_api_key>',
'bbot-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
description: '<string>',
profession: '<string>',
system_message: '<string>',
function_description: '<string>',
function_name: '<string>',
apps: '<array>',
profile_picture: 123,
abilities: '<array>',
templates: '<array>',
experts: [123],
expert_llm_models: '<array>',
task_assistant_id: '<string>'
})
};
fetch('https://api.b-bot.space/api/v2/v1/experts/{expert_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.b-bot.space/api/v2/v1/experts/{expert_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' => '<string>',
'description' => '<string>',
'profession' => '<string>',
'system_message' => '<string>',
'function_description' => '<string>',
'function_name' => '<string>',
'apps' => '<array>',
'profile_picture' => 123,
'abilities' => '<array>',
'templates' => '<array>',
'experts' => [
123
],
'expert_llm_models' => '<array>',
'task_assistant_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"bbot-api-key: <api-key>",
"bbot_api_key: <bbot_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://api.b-bot.space/api/v2/v1/experts/{expert_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"profession\": \"<string>\",\n \"system_message\": \"<string>\",\n \"function_description\": \"<string>\",\n \"function_name\": \"<string>\",\n \"apps\": \"<array>\",\n \"profile_picture\": 123,\n \"abilities\": \"<array>\",\n \"templates\": \"<array>\",\n \"experts\": [\n 123\n ],\n \"expert_llm_models\": \"<array>\",\n \"task_assistant_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("bbot_api_key", "<bbot_api_key>")
req.Header.Add("bbot-api-key", "<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.put("https://api.b-bot.space/api/v2/v1/experts/{expert_id}")
.header("bbot_api_key", "<bbot_api_key>")
.header("bbot-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"profession\": \"<string>\",\n \"system_message\": \"<string>\",\n \"function_description\": \"<string>\",\n \"function_name\": \"<string>\",\n \"apps\": \"<array>\",\n \"profile_picture\": 123,\n \"abilities\": \"<array>\",\n \"templates\": \"<array>\",\n \"experts\": [\n 123\n ],\n \"expert_llm_models\": \"<array>\",\n \"task_assistant_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.b-bot.space/api/v2/v1/experts/{expert_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["bbot_api_key"] = '<bbot_api_key>'
request["bbot-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"profession\": \"<string>\",\n \"system_message\": \"<string>\",\n \"function_description\": \"<string>\",\n \"function_name\": \"<string>\",\n \"apps\": \"<array>\",\n \"profile_picture\": 123,\n \"abilities\": \"<array>\",\n \"templates\": \"<array>\",\n \"experts\": [\n 123\n ],\n \"expert_llm_models\": \"<array>\",\n \"task_assistant_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"attributes": {}
}"<string>""<string>""<string>""<string>"Permission Required: This endpoint is only available for Agencies and Middleware Partners.
Partial Updates Supported
BothPUT and PATCH methods support partial updates. You only need to include the fields you want to change.
The API automatically validates ownership - you can only update experts you own.Authorizations
API key for authentication
Headers
API Key for authentication
Path Parameters
The unique identifier of the expert to update
Body
application/json
Schema for updating an existing expert (all fields optional)
Update the expert's name
Update the expert's description
Update the expert's profession
Update the system instructions
Update the function description
Update the function name
Update the connected applications
Update the profile picture
Update the abilities array
Update the templates array
Update team member expert IDs
Update LLM model configurations
Link a task assistant ID
⌘I