Update a block with partial data.
Only the provided fields are updated. This enables targeted updates like position changes without affecting other block properties.
Patch a block with partial data. Only the fields you supply are touched; everything else is left as-is. Common reasons to call this:Documentation Index
Fetch the complete documentation index at: https://docs.retab.com/llms.txt
Use this file to discover all available pages before exploring further.
position_x / position_y / width / heightlabelconfig (replaces the existing config; merge it client-side first if you want a partial change)parent_idtype is intentionally not patchable. To change a block’s type, delete it and create a new one with the same id.
Successful Response
Individual block document for live editing.
Stored in workflow_blocks collection. Each block is independently updatable, enabling targeted position and config updates without loading the entire workflow.
Foreign key to workflow
Organization ID for data isolation
Block type (extract, parse, classifier, etc.)
start, start_json, note, parse, edit, extract, split, classifier, conditional, hil, 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 Draft version for live entities
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
Merkle subtree hashes for authored field references; refreshed by schema propagation. Block metadata, not authored config.
Transient sidecar of graph-derived schemas (input_schemas, output_schemas, field_ref_drift). Attached on transport responses; never persisted. Exclude from all DB writes via .model_dump(exclude={'resolved_schemas'}).
ID of parent container (while_loop, for_each)