Skip to main content
POST
Create Workflow
Creates a new workflow definition. Workflows define a directed acyclic graph (DAG) of steps that orchestrations execute in sequence. Each step specifies its type, configuration, and dependencies — enabling complex multi-step AI pipelines with deterministic execution order. Workflows are created in draft status and must be published before they can be executed. This two-phase approach allows teams to review and validate workflow definitions before they are available to agents.

Authentication

string
required
API key with workflows:write scope. Alternatively, pass a Bearer JWT token in the Authorization header.
string
required
Tenant identifier for multi-tenant isolation.

Request

string
required
Human-readable workflow name. Must be unique within the tenant namespace per version.
string
Description of what this workflow accomplishes.
object[]
required
Array of workflow step definitions. Each step contains: - name (string, required) — Unique step identifier within the workflow - type (string, required) — Step type: llm_inference, tool_call, guardrail_check, decision, transform, webhook - config (object, required) — Step-specific configuration (model, tool name, guardrail rules, etc.) - depends_on (string[]) — Array of step names that must complete before this step executes
string
Semantic version of the workflow (e.g. 1.0.0). Defaults to 1.0.0 if omitted.

Response

string
Unique workflow identifier.
string
Workflow name.
string
Workflow description.
string
Workflow version.
array
The validated workflow step definitions.
string
Workflow status. Always draft on creation.
string
ISO 8601 timestamp of creation.

Authorizations

X-API-Key
string
header
required

API key for machine-to-machine authentication

Body

application/json
name
string
required

Workflow name

steps
object[]
required

Ordered workflow steps

triggers
object

Trigger conditions (cron, event, webhook)

Response

Workflow created

workflow_id
string<uuid>
name
string
steps
object[]
triggers
object
created_at
string<date-time>