curl --request PATCH \
--url https://api.xpander.ai/v1/workflows/{workflow_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"organization_id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"icon": "<string>",
"avatar": "<string>",
"model_name": "<string>",
"llm_api_base": "<string>",
"llm_credentials_key": "<string>",
"llm_credentials": {
"name": "<string>",
"value": "<string>",
"description": "<string>"
},
"llm_extra_headers": {},
"instructions": {
"role": [],
"goal": [],
"general": ""
},
"expected_output": "<string>",
"output_schema": {},
"orchestration_nodes": [
{
"definition": {
"code": "<string>"
},
"id": "<string>",
"next_node_ids": [
"<string>"
],
"name": "<string>",
"description": "<string>",
"condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
},
"retry_strategy": {
"enabled": false,
"max_retries": 3
},
"iterative_strategy": {
"enabled": false,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"stop_strategy": {
"enabled": false,
"stop_on_failure": true,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"input_type": "text",
"input_schema": {},
"input_instructions": "<string>",
"agentic_context_input_instructions": "<string>",
"agentic_context_output_instructions": "<string>",
"return_this": false
}
],
"task_level_strategies": {
"retry_strategy": {
"enabled": false,
"max_retries": 3
},
"iterative_strategy": {
"enabled": false,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"stop_strategy": {
"enabled": false,
"stop_on_failure": true,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"max_runs_per_day": 123,
"agentic_context_enabled": false,
"duplication_prevention": {
"selectors": [
"<string>"
],
"enabled": false,
"ttl_minutes": 10
},
"slackbot_formatting_instructions": "<string>"
},
"notification_settings": {
"on_success": {},
"on_error": {}
},
"source_nodes": [
{
"id": "<string>",
"targets": [
"<string>"
],
"metadata": {}
}
],
"environment_id": "<string>",
"using_nemo": true,
"on_prem_event_streaming": true,
"use_oidc_pre_auth": true,
"pre_auth_audiences": [
"<string>"
],
"use_oidc_pre_auth_token_for_llm": true,
"oidc_pre_auth_token_llm_audience": "<string>",
"oidc_pre_auth_token_mcp_audience": "<string>"
}
'import requests
url = "https://api.xpander.ai/v1/workflows/{workflow_id}"
payload = {
"organization_id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"icon": "<string>",
"avatar": "<string>",
"model_name": "<string>",
"llm_api_base": "<string>",
"llm_credentials_key": "<string>",
"llm_credentials": {
"name": "<string>",
"value": "<string>",
"description": "<string>"
},
"llm_extra_headers": {},
"instructions": {
"role": [],
"goal": [],
"general": ""
},
"expected_output": "<string>",
"output_schema": {},
"orchestration_nodes": [
{
"definition": { "code": "<string>" },
"id": "<string>",
"next_node_ids": ["<string>"],
"name": "<string>",
"description": "<string>",
"condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
},
"retry_strategy": {
"enabled": False,
"max_retries": 3
},
"iterative_strategy": {
"enabled": False,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"stop_strategy": {
"enabled": False,
"stop_on_failure": True,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"input_type": "text",
"input_schema": {},
"input_instructions": "<string>",
"agentic_context_input_instructions": "<string>",
"agentic_context_output_instructions": "<string>",
"return_this": False
}
],
"task_level_strategies": {
"retry_strategy": {
"enabled": False,
"max_retries": 3
},
"iterative_strategy": {
"enabled": False,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"stop_strategy": {
"enabled": False,
"stop_on_failure": True,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"max_runs_per_day": 123,
"agentic_context_enabled": False,
"duplication_prevention": {
"selectors": ["<string>"],
"enabled": False,
"ttl_minutes": 10
},
"slackbot_formatting_instructions": "<string>"
},
"notification_settings": {
"on_success": {},
"on_error": {}
},
"source_nodes": [
{
"id": "<string>",
"targets": ["<string>"],
"metadata": {}
}
],
"environment_id": "<string>",
"using_nemo": True,
"on_prem_event_streaming": True,
"use_oidc_pre_auth": True,
"pre_auth_audiences": ["<string>"],
"use_oidc_pre_auth_token_for_llm": True,
"oidc_pre_auth_token_llm_audience": "<string>",
"oidc_pre_auth_token_mcp_audience": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
organization_id: '<string>',
agent_id: '<string>',
name: '<string>',
description: '<string>',
icon: '<string>',
avatar: '<string>',
model_name: '<string>',
llm_api_base: '<string>',
llm_credentials_key: '<string>',
llm_credentials: {name: '<string>', value: '<string>', description: '<string>'},
llm_extra_headers: {},
instructions: {role: [], goal: [], general: ''},
expected_output: '<string>',
output_schema: {},
orchestration_nodes: [
{
definition: {code: '<string>'},
id: '<string>',
next_node_ids: ['<string>'],
name: '<string>',
description: '<string>',
condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null},
retry_strategy: {enabled: false, max_retries: 3},
iterative_strategy: {
enabled: false,
max_iterations: 3,
end_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
stop_strategy: {
enabled: false,
stop_on_failure: true,
stop_on_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
input_type: 'text',
input_schema: {},
input_instructions: '<string>',
agentic_context_input_instructions: '<string>',
agentic_context_output_instructions: '<string>',
return_this: false
}
],
task_level_strategies: {
retry_strategy: {enabled: false, max_retries: 3},
iterative_strategy: {
enabled: false,
max_iterations: 3,
end_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
stop_strategy: {
enabled: false,
stop_on_failure: true,
stop_on_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
max_runs_per_day: 123,
agentic_context_enabled: false,
duplication_prevention: {selectors: ['<string>'], enabled: false, ttl_minutes: 10},
slackbot_formatting_instructions: '<string>'
},
notification_settings: {on_success: {}, on_error: {}},
source_nodes: [{id: '<string>', targets: ['<string>'], metadata: {}}],
environment_id: '<string>',
using_nemo: true,
on_prem_event_streaming: true,
use_oidc_pre_auth: true,
pre_auth_audiences: ['<string>'],
use_oidc_pre_auth_token_for_llm: true,
oidc_pre_auth_token_llm_audience: '<string>',
oidc_pre_auth_token_mcp_audience: '<string>'
})
};
fetch('https://api.xpander.ai/v1/workflows/{workflow_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.xpander.ai/v1/workflows/{workflow_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([
'organization_id' => '<string>',
'agent_id' => '<string>',
'name' => '<string>',
'description' => '<string>',
'icon' => '<string>',
'avatar' => '<string>',
'model_name' => '<string>',
'llm_api_base' => '<string>',
'llm_credentials_key' => '<string>',
'llm_credentials' => [
'name' => '<string>',
'value' => '<string>',
'description' => '<string>'
],
'llm_extra_headers' => [
],
'instructions' => [
'role' => [
],
'goal' => [
],
'general' => ''
],
'expected_output' => '<string>',
'output_schema' => [
],
'orchestration_nodes' => [
[
'definition' => [
'code' => '<string>'
],
'id' => '<string>',
'next_node_ids' => [
'<string>'
],
'name' => '<string>',
'description' => '<string>',
'condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
],
'retry_strategy' => [
'enabled' => false,
'max_retries' => 3
],
'iterative_strategy' => [
'enabled' => false,
'max_iterations' => 3,
'end_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'stop_strategy' => [
'enabled' => false,
'stop_on_failure' => true,
'stop_on_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'input_type' => 'text',
'input_schema' => [
],
'input_instructions' => '<string>',
'agentic_context_input_instructions' => '<string>',
'agentic_context_output_instructions' => '<string>',
'return_this' => false
]
],
'task_level_strategies' => [
'retry_strategy' => [
'enabled' => false,
'max_retries' => 3
],
'iterative_strategy' => [
'enabled' => false,
'max_iterations' => 3,
'end_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'stop_strategy' => [
'enabled' => false,
'stop_on_failure' => true,
'stop_on_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'max_runs_per_day' => 123,
'agentic_context_enabled' => false,
'duplication_prevention' => [
'selectors' => [
'<string>'
],
'enabled' => false,
'ttl_minutes' => 10
],
'slackbot_formatting_instructions' => '<string>'
],
'notification_settings' => [
'on_success' => [
],
'on_error' => [
]
],
'source_nodes' => [
[
'id' => '<string>',
'targets' => [
'<string>'
],
'metadata' => [
]
]
],
'environment_id' => '<string>',
'using_nemo' => true,
'on_prem_event_streaming' => true,
'use_oidc_pre_auth' => true,
'pre_auth_audiences' => [
'<string>'
],
'use_oidc_pre_auth_token_for_llm' => true,
'oidc_pre_auth_token_llm_audience' => '<string>',
'oidc_pre_auth_token_mcp_audience' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.xpander.ai/v1/workflows/{workflow_id}"
payload := strings.NewReader("{\n \"organization_id\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"icon\": \"<string>\",\n \"avatar\": \"<string>\",\n \"model_name\": \"<string>\",\n \"llm_api_base\": \"<string>\",\n \"llm_credentials_key\": \"<string>\",\n \"llm_credentials\": {\n \"name\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"llm_extra_headers\": {},\n \"instructions\": {\n \"role\": [],\n \"goal\": [],\n \"general\": \"\"\n },\n \"expected_output\": \"<string>\",\n \"output_schema\": {},\n \"orchestration_nodes\": [\n {\n \"definition\": {\n \"code\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"next_node_ids\": [\n \"<string>\"\n ],\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n },\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"input_type\": \"text\",\n \"input_schema\": {},\n \"input_instructions\": \"<string>\",\n \"agentic_context_input_instructions\": \"<string>\",\n \"agentic_context_output_instructions\": \"<string>\",\n \"return_this\": false\n }\n ],\n \"task_level_strategies\": {\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"max_runs_per_day\": 123,\n \"agentic_context_enabled\": false,\n \"duplication_prevention\": {\n \"selectors\": [\n \"<string>\"\n ],\n \"enabled\": false,\n \"ttl_minutes\": 10\n },\n \"slackbot_formatting_instructions\": \"<string>\"\n },\n \"notification_settings\": {\n \"on_success\": {},\n \"on_error\": {}\n },\n \"source_nodes\": [\n {\n \"id\": \"<string>\",\n \"targets\": [\n \"<string>\"\n ],\n \"metadata\": {}\n }\n ],\n \"environment_id\": \"<string>\",\n \"using_nemo\": true,\n \"on_prem_event_streaming\": true,\n \"use_oidc_pre_auth\": true,\n \"pre_auth_audiences\": [\n \"<string>\"\n ],\n \"use_oidc_pre_auth_token_for_llm\": true,\n \"oidc_pre_auth_token_llm_audience\": \"<string>\",\n \"oidc_pre_auth_token_mcp_audience\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.xpander.ai/v1/workflows/{workflow_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"organization_id\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"icon\": \"<string>\",\n \"avatar\": \"<string>\",\n \"model_name\": \"<string>\",\n \"llm_api_base\": \"<string>\",\n \"llm_credentials_key\": \"<string>\",\n \"llm_credentials\": {\n \"name\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"llm_extra_headers\": {},\n \"instructions\": {\n \"role\": [],\n \"goal\": [],\n \"general\": \"\"\n },\n \"expected_output\": \"<string>\",\n \"output_schema\": {},\n \"orchestration_nodes\": [\n {\n \"definition\": {\n \"code\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"next_node_ids\": [\n \"<string>\"\n ],\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n },\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"input_type\": \"text\",\n \"input_schema\": {},\n \"input_instructions\": \"<string>\",\n \"agentic_context_input_instructions\": \"<string>\",\n \"agentic_context_output_instructions\": \"<string>\",\n \"return_this\": false\n }\n ],\n \"task_level_strategies\": {\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"max_runs_per_day\": 123,\n \"agentic_context_enabled\": false,\n \"duplication_prevention\": {\n \"selectors\": [\n \"<string>\"\n ],\n \"enabled\": false,\n \"ttl_minutes\": 10\n },\n \"slackbot_formatting_instructions\": \"<string>\"\n },\n \"notification_settings\": {\n \"on_success\": {},\n \"on_error\": {}\n },\n \"source_nodes\": [\n {\n \"id\": \"<string>\",\n \"targets\": [\n \"<string>\"\n ],\n \"metadata\": {}\n }\n ],\n \"environment_id\": \"<string>\",\n \"using_nemo\": true,\n \"on_prem_event_streaming\": true,\n \"use_oidc_pre_auth\": true,\n \"pre_auth_audiences\": [\n \"<string>\"\n ],\n \"use_oidc_pre_auth_token_for_llm\": true,\n \"oidc_pre_auth_token_llm_audience\": \"<string>\",\n \"oidc_pre_auth_token_mcp_audience\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.xpander.ai/v1/workflows/{workflow_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"organization_id\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"icon\": \"<string>\",\n \"avatar\": \"<string>\",\n \"model_name\": \"<string>\",\n \"llm_api_base\": \"<string>\",\n \"llm_credentials_key\": \"<string>\",\n \"llm_credentials\": {\n \"name\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"llm_extra_headers\": {},\n \"instructions\": {\n \"role\": [],\n \"goal\": [],\n \"general\": \"\"\n },\n \"expected_output\": \"<string>\",\n \"output_schema\": {},\n \"orchestration_nodes\": [\n {\n \"definition\": {\n \"code\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"next_node_ids\": [\n \"<string>\"\n ],\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n },\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"input_type\": \"text\",\n \"input_schema\": {},\n \"input_instructions\": \"<string>\",\n \"agentic_context_input_instructions\": \"<string>\",\n \"agentic_context_output_instructions\": \"<string>\",\n \"return_this\": false\n }\n ],\n \"task_level_strategies\": {\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"max_runs_per_day\": 123,\n \"agentic_context_enabled\": false,\n \"duplication_prevention\": {\n \"selectors\": [\n \"<string>\"\n ],\n \"enabled\": false,\n \"ttl_minutes\": 10\n },\n \"slackbot_formatting_instructions\": \"<string>\"\n },\n \"notification_settings\": {\n \"on_success\": {},\n \"on_error\": {}\n },\n \"source_nodes\": [\n {\n \"id\": \"<string>\",\n \"targets\": [\n \"<string>\"\n ],\n \"metadata\": {}\n }\n ],\n \"environment_id\": \"<string>\",\n \"using_nemo\": true,\n \"on_prem_event_streaming\": true,\n \"use_oidc_pre_auth\": true,\n \"pre_auth_audiences\": [\n \"<string>\"\n ],\n \"use_oidc_pre_auth_token_for_llm\": true,\n \"oidc_pre_auth_token_llm_audience\": \"<string>\",\n \"oidc_pre_auth_token_mcp_audience\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"organization_id": "<string>",
"webhook_url": "<string>",
"id": "<string>",
"unique_name": "<string>",
"origin_template": "<string>",
"environment_id": "<string>",
"deployment_type": "serverless",
"prompts": [],
"is_latest": false,
"has_pending_changes": false,
"deep_planning": true,
"enforce_deep_planning": true,
"use_agent_gateway": false,
"connectivity_details": {},
"framework": "agno",
"description": "",
"tools": [],
"icon": "🚀",
"avatar": "male-avatar",
"source_nodes": [],
"attached_tools": [],
"access_scope": "personal",
"instructions": {
"role": [],
"goal": [],
"general": ""
},
"oas": {},
"graph": [],
"is_omni": false,
"skills": [],
"status": "ACTIVE",
"knowledge_bases": [],
"version": 1,
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"using_nemo": false,
"deletable": true,
"model_provider": "anthropic",
"model_name": "claude-sonnet-4-6",
"llm_reasoning_effort": "medium",
"llm_api_base": "<string>",
"output_format": "markdown",
"voice_id": "<string>",
"output_schema": {},
"llm_credentials_key": "<string>",
"llm_credentials_key_type": "xpander",
"llm_credentials": {
"name": "<string>",
"value": "<string>",
"description": "<string>"
},
"llm_extra_headers": {},
"expected_output": "",
"agno_settings": {
"session_storage": true,
"learning": false,
"agent_memories": false,
"agentic_culture": false,
"user_memories": false,
"agentic_memory": false,
"session_summaries": false,
"num_history_runs": 50,
"max_tool_calls_from_history": 0,
"tool_call_limit": 0,
"coordinate_mode": true,
"pii_detection_enabled": false,
"pii_detection_mask": true,
"prompt_injection_detection_enabled": false,
"openai_moderation_enabled": false,
"reasoning_tools_enabled": true,
"max_plan_retries": 15
},
"on_prem_event_streaming": true,
"is_supervised": false,
"orchestration_nodes": [],
"notification_settings": {},
"task_level_strategies": {
"retry_strategy": {
"enabled": false,
"max_retries": 3
},
"iterative_strategy": {
"enabled": false,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"stop_strategy": {
"enabled": false,
"stop_on_failure": true,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"max_runs_per_day": 123,
"agentic_context_enabled": false,
"duplication_prevention": {
"selectors": [
"<string>"
],
"enabled": false,
"ttl_minutes": 10
},
"slackbot_formatting_instructions": "<string>"
},
"use_oidc_pre_auth": false,
"pre_auth_audiences": [],
"use_oidc_pre_auth_token_for_llm": false,
"oidc_pre_auth_token_llm_audience": "<string>",
"oidc_pre_auth_token_mcp_audience": "<string>",
"can_self_schedule": false,
"max_self_schedules": 3,
"use_dynamic_tools": false,
"workspace_tools_enabled": true
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update Workflow
Update an existing workflow’s configuration, nodes, or settings
curl --request PATCH \
--url https://api.xpander.ai/v1/workflows/{workflow_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"organization_id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"icon": "<string>",
"avatar": "<string>",
"model_name": "<string>",
"llm_api_base": "<string>",
"llm_credentials_key": "<string>",
"llm_credentials": {
"name": "<string>",
"value": "<string>",
"description": "<string>"
},
"llm_extra_headers": {},
"instructions": {
"role": [],
"goal": [],
"general": ""
},
"expected_output": "<string>",
"output_schema": {},
"orchestration_nodes": [
{
"definition": {
"code": "<string>"
},
"id": "<string>",
"next_node_ids": [
"<string>"
],
"name": "<string>",
"description": "<string>",
"condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
},
"retry_strategy": {
"enabled": false,
"max_retries": 3
},
"iterative_strategy": {
"enabled": false,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"stop_strategy": {
"enabled": false,
"stop_on_failure": true,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"input_type": "text",
"input_schema": {},
"input_instructions": "<string>",
"agentic_context_input_instructions": "<string>",
"agentic_context_output_instructions": "<string>",
"return_this": false
}
],
"task_level_strategies": {
"retry_strategy": {
"enabled": false,
"max_retries": 3
},
"iterative_strategy": {
"enabled": false,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"stop_strategy": {
"enabled": false,
"stop_on_failure": true,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"max_runs_per_day": 123,
"agentic_context_enabled": false,
"duplication_prevention": {
"selectors": [
"<string>"
],
"enabled": false,
"ttl_minutes": 10
},
"slackbot_formatting_instructions": "<string>"
},
"notification_settings": {
"on_success": {},
"on_error": {}
},
"source_nodes": [
{
"id": "<string>",
"targets": [
"<string>"
],
"metadata": {}
}
],
"environment_id": "<string>",
"using_nemo": true,
"on_prem_event_streaming": true,
"use_oidc_pre_auth": true,
"pre_auth_audiences": [
"<string>"
],
"use_oidc_pre_auth_token_for_llm": true,
"oidc_pre_auth_token_llm_audience": "<string>",
"oidc_pre_auth_token_mcp_audience": "<string>"
}
'import requests
url = "https://api.xpander.ai/v1/workflows/{workflow_id}"
payload = {
"organization_id": "<string>",
"agent_id": "<string>",
"name": "<string>",
"description": "<string>",
"icon": "<string>",
"avatar": "<string>",
"model_name": "<string>",
"llm_api_base": "<string>",
"llm_credentials_key": "<string>",
"llm_credentials": {
"name": "<string>",
"value": "<string>",
"description": "<string>"
},
"llm_extra_headers": {},
"instructions": {
"role": [],
"goal": [],
"general": ""
},
"expected_output": "<string>",
"output_schema": {},
"orchestration_nodes": [
{
"definition": { "code": "<string>" },
"id": "<string>",
"next_node_ids": ["<string>"],
"name": "<string>",
"description": "<string>",
"condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
},
"retry_strategy": {
"enabled": False,
"max_retries": 3
},
"iterative_strategy": {
"enabled": False,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"stop_strategy": {
"enabled": False,
"stop_on_failure": True,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"input_type": "text",
"input_schema": {},
"input_instructions": "<string>",
"agentic_context_input_instructions": "<string>",
"agentic_context_output_instructions": "<string>",
"return_this": False
}
],
"task_level_strategies": {
"retry_strategy": {
"enabled": False,
"max_retries": 3
},
"iterative_strategy": {
"enabled": False,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"stop_strategy": {
"enabled": False,
"stop_on_failure": True,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": None
}
},
"max_runs_per_day": 123,
"agentic_context_enabled": False,
"duplication_prevention": {
"selectors": ["<string>"],
"enabled": False,
"ttl_minutes": 10
},
"slackbot_formatting_instructions": "<string>"
},
"notification_settings": {
"on_success": {},
"on_error": {}
},
"source_nodes": [
{
"id": "<string>",
"targets": ["<string>"],
"metadata": {}
}
],
"environment_id": "<string>",
"using_nemo": True,
"on_prem_event_streaming": True,
"use_oidc_pre_auth": True,
"pre_auth_audiences": ["<string>"],
"use_oidc_pre_auth_token_for_llm": True,
"oidc_pre_auth_token_llm_audience": "<string>",
"oidc_pre_auth_token_mcp_audience": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
organization_id: '<string>',
agent_id: '<string>',
name: '<string>',
description: '<string>',
icon: '<string>',
avatar: '<string>',
model_name: '<string>',
llm_api_base: '<string>',
llm_credentials_key: '<string>',
llm_credentials: {name: '<string>', value: '<string>', description: '<string>'},
llm_extra_headers: {},
instructions: {role: [], goal: [], general: ''},
expected_output: '<string>',
output_schema: {},
orchestration_nodes: [
{
definition: {code: '<string>'},
id: '<string>',
next_node_ids: ['<string>'],
name: '<string>',
description: '<string>',
condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null},
retry_strategy: {enabled: false, max_retries: 3},
iterative_strategy: {
enabled: false,
max_iterations: 3,
end_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
stop_strategy: {
enabled: false,
stop_on_failure: true,
stop_on_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
input_type: 'text',
input_schema: {},
input_instructions: '<string>',
agentic_context_input_instructions: '<string>',
agentic_context_output_instructions: '<string>',
return_this: false
}
],
task_level_strategies: {
retry_strategy: {enabled: false, max_retries: 3},
iterative_strategy: {
enabled: false,
max_iterations: 3,
end_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
stop_strategy: {
enabled: false,
stop_on_failure: true,
stop_on_condition: {term: '<string>', group_id: '<string>', path: '<string>', value: null}
},
max_runs_per_day: 123,
agentic_context_enabled: false,
duplication_prevention: {selectors: ['<string>'], enabled: false, ttl_minutes: 10},
slackbot_formatting_instructions: '<string>'
},
notification_settings: {on_success: {}, on_error: {}},
source_nodes: [{id: '<string>', targets: ['<string>'], metadata: {}}],
environment_id: '<string>',
using_nemo: true,
on_prem_event_streaming: true,
use_oidc_pre_auth: true,
pre_auth_audiences: ['<string>'],
use_oidc_pre_auth_token_for_llm: true,
oidc_pre_auth_token_llm_audience: '<string>',
oidc_pre_auth_token_mcp_audience: '<string>'
})
};
fetch('https://api.xpander.ai/v1/workflows/{workflow_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.xpander.ai/v1/workflows/{workflow_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([
'organization_id' => '<string>',
'agent_id' => '<string>',
'name' => '<string>',
'description' => '<string>',
'icon' => '<string>',
'avatar' => '<string>',
'model_name' => '<string>',
'llm_api_base' => '<string>',
'llm_credentials_key' => '<string>',
'llm_credentials' => [
'name' => '<string>',
'value' => '<string>',
'description' => '<string>'
],
'llm_extra_headers' => [
],
'instructions' => [
'role' => [
],
'goal' => [
],
'general' => ''
],
'expected_output' => '<string>',
'output_schema' => [
],
'orchestration_nodes' => [
[
'definition' => [
'code' => '<string>'
],
'id' => '<string>',
'next_node_ids' => [
'<string>'
],
'name' => '<string>',
'description' => '<string>',
'condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
],
'retry_strategy' => [
'enabled' => false,
'max_retries' => 3
],
'iterative_strategy' => [
'enabled' => false,
'max_iterations' => 3,
'end_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'stop_strategy' => [
'enabled' => false,
'stop_on_failure' => true,
'stop_on_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'input_type' => 'text',
'input_schema' => [
],
'input_instructions' => '<string>',
'agentic_context_input_instructions' => '<string>',
'agentic_context_output_instructions' => '<string>',
'return_this' => false
]
],
'task_level_strategies' => [
'retry_strategy' => [
'enabled' => false,
'max_retries' => 3
],
'iterative_strategy' => [
'enabled' => false,
'max_iterations' => 3,
'end_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'stop_strategy' => [
'enabled' => false,
'stop_on_failure' => true,
'stop_on_condition' => [
'term' => '<string>',
'group_id' => '<string>',
'path' => '<string>',
'value' => null
]
],
'max_runs_per_day' => 123,
'agentic_context_enabled' => false,
'duplication_prevention' => [
'selectors' => [
'<string>'
],
'enabled' => false,
'ttl_minutes' => 10
],
'slackbot_formatting_instructions' => '<string>'
],
'notification_settings' => [
'on_success' => [
],
'on_error' => [
]
],
'source_nodes' => [
[
'id' => '<string>',
'targets' => [
'<string>'
],
'metadata' => [
]
]
],
'environment_id' => '<string>',
'using_nemo' => true,
'on_prem_event_streaming' => true,
'use_oidc_pre_auth' => true,
'pre_auth_audiences' => [
'<string>'
],
'use_oidc_pre_auth_token_for_llm' => true,
'oidc_pre_auth_token_llm_audience' => '<string>',
'oidc_pre_auth_token_mcp_audience' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.xpander.ai/v1/workflows/{workflow_id}"
payload := strings.NewReader("{\n \"organization_id\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"icon\": \"<string>\",\n \"avatar\": \"<string>\",\n \"model_name\": \"<string>\",\n \"llm_api_base\": \"<string>\",\n \"llm_credentials_key\": \"<string>\",\n \"llm_credentials\": {\n \"name\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"llm_extra_headers\": {},\n \"instructions\": {\n \"role\": [],\n \"goal\": [],\n \"general\": \"\"\n },\n \"expected_output\": \"<string>\",\n \"output_schema\": {},\n \"orchestration_nodes\": [\n {\n \"definition\": {\n \"code\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"next_node_ids\": [\n \"<string>\"\n ],\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n },\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"input_type\": \"text\",\n \"input_schema\": {},\n \"input_instructions\": \"<string>\",\n \"agentic_context_input_instructions\": \"<string>\",\n \"agentic_context_output_instructions\": \"<string>\",\n \"return_this\": false\n }\n ],\n \"task_level_strategies\": {\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"max_runs_per_day\": 123,\n \"agentic_context_enabled\": false,\n \"duplication_prevention\": {\n \"selectors\": [\n \"<string>\"\n ],\n \"enabled\": false,\n \"ttl_minutes\": 10\n },\n \"slackbot_formatting_instructions\": \"<string>\"\n },\n \"notification_settings\": {\n \"on_success\": {},\n \"on_error\": {}\n },\n \"source_nodes\": [\n {\n \"id\": \"<string>\",\n \"targets\": [\n \"<string>\"\n ],\n \"metadata\": {}\n }\n ],\n \"environment_id\": \"<string>\",\n \"using_nemo\": true,\n \"on_prem_event_streaming\": true,\n \"use_oidc_pre_auth\": true,\n \"pre_auth_audiences\": [\n \"<string>\"\n ],\n \"use_oidc_pre_auth_token_for_llm\": true,\n \"oidc_pre_auth_token_llm_audience\": \"<string>\",\n \"oidc_pre_auth_token_mcp_audience\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.xpander.ai/v1/workflows/{workflow_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"organization_id\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"icon\": \"<string>\",\n \"avatar\": \"<string>\",\n \"model_name\": \"<string>\",\n \"llm_api_base\": \"<string>\",\n \"llm_credentials_key\": \"<string>\",\n \"llm_credentials\": {\n \"name\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"llm_extra_headers\": {},\n \"instructions\": {\n \"role\": [],\n \"goal\": [],\n \"general\": \"\"\n },\n \"expected_output\": \"<string>\",\n \"output_schema\": {},\n \"orchestration_nodes\": [\n {\n \"definition\": {\n \"code\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"next_node_ids\": [\n \"<string>\"\n ],\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n },\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"input_type\": \"text\",\n \"input_schema\": {},\n \"input_instructions\": \"<string>\",\n \"agentic_context_input_instructions\": \"<string>\",\n \"agentic_context_output_instructions\": \"<string>\",\n \"return_this\": false\n }\n ],\n \"task_level_strategies\": {\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"max_runs_per_day\": 123,\n \"agentic_context_enabled\": false,\n \"duplication_prevention\": {\n \"selectors\": [\n \"<string>\"\n ],\n \"enabled\": false,\n \"ttl_minutes\": 10\n },\n \"slackbot_formatting_instructions\": \"<string>\"\n },\n \"notification_settings\": {\n \"on_success\": {},\n \"on_error\": {}\n },\n \"source_nodes\": [\n {\n \"id\": \"<string>\",\n \"targets\": [\n \"<string>\"\n ],\n \"metadata\": {}\n }\n ],\n \"environment_id\": \"<string>\",\n \"using_nemo\": true,\n \"on_prem_event_streaming\": true,\n \"use_oidc_pre_auth\": true,\n \"pre_auth_audiences\": [\n \"<string>\"\n ],\n \"use_oidc_pre_auth_token_for_llm\": true,\n \"oidc_pre_auth_token_llm_audience\": \"<string>\",\n \"oidc_pre_auth_token_mcp_audience\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.xpander.ai/v1/workflows/{workflow_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"organization_id\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"icon\": \"<string>\",\n \"avatar\": \"<string>\",\n \"model_name\": \"<string>\",\n \"llm_api_base\": \"<string>\",\n \"llm_credentials_key\": \"<string>\",\n \"llm_credentials\": {\n \"name\": \"<string>\",\n \"value\": \"<string>\",\n \"description\": \"<string>\"\n },\n \"llm_extra_headers\": {},\n \"instructions\": {\n \"role\": [],\n \"goal\": [],\n \"general\": \"\"\n },\n \"expected_output\": \"<string>\",\n \"output_schema\": {},\n \"orchestration_nodes\": [\n {\n \"definition\": {\n \"code\": \"<string>\"\n },\n \"id\": \"<string>\",\n \"next_node_ids\": [\n \"<string>\"\n ],\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n },\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"input_type\": \"text\",\n \"input_schema\": {},\n \"input_instructions\": \"<string>\",\n \"agentic_context_input_instructions\": \"<string>\",\n \"agentic_context_output_instructions\": \"<string>\",\n \"return_this\": false\n }\n ],\n \"task_level_strategies\": {\n \"retry_strategy\": {\n \"enabled\": false,\n \"max_retries\": 3\n },\n \"iterative_strategy\": {\n \"enabled\": false,\n \"max_iterations\": 3,\n \"end_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"stop_strategy\": {\n \"enabled\": false,\n \"stop_on_failure\": true,\n \"stop_on_condition\": {\n \"term\": \"<string>\",\n \"group_id\": \"<string>\",\n \"path\": \"<string>\",\n \"value\": null\n }\n },\n \"max_runs_per_day\": 123,\n \"agentic_context_enabled\": false,\n \"duplication_prevention\": {\n \"selectors\": [\n \"<string>\"\n ],\n \"enabled\": false,\n \"ttl_minutes\": 10\n },\n \"slackbot_formatting_instructions\": \"<string>\"\n },\n \"notification_settings\": {\n \"on_success\": {},\n \"on_error\": {}\n },\n \"source_nodes\": [\n {\n \"id\": \"<string>\",\n \"targets\": [\n \"<string>\"\n ],\n \"metadata\": {}\n }\n ],\n \"environment_id\": \"<string>\",\n \"using_nemo\": true,\n \"on_prem_event_streaming\": true,\n \"use_oidc_pre_auth\": true,\n \"pre_auth_audiences\": [\n \"<string>\"\n ],\n \"use_oidc_pre_auth_token_for_llm\": true,\n \"oidc_pre_auth_token_llm_audience\": \"<string>\",\n \"oidc_pre_auth_token_mcp_audience\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"organization_id": "<string>",
"webhook_url": "<string>",
"id": "<string>",
"unique_name": "<string>",
"origin_template": "<string>",
"environment_id": "<string>",
"deployment_type": "serverless",
"prompts": [],
"is_latest": false,
"has_pending_changes": false,
"deep_planning": true,
"enforce_deep_planning": true,
"use_agent_gateway": false,
"connectivity_details": {},
"framework": "agno",
"description": "",
"tools": [],
"icon": "🚀",
"avatar": "male-avatar",
"source_nodes": [],
"attached_tools": [],
"access_scope": "personal",
"instructions": {
"role": [],
"goal": [],
"general": ""
},
"oas": {},
"graph": [],
"is_omni": false,
"skills": [],
"status": "ACTIVE",
"knowledge_bases": [],
"version": 1,
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"using_nemo": false,
"deletable": true,
"model_provider": "anthropic",
"model_name": "claude-sonnet-4-6",
"llm_reasoning_effort": "medium",
"llm_api_base": "<string>",
"output_format": "markdown",
"voice_id": "<string>",
"output_schema": {},
"llm_credentials_key": "<string>",
"llm_credentials_key_type": "xpander",
"llm_credentials": {
"name": "<string>",
"value": "<string>",
"description": "<string>"
},
"llm_extra_headers": {},
"expected_output": "",
"agno_settings": {
"session_storage": true,
"learning": false,
"agent_memories": false,
"agentic_culture": false,
"user_memories": false,
"agentic_memory": false,
"session_summaries": false,
"num_history_runs": 50,
"max_tool_calls_from_history": 0,
"tool_call_limit": 0,
"coordinate_mode": true,
"pii_detection_enabled": false,
"pii_detection_mask": true,
"prompt_injection_detection_enabled": false,
"openai_moderation_enabled": false,
"reasoning_tools_enabled": true,
"max_plan_retries": 15
},
"on_prem_event_streaming": true,
"is_supervised": false,
"orchestration_nodes": [],
"notification_settings": {},
"task_level_strategies": {
"retry_strategy": {
"enabled": false,
"max_retries": 3
},
"iterative_strategy": {
"enabled": false,
"max_iterations": 3,
"end_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"stop_strategy": {
"enabled": false,
"stop_on_failure": true,
"stop_on_condition": {
"term": "<string>",
"group_id": "<string>",
"path": "<string>",
"value": null
}
},
"max_runs_per_day": 123,
"agentic_context_enabled": false,
"duplication_prevention": {
"selectors": [
"<string>"
],
"enabled": false,
"ttl_minutes": 10
},
"slackbot_formatting_instructions": "<string>"
},
"use_oidc_pre_auth": false,
"pre_auth_audiences": [],
"use_oidc_pre_auth_token_for_llm": false,
"oidc_pre_auth_token_llm_audience": "<string>",
"oidc_pre_auth_token_mcp_audience": "<string>",
"can_self_schedule": false,
"max_self_schedules": 3,
"use_dynamic_tools": false,
"workspace_tools_enabled": true
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Path Parameters
Query Parameters
Request Body
All fields are optional. Only provided fields will be updated.text or jsonACTIVE or INACTIVEResponse
Returns the updatedWorkflowResponse object.
Example Request
curl -X PATCH -H "x-api-key: <your-api-key>" \
-H "Content-Type: application/json" \
-d '{"name": "Updated Workflow Name", "description": "New description"}' \
"https://api.xpander.ai/v1/workflows/<workflow-id>?deploy=true"
Notes
- Use
deploy=trueto immediately apply changes - Without
deploy=true, changes are staged and require a separate Deploy Workflow call
Authorizations
API Key for authentication
Path Parameters
Query Parameters
Automatically deploy the workflow after updating to apply changes immediately. Without this, changes are staged but not active until a PUT deploy call.
Body
Request model for updating an existing workflow.
All fields are optional — only provide the fields you want to change. At least one field must be provided. The workflow type remains 'orchestration' and cannot be changed.
Workflow name.
Workflow description.
Emoji icon.
Avatar identifier.
Workflow status: 'ACTIVE' or 'INACTIVE'.
DRAFT, ACTIVE, INACTIVE Default LLM provider.
openai, nim, amazon_bedrock, azure_ai_foundary, huggingFace, friendlyAI, anthropic, gemini, fireworks, google_ai_studio, helicone, bytedance, tzafon_lightcone, open_router, nebius, cloudflare_ai_gw Default model name.
Reasoning depth.
low, medium, high, xhigh Custom LLM API base URL.
LLM credentials key.
Credential type.
xpander, custom Direct LLM credentials.
Show child attributes
Show child attributes
Extra LLM headers.
Show child attributes
Show child attributes
Workflow instructions.
Show child attributes
Show child attributes
Expected output description.
Output format.
text, markdown, json, voice JSON Schema for output.
Updated workflow DAG nodes.
Show child attributes
Show child attributes
Execution strategies.
Show child attributes
Show child attributes
Notification settings.
Show child attributes
Show child attributes
Trigger source nodes.
Show child attributes
Show child attributes
Deployment type.
serverless, container Access scope.
personal, organizational Target environment.
NeMo guardrails.
Event streaming.
OIDC pre-auth.
OIDC audiences.
Forward OIDC to LLM.
OIDC LLM audience.
OIDC MCP audience.
Response
Successful Response
Response model for workflow endpoints.
Inherits from AIAgent but excludes agent-specific fields that are not relevant to workflows (orchestrations). This provides a clean API surface for workflow consumers without exposing confusing agent-only concepts.
The workflow's execution logic is defined in orchestration_nodes — a DAG
of typed nodes. Agent-specific fields like graph, attached_tools,
delegation_*, framework, and agno_settings are hidden.
serverless, container - AIAgentConnectivityDetailsA2A
- AIAgentConnectivityDetailsCurl
- Connectivity Details
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
personal, organizational Show child attributes
Show child attributes
Show child attributes
Show child attributes
Enumeration of possible agent statuses.
Attributes: DRAFT: Agent is in a draft state. ACTIVE: Agent is active and operational. INACTIVE: Agent is inactive and not operational.
DRAFT, ACTIVE, INACTIVE Show child attributes
Show child attributes
Enumeration of the agent types.
Attributes: Manager: marks the agent as a Managing agent. Regular: marks the agent as a regular agent. A2A: marks the agent as an external agent used via A2A protocol. Curl: marks the agent as an external agent used via a CURL. Orchestration: marks the agent as an Orchestration object.
manager, regular, a2a, curl, orchestration openai, nim, amazon_bedrock, azure_ai_foundary, huggingFace, friendlyAI, anthropic, gemini, fireworks, google_ai_studio, helicone, bytedance, tzafon_lightcone, open_router, nebius, cloudflare_ai_gw low, medium, high, xhigh text, markdown, json, voice xpander, custom Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Configuration for event-based notifications.
Attributes: on_success: Notifications to send when an operation succeeds. Maps notification types to a list of notification configurations. on_error: Notifications to send when an operation fails. Maps notification types to a list of notification configurations.
Show child attributes
Show child attributes
Configuration object for task-level execution strategies.
This model groups optional strategy configurations that control how a task is executed and managed over time, including retries, iterative execution, stopping conditions, and daily run limits.
Attributes: retry_strategy: Optional retry policy configuration that defines how the task should behave when execution fails (e.g., max attempts, backoff rules).
iterative_strategy:
Optional iterative execution configuration for tasks that may run in
repeated cycles/steps until completion or a stop condition is met.
stop_strategy:
Optional stopping policy configuration that defines when the task
should stop running (e.g., timeout, max iterations, success criteria).
max_runs_per_day:
Optional limit on how many times the task is allowed to run within a
24-hour period. If not set, no explicit daily limit is enforced.
agentic_context_enabled:
if agentic memory is enabled and accesible to the executor.
slackbot_formatting_instructions:
Optional SlackBot formatting instructions
Show child attributes
Show child attributes
1 <= x <= 1000Was this page helpful?

