Update workflows

Patches one of the caller's workflows: name, description, graph, or the locked flag — only the stated fields move.

PATCH /v1/flow/workflows/{workflow}

Addresshttps://api.hanzo.ai/v1/flow/workflows/{workflow}
MethodPATCH
Operationpatch_flow_workflows_by_workflow
AuthAuthorization: Bearer $HANZO_API_KEY

Patches one of the caller's workflows: name, description, graph, or the locked flag — only the stated fields move. Ownership is verified before the patch reaches the product.

Request

6 fields, body application/json (required).

FieldInTypeRequiredDescription
workflowpathstringyesWorkflow is the workflow's UUID, taken from the path.
databodyany—Data replaces the workflow graph when present, verbatim.
descriptionbodystring—Description replaces the description when present.
lockedbodyboolean—Locked freezes or unfreezes the workflow against edits when present.
namebodystring—Name renames the workflow when present.
workflowbodystring—Workflow is the workflow's UUID, taken from the path.

Response

StatusBodyMeaning
200ok
defaultproblem-detailsrefused

200 body — 1 field.

FieldInTypeAlwaysDescription
(body)bodyanyyes

Failure carries the platform error shape — see Errors.

Examples

hanzo flow workflows update <workflow>
import { Configuration, FlowApi } from 'hanzoai';

const api = new FlowApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.patchFlowWorkflowsByWorkflow({ workflow: 'workflow', data: "<data>", description: "<description>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import FlowApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = FlowApi(client).patch_flow_workflows_by_workflow(workflow='workflow', data="<data>", description="<description>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.FlowAPI.PatchFlowWorkflowsByWorkflow(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, flow_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = flow_api::patch_flow_workflows_by_workflow(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.FlowApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new FlowApi(client).patchFlowWorkflowsByWorkflow();
curl -X PATCH https://api.hanzo.ai/v1/flow/workflows/<workflow> \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "data": "<data>",
       "description": "<description>"
     }'

MCP reaches flow through the flow tool, which names its 8 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_flow_runs"
         }
       }
     }'

Flow API · All Hanzo APIs · Interactive reference

Was this page useful?