curl --request POST \
--url https://api.duvo.ai/v2/revisions/{build_id}/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"conversation": [
{
"message": "<string>"
}
],
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"process_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"insight_index": 1,
"previous_build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.duvo.ai/v2/revisions/{build_id}/generate"
payload = {
"prompt": "<string>",
"conversation": [{ "message": "<string>" }],
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"process_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"insight_index": 1,
"previous_build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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({
prompt: '<string>',
conversation: [{message: '<string>'}],
selected_automation_revision_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
run_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
process_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
insight_index: 1,
previous_build_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.duvo.ai/v2/revisions/{build_id}/generate', 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}/generate",
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([
'prompt' => '<string>',
'conversation' => [
[
'message' => '<string>'
]
],
'selected_automation_revision_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'run_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'process_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'insight_index' => 1,
'previous_build_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}/generate"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"conversation\": [\n {\n \"message\": \"<string>\"\n }\n ],\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"run_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"process_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"insight_index\": 1,\n \"previous_build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/revisions/{build_id}/generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"conversation\": [\n {\n \"message\": \"<string>\"\n }\n ],\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"run_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"process_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"insight_index\": 1,\n \"previous_build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/revisions/{build_id}/generate")
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 \"prompt\": \"<string>\",\n \"conversation\": [\n {\n \"message\": \"<string>\"\n }\n ],\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"run_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"process_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"insight_index\": 1,\n \"previous_build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"generation": {
"status": "generating",
"builder_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"build_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>"
}Generate Revision
Generate agent instructions or code into a saved draft. Poll the returned builder run, answer questions if requested, then accept or decline the reviewed checkpoint. This never activates the revision.
curl --request POST \
--url https://api.duvo.ai/v2/revisions/{build_id}/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>",
"conversation": [
{
"message": "<string>"
}
],
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"process_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"insight_index": 1,
"previous_build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.duvo.ai/v2/revisions/{build_id}/generate"
payload = {
"prompt": "<string>",
"conversation": [{ "message": "<string>" }],
"selected_automation_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"process_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"insight_index": 1,
"previous_build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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({
prompt: '<string>',
conversation: [{message: '<string>'}],
selected_automation_revision_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
run_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
process_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
insight_index: 1,
previous_build_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.duvo.ai/v2/revisions/{build_id}/generate', 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}/generate",
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([
'prompt' => '<string>',
'conversation' => [
[
'message' => '<string>'
]
],
'selected_automation_revision_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'run_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'process_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'insight_index' => 1,
'previous_build_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}/generate"
payload := strings.NewReader("{\n \"prompt\": \"<string>\",\n \"conversation\": [\n {\n \"message\": \"<string>\"\n }\n ],\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"run_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"process_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"insight_index\": 1,\n \"previous_build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/revisions/{build_id}/generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"<string>\",\n \"conversation\": [\n {\n \"message\": \"<string>\"\n }\n ],\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"run_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"process_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"insight_index\": 1,\n \"previous_build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/revisions/{build_id}/generate")
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 \"prompt\": \"<string>\",\n \"conversation\": [\n {\n \"message\": \"<string>\"\n }\n ],\n \"selected_automation_revision_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"run_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"process_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"insight_index\": 1,\n \"previous_build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"generation": {
"status": "generating",
"builder_run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"build_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
Source revision to generate or refine.
Body
Instructions for generating or refining this agent or code step.
Optional voice conversation transcript
Show child attributes
Show child attributes
The 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.
Optional run ID for context
Optional process ID for context
Optional insight index for context
x >= 0Previous build ID for sandbox reuse
Response
Default Response
Show child attributes
Show child attributes
Was this page helpful?