curl --request PUT \
--url https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {},
"capabilities": {
"additional_instructions": "",
"allowed_commands": [],
"allowed_tools": [],
"blocked_commands": [],
"blocked_tools": [],
"browser": "native",
"environment": "inherit",
"filesystem": "read_write",
"network": "native",
"preset": "client_default",
"schema_version": 1,
"shell": "native",
"skills": true,
"subagents": true
},
"display_name": "<string>"
}
'import requests
url = "https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}"
payload = {
"config": {},
"capabilities": {
"additional_instructions": "",
"allowed_commands": [],
"allowed_tools": [],
"blocked_commands": [],
"blocked_tools": [],
"browser": "native",
"environment": "inherit",
"filesystem": "read_write",
"network": "native",
"preset": "client_default",
"schema_version": 1,
"shell": "native",
"skills": True,
"subagents": True
},
"display_name": "<string>"
}
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({
config: {},
capabilities: {
additional_instructions: '',
allowed_commands: [],
allowed_tools: [],
blocked_commands: [],
blocked_tools: [],
browser: 'native',
environment: 'inherit',
filesystem: 'read_write',
network: 'native',
preset: 'client_default',
schema_version: 1,
shell: 'native',
skills: true,
subagents: true
},
display_name: '<string>'
})
};
fetch('https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{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://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}",
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([
'config' => [
],
'capabilities' => [
'additional_instructions' => '',
'allowed_commands' => [
],
'allowed_tools' => [
],
'blocked_commands' => [
],
'blocked_tools' => [
],
'browser' => 'native',
'environment' => 'inherit',
'filesystem' => 'read_write',
'network' => 'native',
'preset' => 'client_default',
'schema_version' => 1,
'shell' => 'native',
'skills' => true,
'subagents' => true
],
'display_name' => '<string>'
]),
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://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}"
payload := strings.NewReader("{\n \"config\": {},\n \"capabilities\": {\n \"additional_instructions\": \"\",\n \"allowed_commands\": [],\n \"allowed_tools\": [],\n \"blocked_commands\": [],\n \"blocked_tools\": [],\n \"browser\": \"native\",\n \"environment\": \"inherit\",\n \"filesystem\": \"read_write\",\n \"network\": \"native\",\n \"preset\": \"client_default\",\n \"schema_version\": 1,\n \"shell\": \"native\",\n \"skills\": true,\n \"subagents\": true\n },\n \"display_name\": \"<string>\"\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://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {},\n \"capabilities\": {\n \"additional_instructions\": \"\",\n \"allowed_commands\": [],\n \"allowed_tools\": [],\n \"blocked_commands\": [],\n \"blocked_tools\": [],\n \"browser\": \"native\",\n \"environment\": \"inherit\",\n \"filesystem\": \"read_write\",\n \"network\": \"native\",\n \"preset\": \"client_default\",\n \"schema_version\": 1,\n \"shell\": \"native\",\n \"skills\": true,\n \"subagents\": true\n },\n \"display_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}")
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 \"config\": {},\n \"capabilities\": {\n \"additional_instructions\": \"\",\n \"allowed_commands\": [],\n \"allowed_tools\": [],\n \"blocked_commands\": [],\n \"blocked_tools\": [],\n \"browser\": \"native\",\n \"environment\": \"inherit\",\n \"filesystem\": \"read_write\",\n \"network\": \"native\",\n \"preset\": \"client_default\",\n \"schema_version\": 1,\n \"shell\": \"native\",\n \"skills\": true,\n \"subagents\": true\n },\n \"display_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"active": true,
"capabilities": {
"additional_instructions": "",
"allowed_commands": [],
"allowed_tools": [],
"blocked_commands": [],
"blocked_tools": [],
"browser": "native",
"environment": "inherit",
"filesystem": "read_write",
"network": "native",
"preset": "client_default",
"schema_version": 1,
"shell": "native",
"skills": true,
"subagents": true
},
"client": "<string>",
"config": {},
"created_at": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_org_default": true,
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"version": 123
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}Replace a launch profile's models and capabilities
Replaces the profile’s config and, when sent, its capabilities, creating a new version of the profile.
curl --request PUT \
--url https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {},
"capabilities": {
"additional_instructions": "",
"allowed_commands": [],
"allowed_tools": [],
"blocked_commands": [],
"blocked_tools": [],
"browser": "native",
"environment": "inherit",
"filesystem": "read_write",
"network": "native",
"preset": "client_default",
"schema_version": 1,
"shell": "native",
"skills": true,
"subagents": true
},
"display_name": "<string>"
}
'import requests
url = "https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}"
payload = {
"config": {},
"capabilities": {
"additional_instructions": "",
"allowed_commands": [],
"allowed_tools": [],
"blocked_commands": [],
"blocked_tools": [],
"browser": "native",
"environment": "inherit",
"filesystem": "read_write",
"network": "native",
"preset": "client_default",
"schema_version": 1,
"shell": "native",
"skills": True,
"subagents": True
},
"display_name": "<string>"
}
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({
config: {},
capabilities: {
additional_instructions: '',
allowed_commands: [],
allowed_tools: [],
blocked_commands: [],
blocked_tools: [],
browser: 'native',
environment: 'inherit',
filesystem: 'read_write',
network: 'native',
preset: 'client_default',
schema_version: 1,
shell: 'native',
skills: true,
subagents: true
},
display_name: '<string>'
})
};
fetch('https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{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://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}",
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([
'config' => [
],
'capabilities' => [
'additional_instructions' => '',
'allowed_commands' => [
],
'allowed_tools' => [
],
'blocked_commands' => [
],
'blocked_tools' => [
],
'browser' => 'native',
'environment' => 'inherit',
'filesystem' => 'read_write',
'network' => 'native',
'preset' => 'client_default',
'schema_version' => 1,
'shell' => 'native',
'skills' => true,
'subagents' => true
],
'display_name' => '<string>'
]),
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://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}"
payload := strings.NewReader("{\n \"config\": {},\n \"capabilities\": {\n \"additional_instructions\": \"\",\n \"allowed_commands\": [],\n \"allowed_tools\": [],\n \"blocked_commands\": [],\n \"blocked_tools\": [],\n \"browser\": \"native\",\n \"environment\": \"inherit\",\n \"filesystem\": \"read_write\",\n \"network\": \"native\",\n \"preset\": \"client_default\",\n \"schema_version\": 1,\n \"shell\": \"native\",\n \"skills\": true,\n \"subagents\": true\n },\n \"display_name\": \"<string>\"\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://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {},\n \"capabilities\": {\n \"additional_instructions\": \"\",\n \"allowed_commands\": [],\n \"allowed_tools\": [],\n \"blocked_commands\": [],\n \"blocked_tools\": [],\n \"browser\": \"native\",\n \"environment\": \"inherit\",\n \"filesystem\": \"read_write\",\n \"network\": \"native\",\n \"preset\": \"client_default\",\n \"schema_version\": 1,\n \"shell\": \"native\",\n \"skills\": true,\n \"subagents\": true\n },\n \"display_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/llm-gateway/admin/agent-runtime-profiles/{slug}")
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 \"config\": {},\n \"capabilities\": {\n \"additional_instructions\": \"\",\n \"allowed_commands\": [],\n \"allowed_tools\": [],\n \"blocked_commands\": [],\n \"blocked_tools\": [],\n \"browser\": \"native\",\n \"environment\": \"inherit\",\n \"filesystem\": \"read_write\",\n \"network\": \"native\",\n \"preset\": \"client_default\",\n \"schema_version\": 1,\n \"shell\": \"native\",\n \"skills\": true,\n \"subagents\": true\n },\n \"display_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"active": true,
"capabilities": {
"additional_instructions": "",
"allowed_commands": [],
"allowed_tools": [],
"blocked_commands": [],
"blocked_tools": [],
"browser": "native",
"environment": "inherit",
"filesystem": "read_write",
"network": "native",
"preset": "client_default",
"schema_version": 1,
"shell": "native",
"skills": true,
"subagents": true
},
"client": "<string>",
"config": {},
"created_at": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_org_default": true,
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"version": 123
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}{
"error": {
"message": "retry_on_429_count must be between 0 and 10",
"type": "invalid_request_error"
}
}Authorizations
An access token from Barndoor's identity provider, sent as Authorization: Bearer <token>. Use a service-account token from the OAuth 2.0 client-credentials grant for scripts and CI, or a signed-in user's token. The caller needs the admin role in the organization. Gateway API keys (bd-...) are not accepted here.
Path Parameters
Launch profile slug, unique within the organization
Body
Response
The updated profile
A launch profile: the models and capabilities applied when organization members start an agent with barndoor run.
Whether members can launch with this profile.
The capabilities a launch profile gives agent sessions. Omitted fields take the client_default values shown as defaults. Some combinations are not available for every client; the error message names the conflict.
Show child attributes
Show child attributes
The agent client: claude (Claude Code) or codex (Codex CLI).
Model route aliases keyed by client setting. model is required. Claude Code profiles also accept ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL, ANTHROPIC_DEFAULT_FABLE_MODEL, advisorModel, and additionalModel1 through additionalModel16. Codex profiles accept only model. Each value is a single model route alias.
Show child attributes
Show child attributes
Whether this is the organization's default profile for its client. Each client has at most one default.
Identifier used in the URL, unique within the organization.
Version of the current models-and-capabilities contract. Each replacement creates a new version.