Use case
Create, version, and manage reusable enrichment pipelines programmatically. Use these endpoints to list existing workflows, inspect block definitions, create new pipelines from code, update configurations, or remove workflows you no longer need.API Reference
See the full request/response schema and parameters in the API Reference.
Pricing
See Credits & Pricing Guide for credit costs.Errors
For error responses (400, 403, 404, etc.), see Handling Errors.For a full reference of available block types and their use cases, see Workflow Blocks.
Workflow definition
A workflow definition is a directed graph ofblocks connected by edges:
blocks— each block has asequence_number,block_type(see Workflow Blocks),block_name, optionalblock_id, and aspecsobject.edges— each edge has afrom_block_id, ato_block_id, and an optionalcondition.
List workflows
Retrieve all workflows in your organization.Use
GET /workflows/{workflow_id} to retrieve a workflow with its full block graph.Get workflow
Retrieve a specific workflow including its complete block graph.Create workflow
Create a new workflow with a block graph definition.workflow_name, workflow_description, and workflow_definition. Pass an optional id containing a valid UUID to use a custom workflow ID; otherwise one is auto-generated.
Example request
400 and nothing is stored. See Validation errors for the response and for the checks that only happen when a run starts.
Update workflow
Update an existing workflow’s name, description, or block definition.workflow_id as a query parameter. All body fields (workflow_name, workflow_description, workflow_definition) are optional — only include what you want to change. The workflow_definition shape is the same as Create Workflow above.
Performs upsert: creates the workflow if it doesn’t exist. For API-key requests an invalid definition is rejected with
400 and the last valid saved definition is left unchanged — see Validation errors.Validation errors
create_workflow and update_workflow run the full workflow validator before saving: schema and edge checks, block type compatibility, required block fields, and every column a block references against the columns its upstream blocks produce. For API-key requests, any failed check returns 400 with one entry per problem:
Fix the listed fields and resubmit the same request. Invalid field names (declared output fields must be letters, digits and underscores, starting with a letter) and blocks whose specs fail to parse are rejected the same way.
A saved definition has passed these checks, but some conditions can only be judged when a run starts: a source block whose data has not been materialized yet (
MISSING_DATA_SOURCE) does not block the save, but rejects the run with the same validation_errors shape.
Delete workflow
Permanently delete a workflow.workflow_id as a query parameter.
Permanently removes the workflow definition. Historical workflow runs are preserved.