curl -X PATCH "https://api.danubeai.com/v1/workflows/wf_abc123" \
-H "danube-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Pipeline Name",
"description": "Updated description",
"tags": ["weather", "alerts", "v2"]
}'
from danube import DanubeClient
with DanubeClient(api_key="YOUR_API_KEY") as client:
workflow = client.workflows.update(
workflow_id="wf_abc123",
name="Updated Pipeline Name",
description="Updated description",
tags=["weather", "alerts", "v2"],
)
print(f"Updated: {workflow.name}")
import { DanubeClient } from 'danube';
const client = new DanubeClient({ apiKey: 'YOUR_API_KEY' });
const workflow = await client.workflows.update('wf_abc123', {
name: 'Updated Pipeline Name',
description: 'Updated description',
tags: ['weather', 'alerts', 'v2'],
});
console.log(`Updated: ${workflow.name}`);
{
"id": "wf_abc123",
"name": "Updated Pipeline Name",
"description": "Updated description",
"steps": [
{
"step_number": 1,
"tool_id": "tool_weather_001",
"tool_name": "Weather - Get Forecast",
"description": "Fetch the weather forecast",
"input_mapping": {"city": "{{inputs.city}}"}
}
],
"owner_id": "user_456",
"visibility": "private",
"tags": ["weather", "alerts", "v2"],
"updated_at": "2026-02-24T14:00:00Z"
}
Workflows
Update Workflow
Update an existing workflow
PATCH
/
v1
/
workflows
/
{workflow_id}
curl -X PATCH "https://api.danubeai.com/v1/workflows/wf_abc123" \
-H "danube-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Pipeline Name",
"description": "Updated description",
"tags": ["weather", "alerts", "v2"]
}'
from danube import DanubeClient
with DanubeClient(api_key="YOUR_API_KEY") as client:
workflow = client.workflows.update(
workflow_id="wf_abc123",
name="Updated Pipeline Name",
description="Updated description",
tags=["weather", "alerts", "v2"],
)
print(f"Updated: {workflow.name}")
import { DanubeClient } from 'danube';
const client = new DanubeClient({ apiKey: 'YOUR_API_KEY' });
const workflow = await client.workflows.update('wf_abc123', {
name: 'Updated Pipeline Name',
description: 'Updated description',
tags: ['weather', 'alerts', 'v2'],
});
console.log(`Updated: ${workflow.name}`);
{
"id": "wf_abc123",
"name": "Updated Pipeline Name",
"description": "Updated description",
"steps": [
{
"step_number": 1,
"tool_id": "tool_weather_001",
"tool_name": "Weather - Get Forecast",
"description": "Fetch the weather forecast",
"input_mapping": {"city": "{{inputs.city}}"}
}
],
"owner_id": "user_456",
"visibility": "private",
"tags": ["weather", "alerts", "v2"],
"updated_at": "2026-02-24T14:00:00Z"
}
Overview
Updates a workflow’s name, description, steps, visibility, or tags. Only the workflow owner can update it. Auth: Accepts either JWT or API key (danube-api-key header).
Path Parameters
string
required
The UUID of the workflow to update
Body Parameters
string
New workflow name (max 128 characters)
string
New workflow description
array
string
"private" or "public"array
Updated tags for discovery
string
Goal for
execution_mode: "instructions" (the mode itself is set at creation)array
Tool UUIDs the hosted model may call
array
Declared inputs as
[{"name": "city", "description": "..."}]string
Cron expression (five fields); send
null to remove the schedulestring
IANA timezone the cron expression is evaluated in
boolean
Turn the schedule on or off
object
inputs used by scheduled runsResponse
string
Workflow UUID
string
Updated workflow name
string
Updated workflow description
array
Updated workflow steps
string
"private" or "public"array
Updated workflow tags
string
ISO 8601 update timestamp
string
template or instructionsstring
Cron expression, or null
boolean
Whether scheduled runs are on
string
Next scheduled run, or null
Example
curl -X PATCH "https://api.danubeai.com/v1/workflows/wf_abc123" \
-H "danube-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Pipeline Name",
"description": "Updated description",
"tags": ["weather", "alerts", "v2"]
}'
from danube import DanubeClient
with DanubeClient(api_key="YOUR_API_KEY") as client:
workflow = client.workflows.update(
workflow_id="wf_abc123",
name="Updated Pipeline Name",
description="Updated description",
tags=["weather", "alerts", "v2"],
)
print(f"Updated: {workflow.name}")
import { DanubeClient } from 'danube';
const client = new DanubeClient({ apiKey: 'YOUR_API_KEY' });
const workflow = await client.workflows.update('wf_abc123', {
name: 'Updated Pipeline Name',
description: 'Updated description',
tags: ['weather', 'alerts', 'v2'],
});
console.log(`Updated: ${workflow.name}`);
{
"id": "wf_abc123",
"name": "Updated Pipeline Name",
"description": "Updated description",
"steps": [
{
"step_number": 1,
"tool_id": "tool_weather_001",
"tool_name": "Weather - Get Forecast",
"description": "Fetch the weather forecast",
"input_mapping": {"city": "{{inputs.city}}"}
}
],
"owner_id": "user_456",
"visibility": "private",
"tags": ["weather", "alerts", "v2"],
"updated_at": "2026-02-24T14:00:00Z"
}
MCP Tool
This endpoint is also available as theupdate_workflow MCP tool:
result = await mcp.call_tool("update_workflow", {
"workflow_id": "wf_abc123",
"name": "Updated Pipeline Name",
"tags": ["weather", "alerts", "v2"]
})
