curl --request PATCH \
--url https://api.duvo.ai/v2/revisions/{build_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {},
"handoverTargetIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"revision_name": "<string>",
"revision_description": "<string>",
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.duvo.ai/v2/revisions/{build_id}"
payload = {
"config": {},
"handoverTargetIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"revision_name": "<string>",
"revision_description": "<string>",
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config: {},
handoverTargetIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
revision_name: '<string>',
revision_description: '<string>',
selected_automation_revision_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.duvo.ai/v2/revisions/{build_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.duvo.ai/v2/revisions/{build_id}",
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([
'config' => [
],
'handoverTargetIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'revision_name' => '<string>',
'revision_description' => '<string>',
'selected_automation_revision_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/revisions/{build_id}"
payload := strings.NewReader("{\n \"config\": {},\n \"handoverTargetIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"revision_name\": \"<string>\",\n \"revision_description\": \"<string>\",\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.duvo.ai/v2/revisions/{build_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {},\n \"handoverTargetIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"revision_name\": \"<string>\",\n \"revision_description\": \"<string>\",\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/revisions/{build_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"config\": {},\n \"handoverTargetIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"revision_name\": \"<string>\",\n \"revision_description\": \"<string>\",\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"build": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"copilot_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"config": {
"version": "v1",
"data": {
"model": "<string>",
"tools": "<unknown>",
"input": "<string>",
"files": [],
"skills": [],
"temperature": 1,
"max_output_tokens": 1,
"top_p": 0.5,
"store": true,
"text": {
"format": {
"type": "text"
}
}
}
},
"status": "<string>",
"revision_number": 123,
"parent_build_id": "<string>",
"created_by": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"revision_name": "<string>",
"revision_description": "<string>",
"created_by_name": "<string>",
"schedules": [
{
"id": "<string>",
"build_id": "<string>",
"agent_id": "<string>",
"user_id": "<string>",
"enabled": true,
"frequency": "every_5_minutes",
"time": "<string>",
"timezone": "<string>",
"day": "<string>",
"day_of_month": 123,
"cron": "<string>",
"source": "<string>",
"task": "<string>",
"recurring": true,
"auto_disabled_at": "<string>",
"auto_disabled_reason": "<string>",
"consecutive_missing_connection_failures": 4503599627370495,
"first_missing_connection_failure_at": "<string>",
"last_missing_connection_failure_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"user_name": "<string>",
"user_email": "<string>"
}
]
}
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Update Revision
Update a revision’s configuration, name, description, or handover targets. Returns the updated revision.
curl --request PATCH \
--url https://api.duvo.ai/v2/revisions/{build_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {},
"handoverTargetIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"revision_name": "<string>",
"revision_description": "<string>",
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.duvo.ai/v2/revisions/{build_id}"
payload = {
"config": {},
"handoverTargetIds": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"revision_name": "<string>",
"revision_description": "<string>",
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
config: {},
handoverTargetIds: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
revision_name: '<string>',
revision_description: '<string>',
selected_automation_revision_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.duvo.ai/v2/revisions/{build_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.duvo.ai/v2/revisions/{build_id}",
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([
'config' => [
],
'handoverTargetIds' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'revision_name' => '<string>',
'revision_description' => '<string>',
'selected_automation_revision_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/revisions/{build_id}"
payload := strings.NewReader("{\n \"config\": {},\n \"handoverTargetIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"revision_name\": \"<string>\",\n \"revision_description\": \"<string>\",\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.duvo.ai/v2/revisions/{build_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {},\n \"handoverTargetIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"revision_name\": \"<string>\",\n \"revision_description\": \"<string>\",\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/revisions/{build_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"config\": {},\n \"handoverTargetIds\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"revision_name\": \"<string>\",\n \"revision_description\": \"<string>\",\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"build": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"copilot_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"config": {
"version": "v1",
"data": {
"model": "<string>",
"tools": "<unknown>",
"input": "<string>",
"files": [],
"skills": [],
"temperature": 1,
"max_output_tokens": 1,
"top_p": 0.5,
"store": true,
"text": {
"format": {
"type": "text"
}
}
}
},
"status": "<string>",
"revision_number": 123,
"parent_build_id": "<string>",
"created_by": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"revision_name": "<string>",
"revision_description": "<string>",
"created_by_name": "<string>",
"schedules": [
{
"id": "<string>",
"build_id": "<string>",
"agent_id": "<string>",
"user_id": "<string>",
"enabled": true,
"frequency": "every_5_minutes",
"time": "<string>",
"timezone": "<string>",
"day": "<string>",
"day_of_month": 123,
"cron": "<string>",
"source": "<string>",
"task": "<string>",
"recurring": true,
"auto_disabled_at": "<string>",
"auto_disabled_reason": "<string>",
"consecutive_missing_connection_failures": 4503599627370495,
"first_missing_connection_failure_at": "<string>",
"last_missing_connection_failure_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"user_name": "<string>",
"user_email": "<string>"
}
]
}
}{
"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 build's unique identifier
Body
Build configuration object
Show child attributes
Show child attributes
Agent IDs that this agent can hand over work to
Optional user-defined name for this revision. Pass null to clear.
1 - 80Optional user-defined description for this revision. Pass null to clear.
500The automation revision this edit is being made at. Pass a draft and the edit is folded into that draft itself; pass the active revision and the edit lands on a draft branched from it. A historic revision is rejected — it cannot be activated from without an explicit rebase. A revision belonging to a different automation is ignored, and the edit targets the automation the addressed agent belongs to. Omit to target the automation's active revision.
Response
Default Response
The updated build
Show child attributes
Show child attributes
Was this page helpful?