curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"new_agent_id": "<string>"
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename"
payload = { "new_agent_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({new_agent_id: '<string>'})
};
fetch('https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename', 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.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'new_agent_id' => '<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://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename"
payload := strings.NewReader("{\n \"new_agent_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"new_agent_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"new_agent_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"model": "<string>",
"system_prompt": "<string>",
"temperature": 1,
"max_steps": 123,
"allowed_models": [
"<string>"
],
"skill_ids": [
"<string>"
],
"skill_selection": {
"kind": "omitted",
"skill_ids": [
"<string>"
]
},
"all_tools_enabled": true,
"tool_ids": [
"<string>"
],
"provider_tool_ids": [
"<string>"
],
"security_enabled": true,
"source_path": "<string>",
"source": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"thinking": {
"enabled": true,
"budget_tokens": 123
},
"suggestions": [
"<string>"
],
"avatar": {
"seed": "<string>",
"archetype": "upright",
"texture": "<string>",
"color": "<string>",
"shape": "snircle",
"matrix": "<string>"
},
"avatar_url": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}Renames an agent to a new identifier. The rename rejects while the target identifier is occupied, while colocated capability files (such as agents//SKILL.md) would be stranded under the old identifier, or while schedules or channel bindings still reference the agent. When the agent has a generated avatar, the avatar is first copied to the new identity and the renamed agent references the copy. The previous avatar upload and storage object are left in place because preview branches and immutable releases can still reference them; their cleanup is asynchronous, handled by the reference-aware avatar garbage collector once nothing references them anymore. Agent labels follow the renamed identifier.
curl --request POST \
--url https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"new_agent_id": "<string>"
}
'import requests
url = "https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename"
payload = { "new_agent_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({new_agent_id: '<string>'})
};
fetch('https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename', 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.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'new_agent_id' => '<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://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename"
payload := strings.NewReader("{\n \"new_agent_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"new_agent_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.veryfront.com/projects/{project_reference}/agents/{agent_id}/rename")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"new_agent_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"model": "<string>",
"system_prompt": "<string>",
"temperature": 1,
"max_steps": 123,
"allowed_models": [
"<string>"
],
"skill_ids": [
"<string>"
],
"skill_selection": {
"kind": "omitted",
"skill_ids": [
"<string>"
]
},
"all_tools_enabled": true,
"tool_ids": [
"<string>"
],
"provider_tool_ids": [
"<string>"
],
"security_enabled": true,
"source_path": "<string>",
"source": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"thinking": {
"enabled": true,
"budget_tokens": 123
},
"suggestions": [
"<string>"
],
"avatar": {
"seed": "<string>",
"archetype": "upright",
"texture": "<string>",
"color": "<string>",
"shape": "snircle",
"matrix": "<string>"
},
"avatar_url": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"error": "<string>",
"message": "<string>",
"edit_mode": "structured",
"source_only_reasons": [
"<string>"
],
"source_path": "<string>"
}Authorizations
Use a JWT bearer token or a Veryfront API key in the Authorization header.
Path Parameters
Project slug, UUID, or domain that identifies the project.
Current agent identifier
Body
New agent identifier. Must not be occupied by another agent.
1 - 128^[a-zA-Z0-9_-]+$Response
Agent renamed
0 <= x <= 2Show child attributes
Show child attributes
Whether the agent default security guardrails are enabled.
structured, source_only Show child attributes
Show child attributes
1Structured config details associated with this record.
Show child attributes
Show child attributes
Absolute URL for this agent avatar. Null when no custom avatar has been set.