Skip to main content

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 of blocks connected by edges:
  • blocks — each block has a sequence_number, block_type (see Workflow Blocks), block_name, optional block_id, and a specs object.
  • edges — each edge has a from_block_id, a to_block_id, and an optional condition.
This shape is used in both Create Workflow and Update Workflow requests.

List workflows

Retrieve all workflows in your organization.
Returns a lightweight list of workflows without block definitions.
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.
Required body fields: 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

Definitions are validated before saving. For requests authenticated with an API key, an invalid definition is rejected with 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.
Pass 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.
Pass workflow_id as a query parameter.
Permanently removes the workflow definition. Historical workflow runs are preserved.