Skip to main content
POST
Apply id-addressed PATCH ops to a workflow revision's graph

Authorizations

x-api-key
string
header
required

Headers

x-feather-client
string | null

Path Parameters

revision_id
string<uuid>
required

Body

application/json

Body for POST /revisions/{id}/graph/ops — an ordered PATCH batch.

ops
(UpsertNodeOp · object | RemoveNodeOp · object | UpdateNodeFieldsOp · object | AddEdgeOp · object | RemoveEdgeOp · object | SetEntryNodeOp · object | UpsertContextVariableOp · object | RemoveContextVariableOp · object | SetPersonaOp · object | SetComponentOutputsOp · object)[]
required
Maximum array length: 200
base_version
integer | null

Response

Successful Response

Result of a manual graph update (PUT /graph or PATCH /graph/ops).

updated=False means the graph won't parse or carries a blocking error at the write gate and the revision was left unchanged; the response status is 422 and validation.findings explains why. updated=True with valid=False (in validation) and blocking_error_count == 0 is the permissive-draft case: the graph saved but is not yet activation-ready (completeness gaps remain). graph_version is the revision's counter after a successful write.

updated
boolean
required
validation
WorkflowGraphValidationResponse · object
required

Validation result for a submitted CompiledWorkflowGraph payload.

revision
WorkflowRevisionResponse · object | null

Full revision response — the compile-poll target (WF-08).

Clients poll GET /workflows/revisions/{id} and read compilation_status

  • compilation_errors + compiled_graph to determine whether an async compile job is done. compilation_task_id is the Celery task handle the conductor uses to cancel an in-flight compile.
graph_version
integer | null
blocking_error_count
integer
default:0