Duplicate Agent
curl --request POST \
--url https://api.duvo.ai/v2/agents/{agent_id}/duplicate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"include_connections": true,
"include_queue": true,
"include_skills_files": true,
"include_logins_secrets": true,
"include_plugins": true,
"include_aop": true,
"include_memory": true
}
'import requests
url = "https://api.duvo.ai/v2/agents/{agent_id}/duplicate"
payload = {
"include_connections": True,
"include_queue": True,
"include_skills_files": True,
"include_logins_secrets": True,
"include_plugins": True,
"include_aop": True,
"include_memory": True
}
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({
include_connections: true,
include_queue: true,
include_skills_files: true,
include_logins_secrets: true,
include_plugins: true,
include_aop: true,
include_memory: true
})
};
fetch('https://api.duvo.ai/v2/agents/{agent_id}/duplicate', 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.duvo.ai/v2/agents/{agent_id}/duplicate",
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([
'include_connections' => true,
'include_queue' => true,
'include_skills_files' => true,
'include_logins_secrets' => true,
'include_plugins' => true,
'include_aop' => true,
'include_memory' => true
]),
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.duvo.ai/v2/agents/{agent_id}/duplicate"
payload := strings.NewReader("{\n \"include_connections\": true,\n \"include_queue\": true,\n \"include_skills_files\": true,\n \"include_logins_secrets\": true,\n \"include_plugins\": true,\n \"include_aop\": true,\n \"include_memory\": true\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.duvo.ai/v2/agents/{agent_id}/duplicate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"include_connections\": true,\n \"include_queue\": true,\n \"include_skills_files\": true,\n \"include_logins_secrets\": true,\n \"include_plugins\": true,\n \"include_aop\": true,\n \"include_memory\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/agents/{agent_id}/duplicate")
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 \"include_connections\": true,\n \"include_queue\": true,\n \"include_skills_files\": true,\n \"include_logins_secrets\": true,\n \"include_plugins\": true,\n \"include_aop\": true,\n \"include_memory\": true\n}"
response = http.request(request)
puts response.read_body{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Agents
Duplicate Agent
Duplicate an existing agent into a new agent named "Copy of <name>", carrying over its configuration. Use the include_* flags in the (optional) body to control what is copied; all default on except memory. Requires the Lead Builder team role or above.
POST
/
v2
/
agents
/
{agent_id}
/
duplicate
Duplicate Agent
curl --request POST \
--url https://api.duvo.ai/v2/agents/{agent_id}/duplicate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"include_connections": true,
"include_queue": true,
"include_skills_files": true,
"include_logins_secrets": true,
"include_plugins": true,
"include_aop": true,
"include_memory": true
}
'import requests
url = "https://api.duvo.ai/v2/agents/{agent_id}/duplicate"
payload = {
"include_connections": True,
"include_queue": True,
"include_skills_files": True,
"include_logins_secrets": True,
"include_plugins": True,
"include_aop": True,
"include_memory": True
}
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({
include_connections: true,
include_queue: true,
include_skills_files: true,
include_logins_secrets: true,
include_plugins: true,
include_aop: true,
include_memory: true
})
};
fetch('https://api.duvo.ai/v2/agents/{agent_id}/duplicate', 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.duvo.ai/v2/agents/{agent_id}/duplicate",
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([
'include_connections' => true,
'include_queue' => true,
'include_skills_files' => true,
'include_logins_secrets' => true,
'include_plugins' => true,
'include_aop' => true,
'include_memory' => true
]),
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.duvo.ai/v2/agents/{agent_id}/duplicate"
payload := strings.NewReader("{\n \"include_connections\": true,\n \"include_queue\": true,\n \"include_skills_files\": true,\n \"include_logins_secrets\": true,\n \"include_plugins\": true,\n \"include_aop\": true,\n \"include_memory\": true\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.duvo.ai/v2/agents/{agent_id}/duplicate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"include_connections\": true,\n \"include_queue\": true,\n \"include_skills_files\": true,\n \"include_logins_secrets\": true,\n \"include_plugins\": true,\n \"include_aop\": true,\n \"include_memory\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/agents/{agent_id}/duplicate")
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 \"include_connections\": true,\n \"include_queue\": true,\n \"include_skills_files\": true,\n \"include_logins_secrets\": true,\n \"include_plugins\": true,\n \"include_aop\": true,\n \"include_memory\": true\n}"
response = http.request(request)
puts response.read_body{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
API key authentication. Get your API key from the Duvo dashboard.
Path Parameters
The ID of the agent to duplicate
Body
application/json
Copy connected accounts (Connections) and their selected tools. Defaults to true.
Copy the assigned Queue. Defaults to true.
Copy attached Skills and Files. Defaults to true.
Copy saved Logins and Secrets. Defaults to true.
Copy installed plugins. Defaults to true.
Copy the agent's operating procedure (AOP) and its handover targets. Defaults to true.
Copy what the agent has learned so far (its Memory). Defaults to false. Memory can only be copied from the Duvo app — requesting it here returns an error.
Response
Default Response
The ID of the newly created duplicate agent
Was this page helpful?