Interlaken
API referenceAgents and workflowsWorkflows

Workflows

23 operations.

List AI workflows

GET /api/v1/workflows

Create an AI workflow (a visual DAG of inference steps)

POST /api/v1/workflows

Get a workflow with its draft spec

GET /api/v1/workflows/{id}

Update a workflow's metadata and/or draft spec

PUT /api/v1/workflows/{id}

Delete a workflow (409 while runs are in flight)

DELETE /api/v1/workflows/{id}

Start (or reweight) a canary: a second runner pinned to another version taking weight% of new runs

POST /api/v1/workflows/{id}/canary

Stop the canary (its in-flight runs fail)

DELETE /api/v1/workflows/{id}/canary

Promote the canary to primary (container swap; gated by require_eval_pass)

POST /api/v1/workflows/{id}/canary/promote

Deploy the published workflow: provision its tenant-side runner container

POST /api/v1/workflows/{id}/deploy

Require a passing eval suite before canary promote

PUT /api/v1/workflows/{id}/eval-gate

List eval cases

GET /api/v1/workflows/{id}/evals

Create or update an eval case (contains / equals / LLM-judge assertion)

POST /api/v1/workflows/{id}/evals

Delete an eval case

DELETE /api/v1/workflows/{id}/evals/{caseId}

List eval verdicts (newest suites first)

GET /api/v1/workflows/{id}/evals/results

Run the eval suite against the primary or canary deployment

POST /api/v1/workflows/{id}/evals/run

Publish the draft as the next immutable version (422 with per-node errors when invalid)

POST /api/v1/workflows/{id}/publish

Start a manual run of the published version

POST /api/v1/workflows/{id}/run

List run history (cursor-paginated: ?before=<timeuuid>&limit=)

GET /api/v1/workflows/{id}/runs

Undeploy the workflow's runner container (in-flight runs fail)

POST /api/v1/workflows/{id}/undeploy

Lint a spec (full validation, nothing saved) — per-node error map

POST /api/v1/workflows/{id}/validate

List published versions

GET /api/v1/workflows/{id}/versions

Get one published version's frozen spec

GET /api/v1/workflows/{id}/versions/{version}

Rotate the webhook signing secret (plaintext returned once)

POST /api/v1/workflows/{id}/webhook/rotate