Create Block
Create a new block in a workflow.
workflow_id in the request body.
You provide the block ID — it must be unique within the workflow. Pick something descriptive (e.g. extract-invoice, classifier-language) so edges and assertions stay readable.
The config shape depends on type. See Workflow Blocks for the per-type config reference.
A few invariants the API enforces:
- Input blocks (
start_document,start_json) cannot be placed inside containers —parent_idmust benullfor them. parent_idis reserved for placing blocks inside container blocks (while_loop,for_each).
Authorizations
Body
Create a new block in a workflow.
Workflow to create the block in.
Block type
start_document, start_json, note, parse, edit, extract, split, classifier, conditional, api_call, function, while_loop, for_each, merge_dicts Block ID. Omit to let the server generate one (recommended). Block IDs must be unique across your organization, not just within a workflow — reusing a custom id like 'block_extract' in more than one workflow fails with 409.
Display label
200X position
Y position
Block width
Block height
Block configuration
ID of parent container block (while_loop, for_each)
Response
Successful Response
Public live workflow block object.
Foreign key to workflow
Block type (extract, parse, classifier, etc.)
start_document, start_json, note, parse, edit, extract, split, classifier, conditional, api_call, function, while_loop, for_each, merge_dicts, while_loop_sentinel_start, while_loop_sentinel_end, for_each_sentinel_start, for_each_sentinel_end Display label for the block
X position on canvas
Y position on canvas
Block width for resizable blocks
Block height for resizable blocks
Block-specific configuration
ID of parent container (while_loop, for_each)
Canonical declarative block path used to reconcile imported specs.
Authored declarative block id before import-time id regeneration.
Schemas resolved for this block from the workflow graph.